diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4edaa275b911eada105a379f1de53aace2749d1c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_cli.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_cli.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d66e59bf3ec5dc7a1440c594aaeb777fb01f4eff Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_cli.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_ddp_comm_hook.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_ddp_comm_hook.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4e059d18cd638c7108b0b61d128004917be737b9 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_ddp_comm_hook.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_distributed_data_loop.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_distributed_data_loop.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..87a0a9733e90f135d324c03d17a2b91b95ec1475 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_distributed_data_loop.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_merge_weights.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_merge_weights.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..11178833633dd439341d2461d5eefc76ed2c6299 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_merge_weights.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_notebook.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_notebook.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8652e1fff76c3e3fc46c6b3c666caa9c7a6a2255 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_notebook.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_ops.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_ops.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9eee216b740f7ab7b07427f46377c5253767bf0e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_ops.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_script.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_script.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0d9e53fdad217ecea19197029577ac7cc1eb3aaf Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_script.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_sync.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_sync.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d00e60e37e507b904ec00d6f8a8e87aa51faa970 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/__pycache__/test_sync.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..c9cbe26c257b515f657c05e1996d517e69613972 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2020 The HuggingFace Team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..51927ee07670001c51c9cf7e3edca422c2995349 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/test_checkpointing.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/test_checkpointing.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8d893c137f777bd472780d771eeaaf0b57524f4d Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/test_checkpointing.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/test_ds_alst_ulysses_sp.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/test_ds_alst_ulysses_sp.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a09fc21d67fa539b4842cf91c0c97d589f5a151a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/test_ds_alst_ulysses_sp.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/test_metrics.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/test_metrics.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7e16f29517280f55929964100161b8d525c0b36c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/test_metrics.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/test_peak_memory_usage.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/test_peak_memory_usage.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6e03db183ad204f64a50e35a958abbacf5bf3ce7 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/test_peak_memory_usage.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/test_performance.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/test_performance.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7740a1b2e2da0a1531f2d6ca9ae3751591b4d50c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/test_performance.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/test_pippy.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/test_pippy.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..695b1baf906d48a567a899c3b2c26f7dbd92aaf8 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/test_pippy.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/test_zero3_integration.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/test_zero3_integration.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..788e56e0a1ceb5e471b1dfce3f0cb2489f9f51c4 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/__pycache__/test_zero3_integration.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_checkpointing.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_checkpointing.py new file mode 100644 index 0000000000000000000000000000000000000000..6a1553898ec3d55e64822c204ddf7e705069ce8a --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_checkpointing.py @@ -0,0 +1,269 @@ +# Copyright 2022 The HuggingFace Inc. team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import argparse +import json +import os + +import evaluate +import torch +from datasets import load_dataset +from torch.optim import AdamW +from torch.utils.data import DataLoader +from transformers import AutoModelForSequenceClassification, AutoTokenizer, get_linear_schedule_with_warmup, set_seed + +from accelerate import Accelerator, DistributedType +from accelerate.utils.deepspeed import DummyOptim, DummyScheduler + + +MAX_GPU_BATCH_SIZE = 16 +EVAL_BATCH_SIZE = 32 + + +def get_dataloaders(accelerator: Accelerator, batch_size: int = 16, model_name: str = "bert-base-cased"): + """ + Creates a set of `DataLoader`s for the `glue` dataset. + + Args: + accelerator (`Accelerator`): + An `Accelerator` object + batch_size (`int`, *optional*): + The batch size for the train and validation DataLoaders. + model_name (`str`, *optional*): + """ + tokenizer = AutoTokenizer.from_pretrained(model_name) + datasets = load_dataset("glue", "mrpc") + + def tokenize_function(examples): + # max_length=None => use the model max length (it's actually the default) + outputs = tokenizer(examples["sentence1"], examples["sentence2"], truncation=True, max_length=None) + return outputs + + # Apply the method we just defined to all the examples in all the splits of the dataset + tokenized_datasets = datasets.map( + tokenize_function, batched=True, remove_columns=["idx", "sentence1", "sentence2"], load_from_cache_file=False + ) + + # We also rename the 'label' column to 'labels' which is the expected name for labels by the models of the + # transformers library + tokenized_datasets = tokenized_datasets.rename_column("label", "labels") + + def collate_fn(examples): + # On TPU it's best to pad everything to the same length or training will be very slow. + if accelerator.distributed_type == DistributedType.XLA: + return tokenizer.pad(examples, padding="max_length", max_length=128, return_tensors="pt") + return tokenizer.pad(examples, padding="longest", return_tensors="pt") + + # Instantiate dataloaders. + train_dataloader = DataLoader( + tokenized_datasets["train"], shuffle=True, collate_fn=collate_fn, batch_size=batch_size + ) + eval_dataloader = DataLoader( + tokenized_datasets["validation"], shuffle=False, collate_fn=collate_fn, batch_size=EVAL_BATCH_SIZE + ) + + return train_dataloader, eval_dataloader + + +def evaluation_loop(accelerator, model, eval_dataloader, metric): + model.eval() + samples_seen = 0 + for step, batch in enumerate(eval_dataloader): + # We could avoid this line since we set the accelerator with `device_placement=True`. + batch.to(accelerator.device) + with torch.no_grad(): + outputs = model(**batch) + predictions = outputs.logits.argmax(dim=-1) + # It is slightly faster to call this once, than multiple times + predictions, references = accelerator.gather( + (predictions, batch["labels"]) + ) # If we are in a multiprocess environment, the last batch has duplicates + if accelerator.use_distributed: + if step == len(eval_dataloader) - 1: + predictions = predictions[: len(eval_dataloader.dataset) - samples_seen] + references = references[: len(eval_dataloader.dataset) - samples_seen] + else: + samples_seen += references.shape[0] + metric.add_batch( + predictions=predictions, + references=references, + ) + + eval_metric = metric.compute() + return eval_metric["accuracy"] + + +def training_function(config, args): + # Initialize accelerator + accelerator = Accelerator() + + # Sample hyper-parameters for learning rate, batch size, seed and a few other HPs + lr = config["lr"] + num_epochs = int(config["num_epochs"]) + seed = int(config["seed"]) + batch_size = int(config["batch_size"]) + model_name = args.model_name_or_path + + set_seed(seed) + train_dataloader, eval_dataloader = get_dataloaders(accelerator, batch_size, model_name) + + # Instantiate the model (we build the model here so that the seed also control new weights initialization) + model = AutoModelForSequenceClassification.from_pretrained(model_name, return_dict=True) + + # Instantiate optimizer + optimizer_cls = ( + AdamW + if accelerator.state.deepspeed_plugin is None + or "optimizer" not in accelerator.state.deepspeed_plugin.deepspeed_config + else DummyOptim + ) + optimizer = optimizer_cls(params=model.parameters(), lr=lr) + + if accelerator.state.deepspeed_plugin is not None: + gradient_accumulation_steps = accelerator.state.deepspeed_plugin.deepspeed_config[ + "gradient_accumulation_steps" + ] + else: + gradient_accumulation_steps = 1 + max_training_steps = (len(train_dataloader) * num_epochs) // gradient_accumulation_steps + + # Instantiate scheduler + if ( + accelerator.state.deepspeed_plugin is None + or "scheduler" not in accelerator.state.deepspeed_plugin.deepspeed_config + ): + lr_scheduler = get_linear_schedule_with_warmup( + optimizer=optimizer, + num_warmup_steps=0, + num_training_steps=max_training_steps, + ) + else: + lr_scheduler = DummyScheduler(optimizer, total_num_steps=max_training_steps, warmup_num_steps=0) + + # Prepare everything + # There is no specific order to remember, we just need to unpack the objects in the same order we gave them to the + # prepare method. + model, optimizer, train_dataloader, eval_dataloader, lr_scheduler = accelerator.prepare( + model, optimizer, train_dataloader, eval_dataloader, lr_scheduler + ) + + # We need to keep track of how many total steps we have iterated over + overall_step = 0 + # We also need to keep track of the stating epoch so files are named properly + starting_epoch = 0 + metric = evaluate.load("glue", "mrpc") + ending_epoch = num_epochs + + if args.partial_train_epoch is not None: + ending_epoch = args.partial_train_epoch + + if args.resume_from_checkpoint: + accelerator.load_state(args.resume_from_checkpoint) + epoch_string = args.resume_from_checkpoint.split("epoch_")[1] + state_epoch_num = "" + for char in epoch_string: + if char.isdigit(): + state_epoch_num += char + else: + break + starting_epoch = int(state_epoch_num) + 1 + accuracy = evaluation_loop(accelerator, model, eval_dataloader, metric) + accelerator.print("resumed checkpoint performance:", accuracy) + accelerator.print("resumed checkpoint's scheduler's lr:", lr_scheduler.get_lr()[0]) + accelerator.print("resumed optimizers's lr:", optimizer.param_groups[0]["lr"]) + with open(os.path.join(args.output_dir, f"state_{starting_epoch - 1}.json")) as f: + resumed_state = json.load(f) + assert resumed_state["accuracy"] == accuracy, "Accuracy mismatch, loading from checkpoint failed" + assert resumed_state["lr"] == lr_scheduler.get_lr()[0], ( + "Scheduler learning rate mismatch, loading from checkpoint failed" + ) + assert resumed_state["optimizer_lr"] == optimizer.param_groups[0]["lr"], ( + "Optimizer learning rate mismatch, loading from checkpoint failed" + ) + assert resumed_state["epoch"] == starting_epoch - 1, "Epoch mismatch, loading from checkpoint failed" + return + + # Now we train the model + state = {} + for epoch in range(starting_epoch, ending_epoch): + model.train() + for step, batch in enumerate(train_dataloader): + outputs = model(**batch) + loss = outputs.loss + loss = loss / gradient_accumulation_steps + accelerator.backward(loss) + if step % gradient_accumulation_steps == 0: + optimizer.step() + lr_scheduler.step() + optimizer.zero_grad() + + overall_step += 1 + output_dir = f"epoch_{epoch}" + output_dir = os.path.join(args.output_dir, output_dir) + accelerator.save_state(output_dir) + accuracy = evaluation_loop(accelerator, model, eval_dataloader, metric) + state["accuracy"] = accuracy + state["lr"] = lr_scheduler.get_lr()[0] + state["optimizer_lr"] = optimizer.param_groups[0]["lr"] + state["epoch"] = epoch + state["step"] = overall_step + accelerator.print(f"epoch {epoch}:", state) + + accelerator.wait_for_everyone() + if accelerator.is_main_process: + with open(os.path.join(args.output_dir, f"state_{epoch}.json"), "w") as f: + json.dump(state, f) + accelerator.end_training() + + +def main(): + parser = argparse.ArgumentParser(description="Simple example of training script tracking peak GPU memory usage.") + parser.add_argument( + "--model_name_or_path", + type=str, + default="bert-base-cased", + help="Path to pretrained model or model identifier from huggingface.co/models.", + required=False, + ) + parser.add_argument( + "--output_dir", + type=str, + default=".", + help="Optional save directory where all checkpoint folders will be stored. Default is the current working directory.", + ) + parser.add_argument( + "--resume_from_checkpoint", + type=str, + default=None, + help="If the training should continue from a checkpoint folder.", + ) + parser.add_argument( + "--partial_train_epoch", + type=int, + default=None, + help="If passed, the training will stop after this number of epochs.", + ) + parser.add_argument( + "--num_epochs", + type=int, + default=2, + help="Number of train epochs.", + ) + args = parser.parse_args() + config = {"lr": 2e-5, "num_epochs": args.num_epochs, "seed": 42, "batch_size": 16} + + training_function(config, args) + + +if __name__ == "__main__": + main() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_ds_alst_ulysses_sp.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_ds_alst_ulysses_sp.py new file mode 100644 index 0000000000000000000000000000000000000000..eb910a45dfbe9924ab0b417bfafc5d6a89567edd --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_ds_alst_ulysses_sp.py @@ -0,0 +1,129 @@ +# Copyright 2024 The HuggingFace Inc. team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""" +Test script for verifying ALST/Ulysses SP works +""" + +import torch +from deepspeed.runtime.utils import move_to_device +from transformers import AutoModelForCausalLM, AutoTokenizer + +from accelerate import Accelerator +from accelerate.utils import ParallelismConfig, set_seed +from accelerate.utils.dataclasses import DeepSpeedSequenceParallelConfig + + +set_seed(42) + +world_size = 2 +model_name = "hf-internal-testing/tiny-random-LlamaForCausalLM" + +micro_batch_size = 1 + +parallelism_config = ParallelismConfig( + sp_backend="deepspeed", + sp_size=world_size, + # dp_shard_size=1, # set if dp is wanted as well + sp_handler=DeepSpeedSequenceParallelConfig( + sp_seq_length=256, + sp_seq_length_is_variable=True, + sp_attn_implementation="sdpa", + ), +) + +accelerator = Accelerator( + parallelism_config=parallelism_config, +) + +tokenizer = AutoTokenizer.from_pretrained(model_name) +model = AutoModelForCausalLM.from_pretrained(model_name) + +samples = 4 +seqlen = 32 +input_ids = torch.arange(1, seqlen * samples + 1).view(-1, seqlen) + 100 +position_ids = torch.arange(seqlen * samples).view(-1, seqlen) + +ds = torch.utils.data.TensorDataset(input_ids, position_ids) + + +def collate_fn(batch): + input_ids, position_ids = batch[0] + return dict( + input_ids=input_ids.unsqueeze(0), + position_ids=position_ids.unsqueeze(0), + labels=input_ids.unsqueeze(0), + ) + + +dl = torch.utils.data.DataLoader(ds, batch_size=micro_batch_size, collate_fn=collate_fn) + +optimizer = torch.optim.Adam(model.parameters(), lr=1e-5) + +rank = torch.distributed.get_rank() + +if rank == 0: + print(f"DL orig: {len(dl)} samples") + +model, optimizer, dl = accelerator.prepare(model, optimizer, dl) + +if rank == 0: + print(f"DL w/ adapter: {len(dl)} samples") + +sp_size = parallelism_config.sp_size if parallelism_config else 1 +if sp_size > 1: + sp_group = accelerator.torch_device_mesh["sp"].get_group() + sp_world_size = parallelism_config.sp_size + +unwrapped_model = accelerator.unwrap_model(model) + +# Normal training loop +for iter, batch in enumerate(dl): + optimizer.zero_grad() + + if rank == 0: + print(f"batch {iter}: seqlen: {len(batch['input_ids'][0])}") + batch = move_to_device(batch, model.device) + outputs = model(**batch) + + shift_labels = batch["shift_labels"] + loss = unwrapped_model.loss_function( + logits=outputs.logits, + labels=None, + shift_labels=shift_labels, + vocab_size=unwrapped_model.config.vocab_size, + ) + + if sp_size > 1: + # differentiable weighted per-shard-loss aggregation across ranks + losses_per_rank = torch.distributed.nn.functional.all_gather(loss, group=sp_group) + # special dealing with SFT that has prompt tokens that aren't used in loss computation + good_tokens = (shift_labels != -100).view(-1).sum() + good_tokens_per_rank = torch.distributed.nn.functional.all_gather(good_tokens, group=sp_group) + total_loss = sum( + losses_per_rank[rank] * good_tokens_per_rank[rank] + for rank in range(sp_world_size) + if good_tokens_per_rank[rank] > 0 + ) + total_good_tokens = sum(good_tokens_per_rank) + loss = total_loss / max(total_good_tokens, 1) + + if rank == 0: + accelerator.print(f"{iter}: {loss=}") + accelerator.log(dict(train_loss=loss, step=iter)) + + accelerator.backward(loss) + optimizer.step() + +accelerator.end_training() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_ds_multiple_model.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_ds_multiple_model.py new file mode 100644 index 0000000000000000000000000000000000000000..a9ff3f3d2d0214f2b36f2b51e1d029b6ddf7cb7c --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_ds_multiple_model.py @@ -0,0 +1,331 @@ +# Copyright 2024 The HuggingFace Inc. team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""" +Test script for verifying multiple models can be utilized with Accelerate + DeepSpeed: + +Scenario 1: One model is training, another model is being used for inference/logits to impact training in some form. +Scenario 2: Two models are training simultaneously, which means two optimizers, etc. +""" + +import argparse +from pathlib import Path + +import evaluate +import torch +from datasets import load_dataset +from torch.optim import AdamW +from torch.utils.data import DataLoader +from transformers import AutoModelForSequenceClassification, AutoTokenizer, get_linear_schedule_with_warmup + +from accelerate import Accelerator, DeepSpeedPlugin, DistributedType +from accelerate.state import AcceleratorState +from accelerate.utils.deepspeed import get_active_deepspeed_plugin + + +EVAL_BATCH_SIZE = 16 + + +class NoiseModel(torch.nn.Module): + def __init__(self, noise_factor=0.1): + super().__init__() + self.noise_factor = torch.nn.Parameter(torch.tensor(noise_factor, dtype=torch.float32)) + + def forward(self, loss): + return loss * self.noise_factor + + +def get_dataloaders(accelerator: Accelerator, batch_size: int = 16, model_name: str = "bert-base-cased"): + """ + Creates a set of `DataLoader`s for the `glue` dataset. + + Args: + accelerator (`Accelerator`): + An `Accelerator` object + batch_size (`int`, *optional*): + The batch size for the train and validation DataLoaders. + model_name (`str`, *optional*): + """ + tokenizer = AutoTokenizer.from_pretrained(model_name) + datasets = load_dataset("glue", "mrpc") + + def tokenize_function(examples): + # max_length=None => use the model max length (it's actually the default) + outputs = tokenizer(examples["sentence1"], examples["sentence2"], truncation=True, max_length=None) + return outputs + + # Apply the method we just defined to all the examples in all the splits of the dataset + tokenized_datasets = datasets.map( + tokenize_function, batched=True, remove_columns=["idx", "sentence1", "sentence2"], load_from_cache_file=False + ) + + # We also rename the 'label' column to 'labels' which is the expected name for labels by the models of the + # transformers library + tokenized_datasets = tokenized_datasets.rename_column("label", "labels") + + def collate_fn(examples): + # On TPU it's best to pad everything to the same length or training will be very slow. + if accelerator.distributed_type == DistributedType.XLA: + return tokenizer.pad(examples, padding="max_length", max_length=128, return_tensors="pt") + return tokenizer.pad(examples, padding="longest", return_tensors="pt") + + # Instantiate dataloaders. + train_dataloader = DataLoader( + tokenized_datasets["train"], shuffle=True, collate_fn=collate_fn, batch_size=batch_size + ) + eval_dataloader = DataLoader( + tokenized_datasets["validation"], shuffle=False, collate_fn=collate_fn, batch_size=EVAL_BATCH_SIZE + ) + + return train_dataloader, eval_dataloader + + +test_file_path = __file__ +path = Path(test_file_path).resolve() +test_file_dir_str = str(path.parent.parent.parent.parent.parent.parent) + +# Create our DS plugins +# We use custom schedulers and optimizers, hence `model_only` +ds_config_file = dict( + zero2=f"{test_file_dir_str}/tests/deepspeed/ds_config_zero2_model_only.json", + zero3=f"{test_file_dir_str}/tests/deepspeed/ds_config_zero3_model_only.json", +) + + +def single_model_training(config, args): + # Training a single model, we have a `noise` model that is untrainable used to inject some noise into the training process + num_epochs = config["num_epochs"] + zero2_plugin = DeepSpeedPlugin(hf_ds_config=ds_config_file["zero2"]) + zero3_plugin = DeepSpeedPlugin(hf_ds_config=ds_config_file["zero3"]) + + deepspeed_plugins = {"training": zero2_plugin, "inference": zero3_plugin} + + # Initialize accelerator + accelerator = Accelerator( + deepspeed_plugins=deepspeed_plugins, + mixed_precision="bf16", + ) + + # Initialize model under zero2 plugin + assert get_active_deepspeed_plugin(accelerator.state) is zero2_plugin + train_model = AutoModelForSequenceClassification.from_pretrained(args.model_name_or_path) + train_dataloader, eval_dataloader = get_dataloaders( + accelerator, batch_size=config["batch_size"], model_name=args.model_name_or_path + ) + max_training_steps = len(train_dataloader) * config["num_epochs"] + optimizer = AdamW(train_model.parameters(), lr=config["lr"]) + lr_scheduler = get_linear_schedule_with_warmup( + optimizer, num_warmup_steps=0, num_training_steps=max_training_steps + ) + + train_dataloader, eval_dataloader, train_model, optimizer, lr_scheduler = accelerator.prepare( + train_dataloader, eval_dataloader, train_model, optimizer, lr_scheduler + ) + + # Now prepare the model under zero3 plugin + accelerator.state.select_deepspeed_plugin("inference") + assert get_active_deepspeed_plugin(accelerator.state) is zero3_plugin + inference_model = NoiseModel() + inference_model = accelerator.prepare(inference_model) + inference_model.eval() + + # Run training loop + accelerator.state.select_deepspeed_plugin("training") + # We also need to keep track of the stating epoch so files are named properly + starting_epoch = 0 + + # Now we train the model + best_performance = 0 + metric = evaluate.load("glue", "mrpc") + performance_metric = {} + for epoch in range(starting_epoch, num_epochs): + train_model.train() + inference_model.train() + for step, batch in enumerate(train_dataloader): + with accelerator.accumulate(train_model): + outputs_1 = train_model(**batch) + with torch.no_grad(): + outputs_2 = inference_model(outputs_1.loss) + # Combine the losses + loss = outputs_1.loss + outputs_2 + accelerator.backward(loss) + optimizer.step() + lr_scheduler.step() + optimizer.zero_grad() + + train_model.eval() + for step, batch in enumerate(eval_dataloader): + with torch.no_grad(): + outputs = train_model(**batch) + predictions = outputs.logits.argmax(dim=-1) + # It is slightly faster to call this once, than multiple times + predictions, references = accelerator.gather_for_metrics((predictions, batch["labels"])) + metric.add_batch( + predictions=predictions, + references=references, + ) + + eval_metric = metric.compute() + # Use accelerator.print to print only on the main process. + accelerator.print(f"epoch {epoch}:", eval_metric) + performance_metric[f"epoch-{epoch}"] = eval_metric["accuracy"] + + if best_performance < eval_metric["accuracy"]: + best_performance = eval_metric["accuracy"] + assert best_performance > performance_metric["epoch-0"] + + +def multiple_model_training(config, args): + # This will essentially be like a k-fold model, but one model is Zero-2 and another model is Zero-3 + num_epochs = config["num_epochs"] + zero2_plugin = DeepSpeedPlugin(hf_ds_config=ds_config_file["zero2"]) + zero3_plugin = DeepSpeedPlugin(hf_ds_config=ds_config_file["zero3"]) + + deepspeed_plugins = {"zero2": zero2_plugin, "zero3": zero3_plugin} + + # Initialize accelerator + zero2_accelerator = Accelerator( + deepspeed_plugins=deepspeed_plugins, + mixed_precision="bf16", + ) + + # Since an `AcceleratorState` has already been made, we can just reuse it here + zero3_accelerator = Accelerator() + + # Initialize model under zero2 plugin + assert get_active_deepspeed_plugin(zero2_accelerator.state) is zero2_plugin + zero2_model = AutoModelForSequenceClassification.from_pretrained(args.model_name_or_path) + train_dataloader, eval_dataloader = get_dataloaders( + zero2_accelerator, batch_size=config["batch_size"], model_name=args.model_name_or_path + ) + max_training_steps = len(train_dataloader) * config["num_epochs"] + zero2_optimizer = AdamW(zero2_model.parameters(), lr=config["lr"]) + zero2_lr_scheduler = get_linear_schedule_with_warmup( + zero2_optimizer, num_warmup_steps=0, num_training_steps=max_training_steps + ) + + train_dataloader, eval_dataloader, zero2_model, zero2_optimizer, zero2_lr_scheduler = zero2_accelerator.prepare( + train_dataloader, eval_dataloader, zero2_model, zero2_optimizer, zero2_lr_scheduler + ) + assert zero2_accelerator.deepspeed_engine_wrapped.engine is zero2_model + + # now do Zero3 + zero3_accelerator.state.select_deepspeed_plugin("zero3") + zero3_plugin.deepspeed_config["train_micro_batch_size_per_gpu"] = zero2_plugin.deepspeed_config[ + "train_micro_batch_size_per_gpu" + ] + assert get_active_deepspeed_plugin(zero3_accelerator.state) is zero3_plugin + zero3_model = AutoModelForSequenceClassification.from_pretrained(args.model_name_or_path) + zero3_optimizer = AdamW(zero3_model.parameters(), lr=config["lr"]) + zero3_lr_scheduler = get_linear_schedule_with_warmup( + zero3_optimizer, num_warmup_steps=0, num_training_steps=max_training_steps + ) + zero3_model, zero3_optimizer, zero3_lr_scheduler = zero3_accelerator.prepare( + zero3_model, zero3_optimizer, zero3_lr_scheduler + ) + assert zero3_accelerator.deepspeed_engine_wrapped.engine is zero3_model + + # Run training loop + starting_epoch = 0 + + # Now we train the model + best_performance_a = 0 + best_performance_b = 0 + metric_a = evaluate.load("glue", "mrpc") + metric_b = evaluate.load("glue", "mrpc") + performance_metric_a = {} + performance_metric_b = {} + for epoch in range(starting_epoch, num_epochs): + zero2_model.train() + zero3_model.train() + for step, batch in enumerate(train_dataloader): + with zero2_accelerator.accumulate(zero2_model, zero3_model): + outputs_1 = zero2_model(**batch) + zero2_accelerator.backward(outputs_1.loss) + zero2_optimizer.step() + zero2_lr_scheduler.step() + zero2_optimizer.zero_grad() + outputs_2 = zero3_model(**batch) + zero3_accelerator.backward(outputs_2.loss) + zero3_optimizer.step() + zero3_lr_scheduler.step() + zero3_optimizer.zero_grad() + + zero2_model.eval() + zero3_model.eval() + for step, batch in enumerate(eval_dataloader): + with torch.no_grad(): + logits_a = zero2_model(**batch).logits + logits_b = zero3_model(**batch).logits + # Combine the logits from both models + predictions_a = logits_a.argmax(dim=-1) + predictions_b = logits_b.argmax(dim=-1) + # It is slightly faster to call this once, than multiple times + predictions_a, predictions_b, references = zero2_accelerator.gather_for_metrics( + (predictions_a, predictions_b, batch["labels"]) + ) + metric_a.add_batch( + predictions=predictions_a, + references=references, + ) + metric_b.add_batch( + predictions=predictions_b, + references=references, + ) + + eval_metric_a = metric_a.compute() + eval_metric_b = metric_b.compute() + # Use accelerator.print to print only on the main process. + zero2_accelerator.print(f"epoch {epoch}:", eval_metric_a, eval_metric_b) + performance_metric_a[f"epoch-{epoch}"] = eval_metric_a["accuracy"] + performance_metric_b[f"epoch-{epoch}"] = eval_metric_b["accuracy"] + + if best_performance_a < eval_metric_a["accuracy"]: + best_performance_a = eval_metric_a["accuracy"] + if best_performance_b < eval_metric_b["accuracy"]: + best_performance_b = eval_metric_b["accuracy"] + assert best_performance_a > performance_metric_a["epoch-0"] + assert best_performance_b > performance_metric_b["epoch-0"] + + +def main(): + parser = argparse.ArgumentParser(description="Simple example of training script tracking peak GPU memory usage.") + parser.add_argument( + "--model_name_or_path", + type=str, + default="bert-base-cased", + help="Path to pretrained model or model identifier from huggingface.co/models.", + required=False, + ) + parser.add_argument( + "--performance_lower_bound", + type=float, + default=None, + help="Optional lower bound for the performance metric. If set, the training will throw error when the performance metric drops below this value.", + ) + parser.add_argument( + "--num_epochs", + type=int, + default=3, + help="Number of train epochs.", + ) + args = parser.parse_args() + config = {"lr": 2e-5, "num_epochs": args.num_epochs, "seed": 42, "batch_size": 8} + single_model_training(config, args) + AcceleratorState._reset_state(True) + multiple_model_training(config, args) + + +if __name__ == "__main__": + main() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_metrics.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_metrics.py new file mode 100644 index 0000000000000000000000000000000000000000..d1bfe351509148ebc48067584e9d61b93e7210a6 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_metrics.py @@ -0,0 +1,307 @@ +# Copyright 2022 The HuggingFace Team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import logging +import math +import os +from copy import deepcopy + +import datasets +import evaluate +import torch +import transformers +from datasets import load_dataset +from torch.utils.data import DataLoader, IterableDataset +from transformers import AutoModelForSequenceClassification, AutoTokenizer + +from accelerate import Accelerator, DataLoaderConfiguration, DistributedType +from accelerate.data_loader import DataLoaderDispatcher +from accelerate.test_utils import RegressionDataset, RegressionModel, torch_device +from accelerate.utils import is_torch_xla_available, set_seed + + +os.environ["TRANSFORMERS_NO_ADVISORY_WARNINGS"] = "true" + + +class ListHandler(logging.Handler): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.logs = [] + + def emit(self, record): + self.logs.append(record) + + +def get_basic_setup(accelerator, num_samples=82, batch_size=16): + "Returns everything needed to perform basic training" + set_seed(42) + model = RegressionModel() + ddp_model = deepcopy(model) + dset = RegressionDataset(length=num_samples) + dataloader = DataLoader(dset, batch_size=batch_size) + model.to(accelerator.device) + ddp_model, dataloader = accelerator.prepare(ddp_model, dataloader) + return model, ddp_model, dataloader + + +def get_dataloader(accelerator: Accelerator, use_longest=False): + tokenizer = AutoTokenizer.from_pretrained("hf-internal-testing/mrpc-bert-base-cased") + dataset = load_dataset("glue", "mrpc", split="validation") + + def tokenize_function(examples): + outputs = tokenizer(examples["sentence1"], examples["sentence2"], truncation=True, max_length=None) + return outputs + + with accelerator.main_process_first(): + tokenized_datasets = dataset.map( + tokenize_function, + batched=True, + remove_columns=["idx", "sentence1", "sentence2"], + ) + + tokenized_datasets = tokenized_datasets.rename_column("label", "labels") + + def collate_fn(examples): + if use_longest: + return tokenizer.pad(examples, padding="longest", return_tensors="pt") + return tokenizer.pad(examples, padding="max_length", max_length=128, return_tensors="pt") + + return DataLoader(tokenized_datasets, shuffle=False, collate_fn=collate_fn, batch_size=16) + + +def get_mrpc_setup(dispatch_batches, split_batches): + dataloader_config = DataLoaderConfiguration(dispatch_batches=dispatch_batches, split_batches=split_batches) + accelerator = Accelerator(dataloader_config=dataloader_config) + dataloader = get_dataloader(accelerator, not dispatch_batches) + model = AutoModelForSequenceClassification.from_pretrained( + "hf-internal-testing/mrpc-bert-base-cased", return_dict=True + ) + ddp_model, ddp_dataloader = accelerator.prepare(model, dataloader) + return { + "ddp": [ddp_model, ddp_dataloader, torch_device], + "no": [model, dataloader, accelerator.device], + }, accelerator + + +def generate_predictions(model, dataloader, accelerator): + logits_and_targets = [] + for batch in dataloader: + input, target = batch.values() + with torch.no_grad(): + logit = model(input) + logit, target = accelerator.gather_for_metrics((logit, target)) + logits_and_targets.append((logit, target)) + logits, targs = [], [] + for logit, targ in logits_and_targets: + logits.append(logit) + targs.append(targ) + logits, targs = torch.cat(logits), torch.cat(targs) + return logits, targs + + +def test_torch_metrics( + accelerator: Accelerator, num_samples=82, dispatch_batches=False, split_batches=False, batch_size=16 +): + _, ddp_model, dataloader = get_basic_setup(accelerator, num_samples, batch_size) + logits, _ = generate_predictions(ddp_model, dataloader, accelerator) + assert len(logits) == num_samples, ( + f"Unexpected number of inputs:\n Expected: {num_samples}\n Actual: {len(logits)}" + ) + + +def test_mrpc(dispatch_batches: bool = False, split_batches: bool = False): + metric = evaluate.load("glue", "mrpc") + setup, accelerator = get_mrpc_setup(dispatch_batches, split_batches) + # First do baseline + model, dataloader, device = setup["no"] + model.to(device) + model.eval() + for batch in dataloader: + batch.to(device) + with torch.inference_mode(): + outputs = model(**batch) + preds = outputs.logits.argmax(dim=-1) + metric.add_batch(predictions=preds, references=batch["labels"]) + baseline = metric.compute() + + # Then do distributed + model, dataloader, device = setup["ddp"] + model.eval() + for batch in dataloader: + with torch.inference_mode(): + outputs = model(**batch) + preds = outputs.logits.argmax(dim=-1) + references = batch["labels"] + preds, references = accelerator.gather_for_metrics((preds, references)) + metric.add_batch(predictions=preds, references=references) + distributed = metric.compute() + + for key in "accuracy f1".split(): + assert math.isclose(baseline[key], distributed[key]), ( + f"Baseline and Distributed are not the same for key {key}:\n\tBaseline: {baseline[key]}\n\tDistributed: {distributed[key]}\n" + ) + + +def test_gather_for_metrics_with_non_tensor_objects_iterable_dataset(): + class DummyIterableDataset(IterableDataset): + def __init__(self, data): + self.data = data + + def __len__(self): + return len(self.data) + + def __iter__(self): + yield from self.data + + iterable_dataset = DummyIterableDataset([n for n in range(30)]) + dataloader = DataLoader(iterable_dataset, batch_size=4) + accelerator = Accelerator() + prepared_dataloader = accelerator.prepare(dataloader) + + if accelerator.is_main_process: + logger = logging.root.manager.loggerDict["accelerate.accelerator"] + list_handler = ListHandler() + logger.addHandler(list_handler) + + batches_for_metrics = [] + for batch in prepared_dataloader: + batches_for_metrics.append(accelerator.gather_for_metrics(batch)) + + assert torch.cat(batches_for_metrics).size(0) == 30 + + if accelerator.is_main_process: + assert len(list_handler.logs) == 0 + logger.removeHandler(list_handler) + + +def test_gather_for_metrics_with_iterable_dataset(): + class DummyIterableDataset(IterableDataset): + def __init__(self, data): + self.data = data + + def __len__(self): + return len(self.data) + + def __iter__(self): + yield from self.data + + iterable_dataset = DummyIterableDataset(torch.as_tensor(range(30))) + dataloader = DataLoader(iterable_dataset, batch_size=4) + + accelerator = Accelerator() + prepared_dataloader = accelerator.prepare(dataloader) + + assert isinstance(prepared_dataloader, DataLoaderDispatcher) + + if accelerator.is_main_process: + logger = logging.root.manager.loggerDict["accelerate.accelerator"] + list_handler = ListHandler() + logger.addHandler(list_handler) + + batches_for_metrics = [] + for batch in prepared_dataloader: + batches_for_metrics.append(accelerator.gather_for_metrics(batch)) + + assert torch.cat(batches_for_metrics).size(0) == 30 + + if accelerator.is_main_process: + assert len(list_handler.logs) == 0 + + logger.removeHandler(list_handler) + + +def test_gather_for_metrics_drop_last(): + accelerator = Accelerator() + per_device_batch_size = 5 + num_items = (10 * accelerator.num_processes) + 1 + dataloader = DataLoader(range(num_items), batch_size=per_device_batch_size, drop_last=True) + dataloader = accelerator.prepare(dataloader) + + iterator = iter(dataloader) + next(iterator) # Skip first batch tensor([0, 1, 2, 3, 4], device='cuda:0') + batch = next(iterator) + gathered_items = accelerator.gather_for_metrics(batch) + + # Should return a full set of complete batches from each GPU + num_expected_items = per_device_batch_size * accelerator.num_processes + assert gathered_items.size(0) == (num_expected_items), ( + f"Expected number of items: {num_expected_items}, Actual: {gathered_items.size(0)}" + ) + + +def main(): + dataloader_config = DataLoaderConfiguration(split_batches=False, dispatch_batches=False) + accelerator = Accelerator(dataloader_config=dataloader_config) + if accelerator.is_local_main_process: + datasets.utils.logging.set_verbosity_warning() + transformers.utils.logging.set_verbosity_warning() + else: + datasets.utils.logging.set_verbosity_error() + transformers.utils.logging.set_verbosity_error() + # TorchXLA does not support batch dispatching. 'put_on_device' is always False for + # TorchXLA, which can cause a value error in 'prepare_data_loader' function. + dispatch_batches_options = [False] if accelerator.state.distributed_type == DistributedType.XLA else [True, False] + + # Temporarily close this test for TorchXLA due to the 'Cannot set version_counter for + # inference tensor' error in inference mode. Reopen it after TorchXLA fixes this bug. + # These are a bit slower so they should only be ran on the GPU or TPU + if accelerator.device.type != "cpu" and not is_torch_xla_available(): + if accelerator.is_local_main_process: + print("**Testing gather_for_metrics**") + for split_batches in [True, False]: + for dispatch_batches in dispatch_batches_options: + if accelerator.is_local_main_process: + print(f"With: `split_batches={split_batches}`, `dispatch_batches={dispatch_batches}`") + test_mrpc(dispatch_batches, split_batches) + accelerator.state._reset_state() + print("test_gather_for_metrics_with_iterable_dataset") + test_gather_for_metrics_with_iterable_dataset() + print("test gather_for_metrics_with_non_tensor_objects_iterable_dataset") + test_gather_for_metrics_with_non_tensor_objects_iterable_dataset() + + # MpDeviceLoader in TorchXLA is an asynchronous loader that preloads several batches into cache. + # This can cause the 'end_of_dataloader' of DataLoaderStateMixin to be set earlier than intended. + # Skip this test when TorchXLA is enabled. + if accelerator.state.distributed_type != DistributedType.XLA: + if accelerator.is_local_main_process: + print("**Test torch metrics**") + for split_batches in [True, False]: + for dispatch_batches in dispatch_batches_options: + dataloader_config = DataLoaderConfiguration( + split_batches=split_batches, dispatch_batches=dispatch_batches + ) + accelerator = Accelerator(dataloader_config=dataloader_config) + if accelerator.is_local_main_process: + print(f"With: `split_batches={split_batches}`, `dispatch_batches={dispatch_batches}`, length=99") + test_torch_metrics(accelerator, 99) + accelerator.state._reset_state() + if accelerator.is_local_main_process: + print("**Test last batch is not dropped when perfectly divisible**") + accelerator = Accelerator() + test_torch_metrics(accelerator, 512) + accelerator.state._reset_state() + if accelerator.is_local_main_process: + print("**Test that `drop_last` is taken into account**") + test_gather_for_metrics_drop_last() + accelerator.end_training() + accelerator.state._reset_state() + + +def _mp_fn(index): + # For xla_spawn (TPUs) + main() + + +if __name__ == "__main__": + main() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_peak_memory_usage.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_peak_memory_usage.py new file mode 100644 index 0000000000000000000000000000000000000000..e1b59afec5c5de3d54bf26c8844dd8f9e6983f61 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_peak_memory_usage.py @@ -0,0 +1,314 @@ +# Copyright 2022 The HuggingFace Inc. team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import argparse +import gc +import json +import os + +import torch +from datasets import load_dataset +from torch.optim import AdamW +from torch.utils.data import DataLoader +from transformers import AutoModelForSequenceClassification, AutoTokenizer, get_linear_schedule_with_warmup, set_seed + +from accelerate import Accelerator, DistributedType +from accelerate.utils import ( + is_hpu_available, + is_mlu_available, + is_musa_available, + is_npu_available, + is_sdaa_available, + is_xpu_available, +) +from accelerate.utils.deepspeed import DummyOptim, DummyScheduler + + +MAX_GPU_BATCH_SIZE = 16 +EVAL_BATCH_SIZE = 32 + + +# Converting Bytes to Megabytes +def b2mb(x): + return int(x / 2**20) + + +# This context manager is used to track the peak memory usage of the process +class TorchTracemalloc: + def __enter__(self): + gc.collect() + if torch.cuda.is_available(): + torch.cuda.empty_cache() + torch.cuda.reset_max_memory_allocated() # reset the peak gauge to zero + self.begin = torch.cuda.memory_allocated() + elif is_mlu_available(): + torch.mlu.empty_cache() + torch.mlu.reset_max_memory_allocated() # reset the peak gauge to zero + self.begin = torch.mlu.memory_allocated() + elif is_sdaa_available(): + torch.sdaa.empty_cache() + torch.sdaa.reset_max_memory_allocated() # reset the peak gauge to zero + self.begin = torch.sdaa.memory_allocated() + elif is_musa_available(): + torch.musa.empty_cache() + torch.musa.reset_max_memory_allocated() # reset the peak gauge to zero + self.begin = torch.musa.memory_allocated() + elif is_npu_available(): + torch.npu.empty_cache() + torch.npu.reset_max_memory_allocated() # reset the peak gauge to zero + self.begin = torch.npu.memory_allocated() + elif is_xpu_available(): + torch.xpu.empty_cache() + torch.xpu.reset_peak_memory_stats() # reset the peak gauge to zero + self.begin = torch.xpu.memory_allocated() + elif is_hpu_available(): + # torch.hpu.empty_cache() # not available on hpu as it reserves all device memory for the current process + torch.hpu.reset_peak_memory_stats() # reset the peak gauge to zero + self.begin = torch.hpu.memory_allocated() + return self + + def __exit__(self, *exc): + gc.collect() + if torch.cuda.is_available(): + torch.cuda.empty_cache() + self.end = torch.cuda.memory_allocated() + self.peak = torch.cuda.max_memory_allocated() + elif is_mlu_available(): + torch.mlu.empty_cache() + self.end = torch.mlu.memory_allocated() + self.begin = torch.mlu.max_memory_allocated() + elif is_sdaa_available(): + torch.sdaa.empty_cache() + self.end = torch.sdaa.memory_allocated() + self.begin = torch.sdaa.max_memory_allocated() + elif is_musa_available(): + torch.musa.empty_cache() + self.end = torch.musa.memory_allocated() + self.begin = torch.musa.max_memory_allocated() + elif is_npu_available(): + torch.npu.empty_cache() + self.end = torch.npu.memory_allocated() + self.peak = torch.npu.max_memory_allocated() + elif is_xpu_available(): + torch.xpu.empty_cache() + self.end = torch.xpu.memory_allocated() + self.peak = torch.xpu.max_memory_allocated() + elif is_hpu_available(): + # torch.hpu.empty_cache() # not available on hpu as it reserves all device memory for the current process + self.end = torch.hpu.memory_allocated() + self.peak = torch.hpu.max_memory_allocated() + self.used = b2mb(self.end - self.begin) + self.peaked = b2mb(self.peak - self.begin) + # print(f"delta used/peak {self.used:4d}/{self.peaked:4d}") + + +def get_dataloaders( + accelerator: Accelerator, + batch_size: int = 16, + model_name: str = "bert-base-cased", + n_train: int = 320, + n_val: int = 160, +): + """ + Creates a set of `DataLoader`s for the `glue` dataset. + + Args: + accelerator (`Accelerator`): + An `Accelerator` object + batch_size (`int`, *optional*): + The batch size for the train and validation DataLoaders. + model_name (`str`, *optional*): + The name of the model to use. + n_train (`int`, *optional*): + The number of training examples to use. + n_val (`int`, *optional*): + The number of validation examples to use. + """ + tokenizer = AutoTokenizer.from_pretrained(model_name) + datasets = load_dataset( + "glue", "mrpc", split={"train": f"train[:{n_train}]", "validation": f"validation[:{n_val}]"} + ) + + def tokenize_function(examples): + # max_length=None => use the model max length (it's actually the default) + outputs = tokenizer(examples["sentence1"], examples["sentence2"], truncation=True, max_length=None) + return outputs + + # Apply the method we just defined to all the examples in all the splits of the dataset + tokenized_datasets = datasets.map( + tokenize_function, batched=True, remove_columns=["idx", "sentence1", "sentence2"], load_from_cache_file=False + ) + + # We also rename the 'label' column to 'labels' which is the expected name for labels by the models of the + # transformers library + tokenized_datasets = tokenized_datasets.rename_column("label", "labels") + + def collate_fn(examples): + # On TPU it's best to pad everything to the same length or training will be very slow. + if accelerator.distributed_type == DistributedType.XLA: + return tokenizer.pad(examples, padding="max_length", max_length=128, return_tensors="pt") + return tokenizer.pad(examples, padding="longest", return_tensors="pt") + + # Instantiate dataloaders. + train_dataloader = DataLoader( + tokenized_datasets["train"], shuffle=True, collate_fn=collate_fn, batch_size=batch_size + ) + eval_dataloader = DataLoader( + tokenized_datasets["validation"], shuffle=False, collate_fn=collate_fn, batch_size=EVAL_BATCH_SIZE + ) + + return train_dataloader, eval_dataloader + + +def training_function(config, args): + # Initialize accelerator + accelerator = Accelerator() + + # Sample hyper-parameters for learning rate, batch size, seed and a few other HPs + lr = config["lr"] + num_epochs = int(config["num_epochs"]) + seed = int(config["seed"]) + batch_size = int(config["batch_size"]) + model_name = args.model_name_or_path + + set_seed(seed) + train_dataloader, eval_dataloader = get_dataloaders(accelerator, batch_size, model_name, args.n_train, args.n_val) + + # Instantiate the model (we build the model here so that the seed also control new weights initialization) + model = AutoModelForSequenceClassification.from_pretrained(model_name, return_dict=True) + + # Instantiate optimizer + optimizer_cls = ( + AdamW + if accelerator.state.deepspeed_plugin is None + or "optimizer" not in accelerator.state.deepspeed_plugin.deepspeed_config + else DummyOptim + ) + optimizer = optimizer_cls(params=model.parameters(), lr=lr) + + if accelerator.state.deepspeed_plugin is not None: + gradient_accumulation_steps = accelerator.state.deepspeed_plugin.deepspeed_config[ + "gradient_accumulation_steps" + ] + else: + gradient_accumulation_steps = 1 + max_training_steps = (len(train_dataloader) * num_epochs) // gradient_accumulation_steps + + # Instantiate scheduler + if ( + accelerator.state.deepspeed_plugin is None + or "scheduler" not in accelerator.state.deepspeed_plugin.deepspeed_config + ): + lr_scheduler = get_linear_schedule_with_warmup( + optimizer=optimizer, + num_warmup_steps=0, + num_training_steps=max_training_steps, + ) + else: + lr_scheduler = DummyScheduler(optimizer, total_num_steps=max_training_steps, warmup_num_steps=0) + + # Prepare everything + # There is no specific order to remember, we just need to unpack the objects in the same order we gave them to the + # prepare method. + model, optimizer, train_dataloader, eval_dataloader, lr_scheduler = accelerator.prepare( + model, optimizer, train_dataloader, eval_dataloader, lr_scheduler + ) + + # We need to keep track of how many total steps we have iterated over + overall_step = 0 + # We also need to keep track of the stating epoch so files are named properly + starting_epoch = 0 + + # Now we train the model + train_total_peak_memory = {} + for epoch in range(starting_epoch, num_epochs): + with TorchTracemalloc() as tracemalloc: + model.train() + for step, batch in enumerate(train_dataloader): + outputs = model(**batch) + loss = outputs.loss + loss = loss / gradient_accumulation_steps + accelerator.backward(loss) + if step % gradient_accumulation_steps == 0: + optimizer.step() + lr_scheduler.step() + optimizer.zero_grad() + + overall_step += 1 + + # Printing the GPU memory usage details such as allocated memory, peak memory, and total memory usage + accelerator.print(f"Memory before entering the train : {b2mb(tracemalloc.begin)}") + accelerator.print(f"Memory consumed at the end of the train (end-begin): {tracemalloc.used}") + accelerator.print(f"Peak Memory consumed during the train (max-begin): {tracemalloc.peaked}") + accelerator.print( + f"Total Peak Memory consumed during the train (max): {tracemalloc.peaked + b2mb(tracemalloc.begin)}" + ) + train_total_peak_memory[f"epoch-{epoch}"] = tracemalloc.peaked + b2mb(tracemalloc.begin) + if args.peak_memory_upper_bound is not None: + assert train_total_peak_memory[f"epoch-{epoch}"] <= args.peak_memory_upper_bound, ( + "Peak memory usage exceeded the upper bound" + ) + + accelerator.wait_for_everyone() + if accelerator.is_main_process: + with open(os.path.join(args.output_dir, "peak_memory_utilization.json"), "w") as f: + json.dump(train_total_peak_memory, f) + accelerator.end_training() + + +def main(): + parser = argparse.ArgumentParser(description="Simple example of training script tracking peak GPU memory usage.") + parser.add_argument( + "--model_name_or_path", + type=str, + default="bert-base-cased", + help="Path to pretrained model or model identifier from huggingface.co/models.", + required=False, + ) + parser.add_argument( + "--output_dir", + type=str, + default=".", + help="Optional save directory where all checkpoint folders will be stored. Default is the current working directory.", + ) + parser.add_argument( + "--peak_memory_upper_bound", + type=float, + default=None, + help="The upper bound of peak memory usage in MB. If set, the training will throw an error if the peak memory usage exceeds this value.", + ) + parser.add_argument( + "--n_train", + type=int, + default=320, + help="Number of training examples to use.", + ) + parser.add_argument( + "--n_val", + type=int, + default=160, + help="Number of validation examples to use.", + ) + parser.add_argument( + "--num_epochs", + type=int, + default=1, + help="Number of train epochs.", + ) + args = parser.parse_args() + config = {"lr": 2e-5, "num_epochs": args.num_epochs, "seed": 42, "batch_size": 16} + training_function(config, args) + + +if __name__ == "__main__": + main() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_performance.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_performance.py new file mode 100644 index 0000000000000000000000000000000000000000..8e500bdd4c01013904375f010e99d22aea4e4ff9 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_performance.py @@ -0,0 +1,299 @@ +# Copyright 2022 The HuggingFace Inc. team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import argparse +import json +import os +from contextlib import nullcontext +from pathlib import Path + +import evaluate +import torch +from datasets import load_dataset +from torch.optim import AdamW +from torch.utils.data import DataLoader +from transformers import AutoModelForSequenceClassification, AutoTokenizer, get_linear_schedule_with_warmup + +from accelerate import Accelerator, DistributedType +from accelerate.parallelism_config import ParallelismConfig +from accelerate.utils import SAFE_WEIGHTS_NAME, set_seed +from accelerate.utils.deepspeed import DummyOptim, DummyScheduler + + +MAX_GPU_BATCH_SIZE = 16 +EVAL_BATCH_SIZE = 32 + + +def get_dataloaders(accelerator: Accelerator, batch_size: int = 16, model_name: str = "bert-base-cased"): + """ + Creates a set of `DataLoader`s for the `glue` dataset. + + Args: + accelerator (`Accelerator`): + An `Accelerator` object + batch_size (`int`, *optional*): + The batch size for the train and validation DataLoaders. + model_name (`str`, *optional*): + """ + tokenizer = AutoTokenizer.from_pretrained(model_name) + + datasets = load_dataset("glue", "mrpc") + + def tokenize_function(examples): + # max_length=None => use the model max length (it's actually the default) + outputs = tokenizer(examples["sentence1"], examples["sentence2"], truncation=True, max_length=None) + return outputs + + # Apply the method we just defined to all the examples in all the splits of the dataset + tokenized_datasets = datasets.map( + tokenize_function, batched=True, remove_columns=["idx", "sentence1", "sentence2"], load_from_cache_file=False + ) + + # We also rename the 'label' column to 'labels' which is the expected name for labels by the models of the + # transformers library + tokenized_datasets = tokenized_datasets.rename_column("label", "labels") + + def collate_fn(examples): + # On TPU it's best to pad everything to the same length or training will be very slow. + if accelerator.distributed_type == DistributedType.XLA: + return tokenizer.pad(examples, padding="max_length", max_length=128, return_tensors="pt") + return tokenizer.pad(examples, padding="longest", return_tensors="pt") + + # Instantiate dataloaders. + train_dataloader = DataLoader( + tokenized_datasets["train"], shuffle=True, collate_fn=collate_fn, batch_size=batch_size + ) + eval_dataloader = DataLoader( + tokenized_datasets["validation"], shuffle=False, collate_fn=collate_fn, batch_size=EVAL_BATCH_SIZE + ) + + return train_dataloader, eval_dataloader + + +def training_function(config, args): + accelerator_kwargs = {} + # need this for DeepSpeed tests as `args.tp_size` would be None and `torch.distributed.init_device_mesh` would fail + if args.tp_size is not None: + accelerator_kwargs["parallelism_config"] = ParallelismConfig(tp_size=args.tp_size) + + # Initialize accelerator + accelerator = Accelerator(**accelerator_kwargs) + + # Sample hyper-parameters for learning rate, batch size, seed and a few other HPs + lr = config["lr"] + num_epochs = int(config["num_epochs"]) + seed = int(config["seed"]) + batch_size = int(config["batch_size"]) + model_name = args.model_name_or_path + + set_seed(seed) + train_dataloader, eval_dataloader = get_dataloaders(accelerator, batch_size, model_name) + + # Add TP related kwargs if provided + model_kwargs = {} + if args.tp_plan is not None: + model_kwargs["tp_plan"] = args.tp_plan + if args.tp_size is not None: + model_kwargs["tp_size"] = args.tp_size + + # Instantiate the model (we build the model here so that the seed also control new weights initialization) + model = AutoModelForSequenceClassification.from_pretrained(model_name, return_dict=True, **model_kwargs) + + if args.add_pad_token: + if model.config.pad_token_id is None: + model.config.pad_token_id = 0 + + # Instantiate optimizer + optimizer_cls = ( + AdamW + if accelerator.state.deepspeed_plugin is None + or "optimizer" not in accelerator.state.deepspeed_plugin.deepspeed_config + else DummyOptim + ) + optimizer = optimizer_cls(params=model.parameters(), lr=lr) + + max_training_steps = len(train_dataloader) * num_epochs + + # Instantiate scheduler + linear_decay_scheduler = False + if ( + accelerator.state.deepspeed_plugin is None + or "scheduler" not in accelerator.state.deepspeed_plugin.deepspeed_config + ): + lr_scheduler = get_linear_schedule_with_warmup( + optimizer=optimizer, + num_warmup_steps=0, + num_training_steps=max_training_steps, + ) + linear_decay_scheduler = True + else: + lr_scheduler = DummyScheduler(optimizer, total_num_steps=max_training_steps, warmup_num_steps=0) + + # Prepare everything + # There is no specific order to remember, we just need to unpack the objects in the same order we gave them to the + # prepare method. + model, optimizer, train_dataloader, eval_dataloader, lr_scheduler = accelerator.prepare( + model, optimizer, train_dataloader, eval_dataloader, lr_scheduler + ) + + # We also need to keep track of the stating epoch so files are named properly + starting_epoch = 0 + + # Now we train the model + metric = evaluate.load("glue", "mrpc") + best_performance = 0 + performance_metric = {} + expected_lr_after_first_optim_step = lr * ( + 1 - 1 / (max_training_steps / accelerator.num_processes / accelerator.gradient_accumulation_steps) + ) + lr_scheduler_check_completed = False + for epoch in range(starting_epoch, num_epochs): + model.train() + for step, batch in enumerate(train_dataloader): + with accelerator.accumulate(model): + outputs = model(**batch) + loss = outputs.loss + accelerator.backward(loss) + context = nullcontext + if args.tp_plan is not None: + from torch.distributed._tensor.experimental import implicit_replication + + context = implicit_replication + with context(): + optimizer.step() + lr_scheduler.step() + optimizer.zero_grad() + + # assert the learning rate after first optimizer step + if ( + accelerator.sync_gradients + and not lr_scheduler_check_completed + and linear_decay_scheduler + and accelerator.state.mixed_precision == "no" + ): + assert lr_scheduler.get_last_lr()[0] == expected_lr_after_first_optim_step, ( + f"Wrong lr found at second step, expected {expected_lr_after_first_optim_step}, got {lr_scheduler.get_last_lr()[0]}" + ) + lr_scheduler_check_completed = True + + model.eval() + samples_seen = 0 + for step, batch in enumerate(eval_dataloader): + # We could avoid this line since we set the accelerator with `device_placement=True`. + batch.to(accelerator.device) + with torch.no_grad(): + outputs = model(**batch) + predictions = outputs.logits.argmax(dim=-1) + # It is slightly faster to call this once, than multiple times + predictions, references = accelerator.gather( + (predictions, batch["labels"]) + ) # If we are in a multiprocess environment, the last batch has duplicates + if accelerator.use_distributed: + if step == len(eval_dataloader) - 1: + predictions = predictions[: len(eval_dataloader.dataset) - samples_seen] + references = references[: len(eval_dataloader.dataset) - samples_seen] + else: + samples_seen += references.shape[0] + metric.add_batch( + predictions=predictions, + references=references, + ) + + eval_metric = metric.compute() + # Use accelerator.print to print only on the main process. + accelerator.print(f"epoch {epoch}:", eval_metric) + performance_metric[f"epoch-{epoch}"] = eval_metric["accuracy"] + + if best_performance < eval_metric["accuracy"]: + best_performance = eval_metric["accuracy"] + + # check that the LR is 0 + if linear_decay_scheduler and accelerator.state.mixed_precision == "no": + assert lr_scheduler.get_last_lr()[0] == 0, ( + f"Wrong lr found at last step, expected 0, got {lr_scheduler.get_last_lr()[0]}" + ) + + if args.performance_lower_bound is not None: + assert args.performance_lower_bound <= best_performance, ( + f"Best performance metric {best_performance} is lower than the lower bound {args.performance_lower_bound}" + ) + + accelerator.wait_for_everyone() + if accelerator.is_main_process: + with open(os.path.join(args.output_dir, "all_results.json"), "w") as f: + json.dump(performance_metric, f) + + # TODO: skip saving of the model test for TP until the feature lands + if args.tp_plan is None: + # Finally try saving the model + accelerator.save_model(model, args.output_dir) + accelerator.wait_for_everyone() + if args.tp_plan is None: + assert Path(args.output_dir, SAFE_WEIGHTS_NAME).exists(), ( + "Model was not saved when calling `Accelerator.save_model`" + ) + accelerator.end_training() + + +def main(): + parser = argparse.ArgumentParser(description="Simple example of training script tracking peak GPU memory usage.") + parser.add_argument( + "--model_name_or_path", + type=str, + default="bert-base-cased", + help="Path to pretrained model or model identifier from huggingface.co/models.", + required=False, + ) + parser.add_argument( + "--output_dir", + type=str, + default=".", + help="Optional save directory where all checkpoint folders will be stored. Default is the current working directory.", + ) + parser.add_argument( + "--performance_lower_bound", + type=float, + default=None, + help="Optional lower bound for the performance metric. If set, the training will throw error when the performance metric drops below this value.", + ) + parser.add_argument( + "--num_epochs", + type=int, + default=3, + help="Number of train epochs.", + ) + parser.add_argument( + "--add_pad_token", + type=bool, + default=False, + help="To add pad token if not exists.", + ) + parser.add_argument( + "--tp_plan", + type=str, + default=None, + help="pass 'auto' to use TP", + ) + parser.add_argument( + "--tp_size", + type=int, + default=None, + help="TP size to be used to shard the model", + ) + args = parser.parse_args() + config = {"lr": 2e-5, "num_epochs": args.num_epochs, "seed": 42, "batch_size": 16} + training_function(config, args) + + +if __name__ == "__main__": + main() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_pippy.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_pippy.py new file mode 100644 index 0000000000000000000000000000000000000000..1dbd86c46b4a0c12df8ea4d736c7cd1e03f81813 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_pippy.py @@ -0,0 +1,117 @@ +# Copyright 2024 The HuggingFace Inc. team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import torch +from transformers import ( + BertConfig, + BertForMaskedLM, + GPT2Config, + GPT2ForSequenceClassification, +) + +from accelerate import PartialState +from accelerate.inference import prepare_pippy +from accelerate.test_utils import torch_device +from accelerate.utils import DistributedType, set_seed + + +model_to_config = { + "bert": (BertForMaskedLM, BertConfig, 512), + "gpt2": (GPT2ForSequenceClassification, GPT2Config, 1024), +} + + +def get_model_and_data_for_text(model_name, device, num_processes: int = 2): + initializer, config, seq_len = model_to_config[model_name] + config_args = {} + # Eventually needed for batch inference tests on gpt-2 when bs != 1 + # if model_name == "gpt2": + # config_args["pad_token_id"] = 0 + model_config = config(**config_args) + model = initializer(model_config) + kwargs = dict(low=0, high=model_config.vocab_size, device=device, dtype=torch.int64, requires_grad=False) + trace_input = torch.randint(size=(1, seq_len), **kwargs) + inference_inputs = torch.randint(size=(num_processes, seq_len), **kwargs) + return model, trace_input, inference_inputs + + +def test_bert(batch_size: int = 2): + set_seed(42) + state = PartialState() + model, trace_input, inference_inputs = get_model_and_data_for_text("bert", "cpu", batch_size) + model = prepare_pippy(model, example_args=(trace_input,), no_split_module_classes=model._no_split_modules) + # For inference args need to be a tuple + inputs = inference_inputs.to(torch_device) + with torch.no_grad(): + output = model(inputs) + # Zach: Check that we just grab the real outputs we need at the end + if not state.is_last_process: + assert output is None, "Output was not generated on just the last process!" + else: + assert output is not None, "Output was not generated in the last process!" + + +def test_gpt2(batch_size: int = 2): + set_seed(42) + state = PartialState() + model, trace_input, inference_inputs = get_model_and_data_for_text("gpt2", "cpu", batch_size) + model = prepare_pippy(model, example_args=(trace_input,), no_split_module_classes=model._no_split_modules) + # For inference args need to be a tuple + inputs = inference_inputs.to(torch_device) + with torch.no_grad(): + output = model(inputs) + # Zach: Check that we just grab the real outputs we need at the end + if not state.is_last_process: + assert output is None, "Output was not generated on just the last process!" + else: + assert output is not None, "Output was not generated in the last process!" + + +# Currently disabled, enable again once PyTorch pippy interface can trace a resnet34 +# def test_resnet(batch_size: int = 2): +# set_seed(42) +# state = PartialState() +# model = resnet34() +# input_tensor = torch.rand(1, 3, 224, 224) +# model = prepare_pippy( +# model, +# example_args=(input_tensor,), +# ) +# inference_inputs = torch.rand(batch_size, 3, 224, 224) +# inputs = send_to_device(inference_inputs, torch_device) +# with torch.no_grad(): +# output = model(inputs) +# # Zach: Check that we just grab the real outputs we need at the end +# if not state.is_last_process: +# assert output is None, "Output was not generated on just the last process!" +# else: +# assert output is not None, "Output was not generated in the last process!" + + +if __name__ == "__main__": + state = PartialState() + state.print("Testing pippy integration...") + try: + if state.distributed_type in [DistributedType.MULTI_GPU, DistributedType.MULTI_XPU, DistributedType.MULTI_HPU]: + state.print("Testing GPT2...") + test_gpt2() + # Issue: When modifying the tokenizer for batch GPT2 inference, there's an issue + # due to references + # NameError: cannot access free variable 'chunk_args_list' where it is not associated with a value in enclosing scope + # test_gpt2(3) + state.print("Testing BERT...") + test_bert() + else: + print("Less than two GPUs found, not running tests!") + finally: + state.destroy_process_group() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_zero3_integration.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_zero3_integration.py new file mode 100644 index 0000000000000000000000000000000000000000..f6e46d342a0c754cf1ed5b2629290d62e7c943aa --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/external_deps/test_zero3_integration.py @@ -0,0 +1,59 @@ +# Copyright 2024 The HuggingFace Team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import torch.distributed + +from accelerate.test_utils import require_huggingface_suite, torch_device +from accelerate.utils import is_transformers_available + + +if is_transformers_available(): + from transformers import AutoModel, TrainingArguments + + +GPT2_TINY = "sshleifer/tiny-gpt2" + + +@require_huggingface_suite +def init_torch_dist_then_launch_deepspeed(): + if torch_device == "xpu": + backend = "xccl" + elif torch_device == "hpu": + backend = "hccl" + else: + backend = "nccl" + + torch.distributed.init_process_group(backend=backend) + deepspeed_config = { + "zero_optimization": { + "stage": 3, + }, + "train_batch_size": "auto", + "train_micro_batch_size_per_gpu": "auto", + } + train_args = TrainingArguments( + output_dir="./", + deepspeed=deepspeed_config, + ) + model = AutoModel.from_pretrained(GPT2_TINY) + assert train_args is not None + assert model is not None + + +def main(): + init_torch_dist_then_launch_deepspeed() + + +if __name__ == "__main__": + main() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/test_cli.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/test_cli.py new file mode 100644 index 0000000000000000000000000000000000000000..fc9dd1d36e8f2949d6e3cebb8ce65efbf0b9e5e4 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/test_cli.py @@ -0,0 +1,32 @@ +# Copyright 2022 The HuggingFace Team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import torch + +from accelerate.utils import is_xpu_available + + +def main(): + accelerator_type = "GPU" + num_accelerators = 0 + if torch.cuda.is_available(): + num_accelerators = torch.cuda.device_count() + accelerator_type = "GPU" + elif is_xpu_available(): + num_accelerators = torch.xpu.device_count() + accelerator_type = "XPU" + print(f"Successfully ran on {num_accelerators} {accelerator_type}s") + + +if __name__ == "__main__": + main() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/test_ops.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/test_ops.py new file mode 100644 index 0000000000000000000000000000000000000000..1aa9b095e257bf63623b5127624b54c4a376c5ff --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/accelerate/test_utils/scripts/test_ops.py @@ -0,0 +1,181 @@ +#!/usr/bin/env python + +# Copyright 2023 The HuggingFace Team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import torch + +from accelerate import PartialState +from accelerate.test_utils.testing import assert_exception +from accelerate.utils.dataclasses import DistributedType +from accelerate.utils.operations import ( + DistributedOperationException, + broadcast, + copy_tensor_to_devices, + gather, + gather_object, + pad_across_processes, + reduce, +) + + +def create_tensor(state): + return (torch.arange(state.num_processes) + 1.0 + (state.num_processes * state.process_index)).to(state.device) + + +def test_gather(state): + tensor = create_tensor(state) + gathered_tensor = gather(tensor) + assert gathered_tensor.tolist() == list(range(1, state.num_processes**2 + 1)) + + +def test_gather_object(state): + # Gather objects in TorchXLA is not supported. + if state.distributed_type == DistributedType.XLA: + return + obj = [state.process_index] + gathered_obj = gather_object(obj) + assert len(gathered_obj) == state.num_processes, f"{gathered_obj}, {len(gathered_obj)} != {state.num_processes}" + assert gathered_obj == list(range(state.num_processes)), f"{gathered_obj} != {list(range(state.num_processes))}" + + +def test_gather_non_contiguous(state): + # Skip this test because the 'is_contiguous' function of XLA tensor always returns True. + if state.distributed_type == DistributedType.XLA: + return + + # Create a non-contiguous tensor (enforce non-contiguity after device memory allocation) + tensor = torch.arange(12, device=state.device).view(4, 3).t() + assert not tensor.is_contiguous() + # Shouldn't error out + _ = gather(tensor) + + +def test_broadcast(state): + tensor = create_tensor(state) + broadcasted_tensor = broadcast(tensor) + assert broadcasted_tensor.shape == torch.Size([state.num_processes]) + assert broadcasted_tensor.tolist() == list(range(1, state.num_processes + 1)) + + +def test_pad_across_processes(state): + # We need to pad the tensor with one more element if we are the main process + # to ensure that we can pad + if state.is_main_process: + tensor = torch.arange(state.num_processes + 1).to(state.device) + else: + tensor = torch.arange(state.num_processes).to(state.device) + padded_tensor = pad_across_processes(tensor) + assert padded_tensor.shape == torch.Size([state.num_processes + 1]) + if not state.is_main_process: + assert padded_tensor.tolist() == list(range(0, state.num_processes)) + [0] + + +def test_reduce_sum(state): + # For now runs on only two processes + if state.num_processes != 2: + return + tensor = create_tensor(state) + reduced_tensor = reduce(tensor, "sum") + truth_tensor = torch.tensor([4.0, 6]).to(state.device) + assert torch.allclose(reduced_tensor, truth_tensor), f"{reduced_tensor} != {truth_tensor}" + + +def test_reduce_mean(state): + # For now runs on only two processes + if state.num_processes != 2: + return + tensor = create_tensor(state) + reduced_tensor = reduce(tensor, "mean") + truth_tensor = torch.tensor([2.0, 3]).to(state.device) + assert torch.allclose(reduced_tensor, truth_tensor), f"{reduced_tensor} != {truth_tensor}" + + +def test_op_checker(state): + # Must be in a distributed state, and gathering is currently not supported in TorchXLA. + if state.distributed_type in [DistributedType.NO, DistributedType.XLA]: + return + state.debug = True + # `pad_across_processes` + if state.process_index == 0: + data = {"tensor": torch.tensor([[0.0, 1, 2, 3, 4]]).to(state.device)} + else: + data = {"tensor": torch.tensor([[[0.0, 1, 2, 3, 4, 5]]]).to(state.device)} + + with assert_exception(DistributedOperationException): + pad_across_processes(data, dim=0) + + # `reduce` + if state.process_index == 0: + data = {"tensor": torch.tensor([[0.0, 1, 2, 3, 4]]).to(state.device)} + else: + data = {"tensor": torch.tensor([[[0.0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]]).to(state.device)} + + with assert_exception(DistributedOperationException): + reduce(data) + + # `broadcast` + if state.process_index == 0: + data = {"tensor": torch.tensor([[0.0, 1, 2, 3, 4]]).to(state.device)} + else: + data = {"tensor": torch.tensor([[[0.0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]]).to(state.device)} + + with assert_exception(DistributedOperationException): + broadcast(data) + + state.debug = False + + +def test_copy_tensor_to_devices(state): + if state.distributed_type not in [DistributedType.MULTI_GPU, DistributedType.XLA]: + return + if state.is_main_process: + tensor = torch.tensor([1, 2, 3], dtype=torch.int).to(state.device) + else: + tensor = None + tensor = copy_tensor_to_devices(tensor) + assert torch.allclose(tensor, torch.tensor([1, 2, 3], dtype=torch.int, device=state.device)) + + +def _mp_fn(index): + # For xla_spawn (TPUs) + main() + + +def main(): + state = PartialState() + state.print(f"State: {state}") + state.print("testing gather") + test_gather(state) + state.print("testing gather_object") + test_gather_object(state) + state.print("testing gather non-contiguous") + test_gather_non_contiguous(state) + state.print("testing broadcast") + test_broadcast(state) + state.print("testing pad_across_processes") + test_pad_across_processes(state) + state.print("testing reduce_sum") + test_reduce_sum(state) + state.print("testing reduce_mean") + test_reduce_mean(state) + state.print("testing op_checker") + test_op_checker(state) + state.print("testing sending tensors across devices") + test_copy_tensor_to_devices(state) + state.destroy_process_group() + + +if __name__ == "__main__": + main() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/__diff.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/__diff.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d7320f20e5c439c89198539f7859b25da3080519 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/__diff.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/__info__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/__info__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c8b026573ed1a3a6792b12224cc7d36ffa449433 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/__info__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3d27a3089fae6d8ea52348dea3d1f4c36a57e644 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/_objects.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/_objects.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..280c2e78fff10c18a1d7eb4c26d094767ee1b1f7 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/_objects.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/_shims.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/_shims.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..344feb48e5083a0a89e7da0e422ea71da725c5b3 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/_shims.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/detect.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/detect.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5e73fc05a47f7f83678cff8d9fb95077b17b58da Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/detect.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/logger.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/logger.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bd40337c18bf78a7b128c1478e2a5d732088ba09 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/logger.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/objtypes.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/objtypes.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4ad087bc94aaaf391bcd9acc30c48167a1a51c12 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/objtypes.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/pointers.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/pointers.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cd451b212365b53b2db254928fff71513d2a10bf Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/pointers.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/session.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/session.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..47782b342d4cef6eb68a2b065bfbd704e3bc8a2f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/session.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/settings.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/settings.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..336c12e5c7913a4f627f1919ca7886684365d87e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/settings.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/source.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/source.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..70c8a5e4f2fbba1e8ace631f3b7336f2fc2e9872 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/source.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/temp.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/temp.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5e8d5be5a03d9e3be8b4684e111021864c1e0d41 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/__pycache__/temp.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..3fbec382c8b8ad0967d0056ae85ed281bb6a4541 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__init__.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2018-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE +""" +to run this test suite, first build and install `dill`. + + $ python -m pip install ../.. + + +then run the tests with: + + $ python -m dill.tests + + +or, if `nose` is installed: + + $ nosetests + +""" diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__main__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__main__.py new file mode 100644 index 0000000000000000000000000000000000000000..b84d24cb8d27ae0c7e34b7ff626e868a6817e782 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__main__.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2018-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE + +import glob +import os +import sys +import subprocess as sp +python = sys.executable +try: + import pox + python = pox.which_python(version=True) or python +except ImportError: + pass +shell = sys.platform[:3] == 'win' + +suite = os.path.dirname(__file__) or os.path.curdir +tests = glob.glob(suite + os.path.sep + 'test_*.py') + + +if __name__ == '__main__': + + failed = 0 + for test in tests: + p = sp.Popen([python, test], shell=shell).wait() + if p: + print('F', end='', flush=True) + failed = 1 + else: + print('.', end='', flush=True) + print('') + exit(failed) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_abc.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_abc.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cfaa69fd0f24f3cda0c936e7e5aa11988553bf68 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_abc.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_detect.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_detect.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7916f9c51ea191f0ad1a2457201e6ac5c58f145f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_detect.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_dictviews.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_dictviews.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f1de0aa93a0eb09f09cb46c5ed10f0d6698171df Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_dictviews.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_fglobals.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_fglobals.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3bed0742bc29afed3d043cfb0420d0b69c104cb2 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_fglobals.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_logger.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_logger.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1f62c2719dcfb146ddf8a4c6fe962e5c71c07f5e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_logger.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_mixins.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_mixins.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9b83a178a833541f8ca399396bc0d4d6c3a129f3 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_mixins.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_moduledict.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_moduledict.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4452248d3324a395af08accf7be8a546b4a45a54 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_moduledict.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_session.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_session.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2d299b2441096db78ad8ff2d38caa2a5e559ddef Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_session.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_source.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_source.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..006730af3cc70fb7cf433a72d23e997eac957f8e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/__pycache__/test_source.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_abc.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_abc.py new file mode 100644 index 0000000000000000000000000000000000000000..b16d30920a079894d26d72b3418c118377d11d73 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_abc.py @@ -0,0 +1,169 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2023-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE +""" +test dill's ability to pickle abstract base class objects +""" +import dill +import abc +from abc import ABC +import warnings + +from types import FunctionType + +dill.settings['recurse'] = True + +class OneTwoThree(ABC): + @abc.abstractmethod + def foo(self): + """A method""" + pass + + @property + @abc.abstractmethod + def bar(self): + """Property getter""" + pass + + @bar.setter + @abc.abstractmethod + def bar(self, value): + """Property setter""" + pass + + @classmethod + @abc.abstractmethod + def cfoo(cls): + """Class method""" + pass + + @staticmethod + @abc.abstractmethod + def sfoo(): + """Static method""" + pass + +class EasyAsAbc(OneTwoThree): + def __init__(self): + self._bar = None + + def foo(self): + return "Instance Method FOO" + + @property + def bar(self): + return self._bar + + @bar.setter + def bar(self, value): + self._bar = value + + @classmethod + def cfoo(cls): + return "Class Method CFOO" + + @staticmethod + def sfoo(): + return "Static Method SFOO" + +def test_abc_non_local(): + assert dill.copy(OneTwoThree) is not OneTwoThree + assert dill.copy(EasyAsAbc) is not EasyAsAbc + + with warnings.catch_warnings(): + warnings.simplefilter("ignore", dill.PicklingWarning) + assert dill.copy(OneTwoThree, byref=True) is OneTwoThree + assert dill.copy(EasyAsAbc, byref=True) is EasyAsAbc + + instance = EasyAsAbc() + # Set a property that StockPickle can't preserve + instance.bar = lambda x: x**2 + depickled = dill.copy(instance) + assert type(depickled) is type(instance) #NOTE: issue #612, test_abc_local + #NOTE: dill.copy of local (or non-local) classes should (not) be the same? + assert type(depickled.bar) is FunctionType + assert depickled.bar(3) == 9 + assert depickled.sfoo() == "Static Method SFOO" + assert depickled.cfoo() == "Class Method CFOO" + assert depickled.foo() == "Instance Method FOO" + +def test_abc_local(): + """ + Test using locally scoped ABC class + """ + class LocalABC(ABC): + @abc.abstractmethod + def foo(self): + pass + + def baz(self): + return repr(self) + + labc = dill.copy(LocalABC) + assert labc is not LocalABC + assert type(labc) is type(LocalABC) + #NOTE: dill.copy of local (or non-local) classes should (not) be the same? + # + # .LocalABC'> + + class Real(labc): + def foo(self): + return "True!" + + def baz(self): + return "My " + super(Real, self).baz() + + real = Real() + assert real.foo() == "True!" + + try: + labc() + except TypeError as e: + # Expected error + pass + else: + print('Failed to raise type error') + assert False + + labc2, pik = dill.copy((labc, Real())) + assert 'Real' == type(pik).__name__ + assert '.Real' in type(pik).__qualname__ + assert type(pik) is not Real + assert labc2 is not LocalABC + assert labc2 is not labc + assert isinstance(pik, labc2) + assert not isinstance(pik, labc) + assert not isinstance(pik, LocalABC) + assert pik.baz() == "My " + repr(pik) + +def test_meta_local_no_cache(): + """ + Test calling metaclass and cache registration + """ + LocalMetaABC = abc.ABCMeta('LocalMetaABC', (), {}) + + class ClassyClass: + pass + + class KlassyClass: + pass + + LocalMetaABC.register(ClassyClass) + + assert not issubclass(KlassyClass, LocalMetaABC) + assert issubclass(ClassyClass, LocalMetaABC) + + res = dill.dumps((LocalMetaABC, ClassyClass, KlassyClass)) + + lmabc, cc, kc = dill.loads(res) + assert type(lmabc) == type(LocalMetaABC) + assert not issubclass(kc, lmabc) + assert issubclass(cc, lmabc) + +if __name__ == '__main__': + test_abc_non_local() + test_abc_local() + test_meta_local_no_cache() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_check.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_check.py new file mode 100644 index 0000000000000000000000000000000000000000..c0ab757a34b5515a09edb2bcb192ab922ec88e60 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_check.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2008-2016 California Institute of Technology. +# Copyright (c) 2016-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE + +from dill import check +import sys + +from dill.temp import capture + + +#FIXME: this doesn't catch output... it's from the internal call +def raise_check(func, **kwds): + try: + with capture('stdout') as out: + check(func, **kwds) + except Exception: + e = sys.exc_info()[1] + raise AssertionError(str(e)) + else: + assert 'Traceback' not in out.getvalue() + finally: + out.close() + + +f = lambda x:x**2 + + +def test_simple(verbose=None): + raise_check(f, verbose=verbose) + + +def test_recurse(verbose=None): + raise_check(f, recurse=True, verbose=verbose) + + +def test_byref(verbose=None): + raise_check(f, byref=True, verbose=verbose) + + +def test_protocol(verbose=None): + raise_check(f, protocol=True, verbose=verbose) + + +def test_python(verbose=None): + raise_check(f, python=None, verbose=verbose) + + +#TODO: test incompatible versions +#TODO: test dump failure +#TODO: test load failure + + +if __name__ == '__main__': + test_simple() + test_recurse() + test_byref() + test_protocol() + test_python() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_classdef.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_classdef.py new file mode 100644 index 0000000000000000000000000000000000000000..b09df50ca9632a972aa784676771a239d3a7fad4 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_classdef.py @@ -0,0 +1,340 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2008-2016 California Institute of Technology. +# Copyright (c) 2016-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE + +import dill +from enum import EnumMeta +import sys +dill.settings['recurse'] = True + +# test classdefs +class _class: + def _method(self): + pass + def ok(self): + return True + +class _class2: + def __call__(self): + pass + def ok(self): + return True + +class _newclass(object): + def _method(self): + pass + def ok(self): + return True + +class _newclass2(object): + def __call__(self): + pass + def ok(self): + return True + +class _meta(type): + pass + +def __call__(self): + pass +def ok(self): + return True + +_mclass = _meta("_mclass", (object,), {"__call__": __call__, "ok": ok}) + +del __call__ +del ok + +o = _class() +oc = _class2() +n = _newclass() +nc = _newclass2() +m = _mclass() + +if sys.hexversion < 0x03090000: + import typing + class customIntList(typing.List[int]): + pass +else: + class customIntList(list[int]): + pass + +# test pickles for class instances +def test_class_instances(): + assert dill.pickles(o) + assert dill.pickles(oc) + assert dill.pickles(n) + assert dill.pickles(nc) + assert dill.pickles(m) + +def test_class_objects(): + clslist = [_class,_class2,_newclass,_newclass2,_mclass] + objlist = [o,oc,n,nc,m] + _clslist = [dill.dumps(obj) for obj in clslist] + _objlist = [dill.dumps(obj) for obj in objlist] + + for obj in clslist: + globals().pop(obj.__name__) + del clslist + for obj in ['o','oc','n','nc']: + globals().pop(obj) + del objlist + del obj + + for obj,cls in zip(_objlist,_clslist): + _cls = dill.loads(cls) + _obj = dill.loads(obj) + assert _obj.ok() + assert _cls.ok(_cls()) + if _cls.__name__ == "_mclass": + assert type(_cls).__name__ == "_meta" + +# test NoneType +def test_specialtypes(): + assert dill.pickles(type(None)) + assert dill.pickles(type(NotImplemented)) + assert dill.pickles(type(Ellipsis)) + assert dill.pickles(type(EnumMeta)) + +from collections import namedtuple +Z = namedtuple("Z", ['a','b']) +Zi = Z(0,1) +X = namedtuple("Y", ['a','b']) +X.__name__ = "X" +X.__qualname__ = "X" #XXX: name must 'match' or fails to pickle +Xi = X(0,1) +Bad = namedtuple("FakeName", ['a','b']) +Badi = Bad(0,1) +Defaults = namedtuple('Defaults', ['x', 'y'], defaults=[1]) +Defaultsi = Defaults(2) + +# test namedtuple +def test_namedtuple(): + assert Z is dill.loads(dill.dumps(Z)) + assert Zi == dill.loads(dill.dumps(Zi)) + assert X is dill.loads(dill.dumps(X)) + assert Xi == dill.loads(dill.dumps(Xi)) + assert Defaults is dill.loads(dill.dumps(Defaults)) + assert Defaultsi == dill.loads(dill.dumps(Defaultsi)) + assert Bad is not dill.loads(dill.dumps(Bad)) + assert Bad._fields == dill.loads(dill.dumps(Bad))._fields + assert tuple(Badi) == tuple(dill.loads(dill.dumps(Badi))) + + class A: + class B(namedtuple("C", ["one", "two"])): + '''docstring''' + B.__module__ = 'testing' + + a = A() + assert dill.copy(a) + + assert dill.copy(A.B).__name__ == 'B' + assert dill.copy(A.B).__qualname__.endswith('..A.B') + assert dill.copy(A.B).__doc__ == 'docstring' + assert dill.copy(A.B).__module__ == 'testing' + + from typing import NamedTuple + + def A(): + class B(NamedTuple): + x: int + return B + + assert type(dill.copy(A()(8))).__qualname__ == type(A()(8)).__qualname__ + +def test_dtype(): + try: + import numpy as np + + dti = np.dtype('int') + assert np.dtype == dill.copy(np.dtype) + assert dti == dill.copy(dti) + except ImportError: pass + + +def test_array_nested(): + try: + import numpy as np + + x = np.array([1]) + y = (x,) + assert y == dill.copy(y) + + except ImportError: pass + + +def test_array_subclass(): + try: + import numpy as np + + class TestArray(np.ndarray): + def __new__(cls, input_array, color): + obj = np.asarray(input_array).view(cls) + obj.color = color + return obj + def __array_finalize__(self, obj): + if obj is None: + return + if isinstance(obj, type(self)): + self.color = obj.color + def __getnewargs__(self): + return np.asarray(self), self.color + + a1 = TestArray(np.zeros(100), color='green') + if not dill._dill.IS_PYPY: + assert dill.pickles(a1) + assert a1.__dict__ == dill.copy(a1).__dict__ + + a2 = a1[0:9] + if not dill._dill.IS_PYPY: + assert dill.pickles(a2) + assert a2.__dict__ == dill.copy(a2).__dict__ + + class TestArray2(np.ndarray): + color = 'blue' + + a3 = TestArray2([1,2,3,4,5]) + a3.color = 'green' + if not dill._dill.IS_PYPY: + assert dill.pickles(a3) + assert a3.__dict__ == dill.copy(a3).__dict__ + + except ImportError: pass + + +def test_method_decorator(): + class A(object): + @classmethod + def test(cls): + pass + + a = A() + + res = dill.dumps(a) + new_obj = dill.loads(res) + new_obj.__class__.test() + +# test slots +class Y(object): + __slots__ = ('y', '__weakref__') + def __init__(self, y): + self.y = y + +value = 123 +y = Y(value) + +class Y2(object): + __slots__ = 'y' + def __init__(self, y): + self.y = y + +def test_slots(): + assert dill.pickles(Y) + assert dill.pickles(y) + assert dill.pickles(Y.y) + assert dill.copy(y).y == value + assert dill.copy(Y2(value)).y == value + +def test_origbases(): + assert dill.copy(customIntList).__orig_bases__ == customIntList.__orig_bases__ + +def test_attr(): + import attr + @attr.s + class A: + a = attr.ib() + + v = A(1) + assert dill.copy(v) == v + +def test_metaclass(): + class metaclass_with_new(type): + def __new__(mcls, name, bases, ns, **kwds): + cls = super().__new__(mcls, name, bases, ns, **kwds) + assert mcls is not None + assert cls.method(mcls) + return cls + def method(cls, mcls): + return isinstance(cls, mcls) + + l = locals() + exec("""class subclass_with_new(metaclass=metaclass_with_new): + def __new__(cls): + self = super().__new__(cls) + return self""", None, l) + subclass_with_new = l['subclass_with_new'] + + assert dill.copy(subclass_with_new()) + +def test_enummeta(): + from http import HTTPStatus + import enum + assert dill.copy(HTTPStatus.OK) is HTTPStatus.OK + assert dill.copy(enum.EnumMeta) is enum.EnumMeta + +def test_inherit(): #NOTE: see issue #612 + class Foo: + w = 0 + x = 1 + y = 1.1 + a = () + b = (1,) + n = None + + class Bar(Foo): + w = 2 + x = 1 + y = 1.1 + z = 0.2 + a = () + b = (1,) + c = (2,) + n = None + + Baz = dill.copy(Bar) + + import platform + is_pypy = platform.python_implementation() == 'PyPy' + assert Bar.__dict__ == Baz.__dict__ + # ints + assert 'w' in Bar.__dict__ and 'w' in Baz.__dict__ + assert Bar.__dict__['w'] is Baz.__dict__['w'] + assert 'x' in Bar.__dict__ and 'x' in Baz.__dict__ + assert Bar.__dict__['x'] is Baz.__dict__['x'] + # floats + assert 'y' in Bar.__dict__ and 'y' in Baz.__dict__ + same = Bar.__dict__['y'] is Baz.__dict__['y'] + assert same if is_pypy else not same + assert 'z' in Bar.__dict__ and 'z' in Baz.__dict__ + same = Bar.__dict__['z'] is Baz.__dict__['z'] + assert same if is_pypy else not same + # tuples + assert 'a' in Bar.__dict__ and 'a' in Baz.__dict__ + assert Bar.__dict__['a'] is Baz.__dict__['a'] + assert 'b' in Bar.__dict__ and 'b' in Baz.__dict__ + assert Bar.__dict__['b'] is not Baz.__dict__['b'] + assert 'c' in Bar.__dict__ and 'c' in Baz.__dict__ + assert Bar.__dict__['c'] is not Baz.__dict__['c'] + # None + assert 'n' in Bar.__dict__ and 'n' in Baz.__dict__ + assert Bar.__dict__['n'] is Baz.__dict__['n'] + + +if __name__ == '__main__': + test_class_instances() + test_class_objects() + test_specialtypes() + test_namedtuple() + test_dtype() + test_array_nested() + test_array_subclass() + test_method_decorator() + test_slots() + test_origbases() + test_metaclass() + test_enummeta() + test_inherit() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_dataclasses.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_dataclasses.py new file mode 100644 index 0000000000000000000000000000000000000000..10dc51c50a129b7a28b4959d4a01c68e2c76a346 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_dataclasses.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Author: Anirudh Vegesana (avegesan@cs.stanford.edu) +# Copyright (c) 2022-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE +""" +test pickling a dataclass +""" + +import dill +import dataclasses + +def test_dataclasses(): + # Issue #500 + @dataclasses.dataclass + class A: + x: int + y: str + + @dataclasses.dataclass + class B: + a: A + + a = A(1, "test") + before = B(a) + save = dill.dumps(before) + after = dill.loads(save) + assert before != after # classes don't match + assert before == B(A(**dataclasses.asdict(after.a))) + assert dataclasses.asdict(before) == dataclasses.asdict(after) + +if __name__ == '__main__': + test_dataclasses() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_detect.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_detect.py new file mode 100644 index 0000000000000000000000000000000000000000..342cc1acf43f68b1acffc90c070a4faef124b02d --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_detect.py @@ -0,0 +1,159 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2008-2016 California Institute of Technology. +# Copyright (c) 2016-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE + +from dill.detect import baditems, badobjects, badtypes, errors, parent, at, globalvars +from dill import settings +from dill._dill import IS_PYPY +from pickle import PicklingError + +import inspect +import sys +import os + +def test_bad_things(): + f = inspect.currentframe() + assert baditems(f) == [f] + #assert baditems(globals()) == [f] #XXX + assert badobjects(f) is f + assert badtypes(f) == type(f) + assert type(errors(f)) is TypeError + d = badtypes(f, 1) + assert isinstance(d, dict) + assert list(badobjects(f, 1).keys()) == list(d.keys()) + assert list(errors(f, 1).keys()) == list(d.keys()) + s = set([(err.__class__.__name__,err.args[0]) for err in list(errors(f, 1).values())]) + a = dict(s) + if not os.environ.get('COVERAGE'): #XXX: travis-ci + assert len(s) is len(a) # TypeError (and possibly PicklingError) + n = 2 + assert len(a) is n if 'PicklingError' in a.keys() else n-1 + +def test_parent(): + x = [4,5,6,7] + listiter = iter(x) + obj = parent(listiter, list) + assert obj is x + + if IS_PYPY: assert parent(obj, int) is None + else: assert parent(obj, int) is x[-1] # python oddly? finds last int + assert at(id(at)) is at + +a, b, c = 1, 2, 3 + +def squared(x): + return a+x**2 + +def foo(x): + def bar(y): + return squared(x)+y + return bar + +class _class: + def _method(self): + pass + def ok(self): + return True + +def test_globals(): + def f(): + a + def g(): + b + def h(): + c + assert globalvars(f) == dict(a=1, b=2, c=3) + + res = globalvars(foo, recurse=True) + assert set(res) == set(['squared', 'a']) + res = globalvars(foo, recurse=False) + assert res == {} + zap = foo(2) + res = globalvars(zap, recurse=True) + assert set(res) == set(['squared', 'a']) + res = globalvars(zap, recurse=False) + assert set(res) == set(['squared']) + del zap + res = globalvars(squared) + assert set(res) == set(['a']) + # FIXME: should find referenced __builtins__ + #res = globalvars(_class, recurse=True) + #assert set(res) == set(['True']) + #res = globalvars(_class, recurse=False) + #assert res == {} + #res = globalvars(_class.ok, recurse=True) + #assert set(res) == set(['True']) + #res = globalvars(_class.ok, recurse=False) + #assert set(res) == set(['True']) + + +#98 dill ignores __getstate__ in interactive lambdas +bar = [0] + +class Foo(object): + def __init__(self): + pass + def __getstate__(self): + bar[0] = bar[0]+1 + return {} + def __setstate__(self, data): + pass + +f = Foo() + +def test_getstate(): + from dill import dumps, loads + dumps(f) + b = bar[0] + dumps(lambda: f, recurse=False) # doesn't call __getstate__ + assert bar[0] == b + dumps(lambda: f, recurse=True) # calls __getstate__ + assert bar[0] == b + 1 + +#97 serialize lambdas in test files +def test_deleted(): + global sin + from dill import dumps, loads + from math import sin, pi + + def sinc(x): + return sin(x)/x + + settings['recurse'] = True + _sinc = dumps(sinc) + sin = globals().pop('sin') + sin = 1 + del sin + sinc_ = loads(_sinc) # no NameError... pickling preserves 'sin' + res = sinc_(1) + from math import sin + assert sinc(1) == res + + +def test_lambdify(): + try: + from sympy import symbols, lambdify + except ImportError: + return + settings['recurse'] = True + x = symbols("x") + y = x**2 + f = lambdify([x], y) + z = min + d = globals() + globalvars(f, recurse=True, builtin=True) + assert z is min + assert d is globals() + + +if __name__ == '__main__': + test_bad_things() + test_parent() + test_globals() + test_getstate() + test_deleted() + test_lambdify() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_dictviews.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_dictviews.py new file mode 100644 index 0000000000000000000000000000000000000000..4e94ce32c5e50442ff991dd85e061d24f7e50223 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_dictviews.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Author: Anirudh Vegesana (avegesan@cs.stanford.edu) +# Copyright (c) 2021-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE + +import dill +from dill._dill import OLD310, MAPPING_PROXY_TRICK, DictProxyType + +def test_dictproxy(): + assert dill.copy(DictProxyType({'a': 2})) + +def test_dictviews(): + x = {'a': 1} + assert dill.copy(x.keys()) + assert dill.copy(x.values()) + assert dill.copy(x.items()) + +def test_dictproxy_trick(): + if not OLD310 and MAPPING_PROXY_TRICK: + x = {'a': 1} + all_views = (x.values(), x.items(), x.keys(), x) + seperate_views = dill.copy(all_views) + new_x = seperate_views[-1] + new_x['b'] = 2 + new_x['c'] = 1 + assert len(new_x) == 3 and len(x) == 1 + assert len(seperate_views[0]) == 3 and len(all_views[0]) == 1 + assert len(seperate_views[1]) == 3 and len(all_views[1]) == 1 + assert len(seperate_views[2]) == 3 and len(all_views[2]) == 1 + assert dict(all_views[1]) == x + assert dict(seperate_views[1]) == new_x + +if __name__ == '__main__': + test_dictproxy() + test_dictviews() + test_dictproxy_trick() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_diff.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_diff.py new file mode 100644 index 0000000000000000000000000000000000000000..a175305344aeaf8a61c52ab2d16e1084671a0887 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_diff.py @@ -0,0 +1,107 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2008-2016 California Institute of Technology. +# Copyright (c) 2016-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE + +from dill import __diff as diff + +import sys +IS_PYPY = not hasattr(sys, 'getrefcount') + +class A: + pass + +def test_diff(): + a = A() + b = A() + c = A() + a.a = b + b.a = c + diff.memorise(a) + assert not diff.has_changed(a) + c.a = 1 + assert diff.has_changed(a) + diff.memorise(c, force=True) + assert not diff.has_changed(a) + c.a = 2 + assert diff.has_changed(a) + changed = diff.whats_changed(a) + assert list(changed[0].keys()) == ["a"] + assert not changed[1] + + a2 = [] + b2 = [a2] + c2 = [b2] + diff.memorise(c2) + assert not diff.has_changed(c2) + a2.append(1) + assert diff.has_changed(c2) + changed = diff.whats_changed(c2) + assert changed[0] == {} + assert changed[1] + + a3 = {} + b3 = {1: a3} + c3 = {1: b3} + diff.memorise(c3) + assert not diff.has_changed(c3) + a3[1] = 1 + assert diff.has_changed(c3) + changed = diff.whats_changed(c3) + assert changed[0] == {} + assert changed[1] + + if not IS_PYPY: + import abc + # make sure the "_abc_invaldation_counter" doesn't make test fail + diff.memorise(abc.ABCMeta, force=True) + assert not diff.has_changed(abc) + abc.ABCMeta.zzz = 1 + assert diff.has_changed(abc) + changed = diff.whats_changed(abc) + assert list(changed[0].keys()) == ["ABCMeta"] + assert not changed[1] + + ''' + import Queue + diff.memorise(Queue, force=True) + assert not diff.has_changed(Queue) + Queue.Queue.zzz = 1 + assert diff.has_changed(Queue) + changed = diff.whats_changed(Queue) + assert list(changed[0].keys()) == ["Queue"] + assert not changed[1] + + import math + diff.memorise(math, force=True) + assert not diff.has_changed(math) + math.zzz = 1 + assert diff.has_changed(math) + changed = diff.whats_changed(math) + assert list(changed[0].keys()) == ["zzz"] + assert not changed[1] + ''' + + a = A() + b = A() + c = A() + a.a = b + b.a = c + diff.memorise(a) + assert not diff.has_changed(a) + c.a = 1 + assert diff.has_changed(a) + diff.memorise(c, force=True) + assert not diff.has_changed(a) + del c.a + assert diff.has_changed(a) + changed = diff.whats_changed(a) + assert list(changed[0].keys()) == ["a"] + assert not changed[1] + + +if __name__ == '__main__': + test_diff() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_extendpickle.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_extendpickle.py new file mode 100644 index 0000000000000000000000000000000000000000..3b274d4bf2714c25ecddbbe13904b72759211d66 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_extendpickle.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2008-2016 California Institute of Technology. +# Copyright (c) 2016-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE + +import dill as pickle +from io import BytesIO as StringIO + + +def my_fn(x): + return x * 17 + + +def test_extend(): + obj = lambda : my_fn(34) + assert obj() == 578 + + obj_io = StringIO() + pickler = pickle.Pickler(obj_io) + pickler.dump(obj) + + obj_str = obj_io.getvalue() + + obj2_io = StringIO(obj_str) + unpickler = pickle.Unpickler(obj2_io) + obj2 = unpickler.load() + + assert obj2() == 578 + + +def test_isdill(): + obj_io = StringIO() + pickler = pickle.Pickler(obj_io) + assert pickle._dill.is_dill(pickler) is True + + pickler = pickle._dill.StockPickler(obj_io) + assert pickle._dill.is_dill(pickler) is False + + try: + import multiprocess as mp + pickler = mp.reduction.ForkingPickler(obj_io) + assert pickle._dill.is_dill(pickler, child=True) is True + assert pickle._dill.is_dill(pickler, child=False) is False + except Exception: + pass + + +if __name__ == '__main__': + test_extend() + test_isdill() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_fglobals.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_fglobals.py new file mode 100644 index 0000000000000000000000000000000000000000..80b356545804d5e78b78957a6c8f9646a07f68ac --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_fglobals.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2021-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE + +import dill +dill.settings['recurse'] = True + +def get_fun_with_strftime(): + def fun_with_strftime(): + import datetime + return datetime.datetime.strptime("04-01-1943", "%d-%m-%Y").strftime( + "%Y-%m-%d %H:%M:%S" + ) + return fun_with_strftime + + +def get_fun_with_strftime2(): + import datetime + return datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') + + +def test_doc_dill_issue_219(): + back_fn = dill.loads(dill.dumps(get_fun_with_strftime())) + assert back_fn() == "1943-01-04 00:00:00" + dupl = dill.loads(dill.dumps(get_fun_with_strftime2)) + assert dupl() == get_fun_with_strftime2() + + +def get_fun_with_internal_import(): + def fun_with_import(): + import re + return re.compile("$") + return fun_with_import + + +def test_method_with_internal_import_should_work(): + import re + back_fn = dill.loads(dill.dumps(get_fun_with_internal_import())) + import inspect + if hasattr(inspect, 'getclosurevars'): + vars = inspect.getclosurevars(back_fn) + assert vars.globals == {} + assert vars.nonlocals == {} + assert back_fn() == re.compile("$") + assert "__builtins__" in back_fn.__globals__ + + +if __name__ == "__main__": + import sys + if (sys.version_info[:3] != (3,10,0) or sys.version_info[3] != 'alpha'): + test_doc_dill_issue_219() + test_method_with_internal_import_should_work() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_file.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_file.py new file mode 100644 index 0000000000000000000000000000000000000000..ad949f36704ae41a03c47245af3b84a85b803f59 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_file.py @@ -0,0 +1,500 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2008-2016 California Institute of Technology. +# Copyright (c) 2016-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE + +import os +import sys +import string +import random + +import dill + + +dill.settings['recurse'] = True + +fname = "_test_file.txt" +rand_chars = list(string.ascii_letters) + ["\n"] * 40 # bias newline + +buffer_error = ValueError("invalid buffer size") +dne_error = FileNotFoundError("[Errno 2] No such file or directory: '%s'" % fname) + + +def write_randomness(number=200): + f = open(fname, "w") + for i in range(number): + f.write(random.choice(rand_chars)) + f.close() + f = open(fname, "r") + contents = f.read() + f.close() + return contents + + +def trunc_file(): + open(fname, "w").close() + + +def throws(op, args, exc): + try: + op(*args) + except type(exc): + return sys.exc_info()[1].args == exc.args + else: + return False + + +def teardown_module(): + if os.path.exists(fname): + os.remove(fname) + + +def bench(strictio, fmode, skippypy): + import platform + if skippypy and platform.python_implementation() == 'PyPy': + # Skip for PyPy... + return + + # file exists, with same contents + # read + + write_randomness() + + f = open(fname, "r") + _f = dill.loads(dill.dumps(f, fmode=fmode))#, strictio=strictio)) + assert _f.mode == f.mode + assert _f.tell() == f.tell() + assert _f.read() == f.read() + f.close() + _f.close() + + # write + + f = open(fname, "w") + f.write("hello") + f_dumped = dill.dumps(f, fmode=fmode)#, strictio=strictio) + f1mode = f.mode + ftell = f.tell() + f.close() + f2 = dill.loads(f_dumped) #FIXME: fails due to pypy/issues/1233 + # TypeError: expected py_object instance instead of str + f2mode = f2.mode + f2tell = f2.tell() + f2name = f2.name + f2.write(" world!") + f2.close() + + if fmode == dill.HANDLE_FMODE: + assert open(fname).read() == " world!" + assert f2mode == f1mode + assert f2tell == 0 + elif fmode == dill.CONTENTS_FMODE: + assert open(fname).read() == "hello world!" + assert f2mode == f1mode + assert f2tell == ftell + assert f2name == fname + elif fmode == dill.FILE_FMODE: + assert open(fname).read() == "hello world!" + assert f2mode == f1mode + assert f2tell == ftell + else: + raise RuntimeError("Unknown file mode '%s'" % fmode) + + # append + + trunc_file() + + f = open(fname, "a") + f.write("hello") + f_dumped = dill.dumps(f, fmode=fmode)#, strictio=strictio) + f1mode = f.mode + ftell = f.tell() + f.close() + f2 = dill.loads(f_dumped) + f2mode = f2.mode + f2tell = f2.tell() + f2.write(" world!") + f2.close() + + assert f2mode == f1mode + if fmode == dill.CONTENTS_FMODE: + assert open(fname).read() == "hello world!" + assert f2tell == ftell + elif fmode == dill.HANDLE_FMODE: + assert open(fname).read() == "hello world!" + assert f2tell == ftell + elif fmode == dill.FILE_FMODE: + assert open(fname).read() == "hello world!" + assert f2tell == ftell + else: + raise RuntimeError("Unknown file mode '%s'" % fmode) + + # file exists, with different contents (smaller size) + # read + + write_randomness() + + f = open(fname, "r") + fstr = f.read() + f_dumped = dill.dumps(f, fmode=fmode)#, strictio=strictio) + f1mode = f.mode + ftell = f.tell() + f.close() + _flen = 150 + _fstr = write_randomness(number=_flen) + + if strictio: # throw error if ftell > EOF + assert throws(dill.loads, (f_dumped,), buffer_error) + else: + f2 = dill.loads(f_dumped) + assert f2.mode == f1mode + if fmode == dill.CONTENTS_FMODE: + assert f2.tell() == _flen + assert f2.read() == "" + f2.seek(0) + assert f2.read() == _fstr + assert f2.tell() == _flen # 150 + elif fmode == dill.HANDLE_FMODE: + assert f2.tell() == 0 + assert f2.read() == _fstr + assert f2.tell() == _flen # 150 + elif fmode == dill.FILE_FMODE: + assert f2.tell() == ftell # 200 + assert f2.read() == "" + f2.seek(0) + assert f2.read() == fstr + assert f2.tell() == ftell # 200 + else: + raise RuntimeError("Unknown file mode '%s'" % fmode) + f2.close() + + # write + + write_randomness() + + f = open(fname, "w") + f.write("hello") + f_dumped = dill.dumps(f, fmode=fmode)#, strictio=strictio) + f1mode = f.mode + ftell = f.tell() + f.close() + fstr = open(fname).read() + + f = open(fname, "w") + f.write("h") + _ftell = f.tell() + f.close() + + if strictio: # throw error if ftell > EOF + assert throws(dill.loads, (f_dumped,), buffer_error) + else: + f2 = dill.loads(f_dumped) + f2mode = f2.mode + f2tell = f2.tell() + f2.write(" world!") + f2.close() + if fmode == dill.CONTENTS_FMODE: + assert open(fname).read() == "h world!" + assert f2mode == f1mode + assert f2tell == _ftell + elif fmode == dill.HANDLE_FMODE: + assert open(fname).read() == " world!" + assert f2mode == f1mode + assert f2tell == 0 + elif fmode == dill.FILE_FMODE: + assert open(fname).read() == "hello world!" + assert f2mode == f1mode + assert f2tell == ftell + else: + raise RuntimeError("Unknown file mode '%s'" % fmode) + f2.close() + + # append + + trunc_file() + + f = open(fname, "a") + f.write("hello") + f_dumped = dill.dumps(f, fmode=fmode)#, strictio=strictio) + f1mode = f.mode + ftell = f.tell() + f.close() + fstr = open(fname).read() + + f = open(fname, "w") + f.write("h") + _ftell = f.tell() + f.close() + + if strictio: # throw error if ftell > EOF + assert throws(dill.loads, (f_dumped,), buffer_error) + else: + f2 = dill.loads(f_dumped) + f2mode = f2.mode + f2tell = f2.tell() + f2.write(" world!") + f2.close() + assert f2mode == f1mode + if fmode == dill.CONTENTS_FMODE: + # position of writes cannot be changed on some OSs + assert open(fname).read() == "h world!" + assert f2tell == _ftell + elif fmode == dill.HANDLE_FMODE: + assert open(fname).read() == "h world!" + assert f2tell == _ftell + elif fmode == dill.FILE_FMODE: + assert open(fname).read() == "hello world!" + assert f2tell == ftell + else: + raise RuntimeError("Unknown file mode '%s'" % fmode) + f2.close() + + # file does not exist + # read + + write_randomness() + + f = open(fname, "r") + fstr = f.read() + f_dumped = dill.dumps(f, fmode=fmode)#, strictio=strictio) + f1mode = f.mode + ftell = f.tell() + f.close() + + os.remove(fname) + + if strictio: # throw error if file DNE + assert throws(dill.loads, (f_dumped,), dne_error) + else: + f2 = dill.loads(f_dumped) + assert f2.mode == f1mode + if fmode == dill.CONTENTS_FMODE: + # FIXME: this fails on systems where f2.tell() always returns 0 + # assert f2.tell() == ftell # 200 + assert f2.read() == "" + f2.seek(0) + assert f2.read() == "" + assert f2.tell() == 0 + elif fmode == dill.FILE_FMODE: + assert f2.tell() == ftell # 200 + assert f2.read() == "" + f2.seek(0) + assert f2.read() == fstr + assert f2.tell() == ftell # 200 + elif fmode == dill.HANDLE_FMODE: + assert f2.tell() == 0 + assert f2.read() == "" + assert f2.tell() == 0 + else: + raise RuntimeError("Unknown file mode '%s'" % fmode) + f2.close() + + # write + + write_randomness() + + f = open(fname, "w+") + f.write("hello") + f_dumped = dill.dumps(f, fmode=fmode)#, strictio=strictio) + ftell = f.tell() + f1mode = f.mode + f.close() + + os.remove(fname) + + if strictio: # throw error if file DNE + assert throws(dill.loads, (f_dumped,), dne_error) + else: + f2 = dill.loads(f_dumped) + f2mode = f2.mode + f2tell = f2.tell() + f2.write(" world!") + f2.close() + if fmode == dill.CONTENTS_FMODE: + assert open(fname).read() == " world!" + assert f2mode == 'w+' + assert f2tell == 0 + elif fmode == dill.HANDLE_FMODE: + assert open(fname).read() == " world!" + assert f2mode == f1mode + assert f2tell == 0 + elif fmode == dill.FILE_FMODE: + assert open(fname).read() == "hello world!" + assert f2mode == f1mode + assert f2tell == ftell + else: + raise RuntimeError("Unknown file mode '%s'" % fmode) + + # append + + trunc_file() + + f = open(fname, "a") + f.write("hello") + f_dumped = dill.dumps(f, fmode=fmode)#, strictio=strictio) + ftell = f.tell() + f1mode = f.mode + f.close() + + os.remove(fname) + + if strictio: # throw error if file DNE + assert throws(dill.loads, (f_dumped,), dne_error) + else: + f2 = dill.loads(f_dumped) + f2mode = f2.mode + f2tell = f2.tell() + f2.write(" world!") + f2.close() + assert f2mode == f1mode + if fmode == dill.CONTENTS_FMODE: + assert open(fname).read() == " world!" + assert f2tell == 0 + elif fmode == dill.HANDLE_FMODE: + assert open(fname).read() == " world!" + assert f2tell == 0 + elif fmode == dill.FILE_FMODE: + assert open(fname).read() == "hello world!" + assert f2tell == ftell + else: + raise RuntimeError("Unknown file mode '%s'" % fmode) + + # file exists, with different contents (larger size) + # read + + write_randomness() + + f = open(fname, "r") + fstr = f.read() + f_dumped = dill.dumps(f, fmode=fmode)#, strictio=strictio) + f1mode = f.mode + ftell = f.tell() + f.close() + _flen = 250 + _fstr = write_randomness(number=_flen) + + # XXX: no safe_file: no way to be 'safe'? + + f2 = dill.loads(f_dumped) + assert f2.mode == f1mode + if fmode == dill.CONTENTS_FMODE: + assert f2.tell() == ftell # 200 + assert f2.read() == _fstr[ftell:] + f2.seek(0) + assert f2.read() == _fstr + assert f2.tell() == _flen # 250 + elif fmode == dill.HANDLE_FMODE: + assert f2.tell() == 0 + assert f2.read() == _fstr + assert f2.tell() == _flen # 250 + elif fmode == dill.FILE_FMODE: + assert f2.tell() == ftell # 200 + assert f2.read() == "" + f2.seek(0) + assert f2.read() == fstr + assert f2.tell() == ftell # 200 + else: + raise RuntimeError("Unknown file mode '%s'" % fmode) + f2.close() # XXX: other alternatives? + + # write + + f = open(fname, "w") + f.write("hello") + f_dumped = dill.dumps(f, fmode=fmode)#, strictio=strictio) + f1mode = f.mode + ftell = f.tell() + + fstr = open(fname).read() + + f.write(" and goodbye!") + _ftell = f.tell() + f.close() + + # XXX: no safe_file: no way to be 'safe'? + + f2 = dill.loads(f_dumped) + f2mode = f2.mode + f2tell = f2.tell() + f2.write(" world!") + f2.close() + if fmode == dill.CONTENTS_FMODE: + assert open(fname).read() == "hello world!odbye!" + assert f2mode == f1mode + assert f2tell == ftell + elif fmode == dill.HANDLE_FMODE: + assert open(fname).read() == " world!" + assert f2mode == f1mode + assert f2tell == 0 + elif fmode == dill.FILE_FMODE: + assert open(fname).read() == "hello world!" + assert f2mode == f1mode + assert f2tell == ftell + else: + raise RuntimeError("Unknown file mode '%s'" % fmode) + f2.close() + + # append + + trunc_file() + + f = open(fname, "a") + f.write("hello") + f_dumped = dill.dumps(f, fmode=fmode)#, strictio=strictio) + f1mode = f.mode + ftell = f.tell() + fstr = open(fname).read() + + f.write(" and goodbye!") + _ftell = f.tell() + f.close() + + # XXX: no safe_file: no way to be 'safe'? + + f2 = dill.loads(f_dumped) + f2mode = f2.mode + f2tell = f2.tell() + f2.write(" world!") + f2.close() + assert f2mode == f1mode + if fmode == dill.CONTENTS_FMODE: + assert open(fname).read() == "hello and goodbye! world!" + assert f2tell == ftell + elif fmode == dill.HANDLE_FMODE: + assert open(fname).read() == "hello and goodbye! world!" + assert f2tell == _ftell + elif fmode == dill.FILE_FMODE: + assert open(fname).read() == "hello world!" + assert f2tell == ftell + else: + raise RuntimeError("Unknown file mode '%s'" % fmode) + f2.close() + + +def test_nostrictio_handlefmode(): + bench(False, dill.HANDLE_FMODE, False) + teardown_module() + + +def test_nostrictio_filefmode(): + bench(False, dill.FILE_FMODE, False) + teardown_module() + + +def test_nostrictio_contentsfmode(): + bench(False, dill.CONTENTS_FMODE, True) + teardown_module() + + +#bench(True, dill.HANDLE_FMODE, False) +#bench(True, dill.FILE_FMODE, False) +#bench(True, dill.CONTENTS_FMODE, True) + + +if __name__ == '__main__': + test_nostrictio_handlefmode() + test_nostrictio_filefmode() + test_nostrictio_contentsfmode() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_functions.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_functions.py new file mode 100644 index 0000000000000000000000000000000000000000..305acc6571e969ca755f79220a3d2fc2a68cdef4 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_functions.py @@ -0,0 +1,141 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2019-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE + +import functools +import dill +import sys +dill.settings['recurse'] = True + + +def function_a(a): + return a + + +def function_b(b, b1): + return b + b1 + + +def function_c(c, c1=1): + return c + c1 + + +def function_d(d, d1, d2=1): + """doc string""" + return d + d1 + d2 + +function_d.__module__ = 'a module' + + +exec(''' +def function_e(e, *e1, e2=1, e3=2): + return e + sum(e1) + e2 + e3''') + +globalvar = 0 + +@functools.lru_cache(None) +def function_with_cache(x): + global globalvar + globalvar += x + return globalvar + + +def function_with_unassigned_variable(): + if False: + value = None + return (lambda: value) + + +def test_issue_510(): + # A very bizzare use of functions and methods that pickle doesn't get + # correctly for odd reasons. + class Foo: + def __init__(self): + def f2(self): + return self + self.f2 = f2.__get__(self) + + import dill, pickletools + f = Foo() + f1 = dill.copy(f) + assert f1.f2() is f1 + + +def test_functions(): + dumped_func_a = dill.dumps(function_a) + assert dill.loads(dumped_func_a)(0) == 0 + + dumped_func_b = dill.dumps(function_b) + assert dill.loads(dumped_func_b)(1,2) == 3 + + dumped_func_c = dill.dumps(function_c) + assert dill.loads(dumped_func_c)(1) == 2 + assert dill.loads(dumped_func_c)(1, 2) == 3 + + dumped_func_d = dill.dumps(function_d) + assert dill.loads(dumped_func_d).__doc__ == function_d.__doc__ + assert dill.loads(dumped_func_d).__module__ == function_d.__module__ + assert dill.loads(dumped_func_d)(1, 2) == 4 + assert dill.loads(dumped_func_d)(1, 2, 3) == 6 + assert dill.loads(dumped_func_d)(1, 2, d2=3) == 6 + + function_with_cache(1) + globalvar = 0 + dumped_func_cache = dill.dumps(function_with_cache) + assert function_with_cache(2) == 3 + assert function_with_cache(1) == 1 + assert function_with_cache(3) == 6 + assert function_with_cache(2) == 3 + + empty_cell = function_with_unassigned_variable() + cell_copy = dill.loads(dill.dumps(empty_cell)) + assert 'empty' in str(cell_copy.__closure__[0]) + try: + cell_copy() + except Exception: + # this is good + pass + else: + raise AssertionError('cell_copy() did not read an empty cell') + + exec(''' +dumped_func_e = dill.dumps(function_e) +assert dill.loads(dumped_func_e)(1, 2) == 6 +assert dill.loads(dumped_func_e)(1, 2, 3) == 9 +assert dill.loads(dumped_func_e)(1, 2, e2=3) == 8 +assert dill.loads(dumped_func_e)(1, 2, e2=3, e3=4) == 10 +assert dill.loads(dumped_func_e)(1, 2, 3, e2=4) == 12 +assert dill.loads(dumped_func_e)(1, 2, 3, e2=4, e3=5) == 15''') + +def test_code_object(): + import warnings + from dill._dill import ALL_CODE_PARAMS, CODE_PARAMS, CODE_VERSION, _create_code + code = function_c.__code__ + warnings.filterwarnings('ignore', category=DeprecationWarning) # issue 597 + LNOTAB = getattr(code, 'co_lnotab', b'') + if warnings.filters: del warnings.filters[0] + fields = {f: getattr(code, 'co_'+f) for f in CODE_PARAMS} + fields.setdefault('posonlyargcount', 0) # python >= 3.8 + fields.setdefault('lnotab', LNOTAB) # python <= 3.9 + fields.setdefault('linetable', b'') # python >= 3.10 + fields.setdefault('qualname', fields['name']) # python >= 3.11 + fields.setdefault('exceptiontable', b'') # python >= 3.11 + fields.setdefault('endlinetable', None) # python == 3.11a + fields.setdefault('columntable', None) # python == 3.11a + + for version, _, params in ALL_CODE_PARAMS: + args = tuple(fields[p] for p in params.split()) + try: + _create_code(*args) + if version >= (3,10): + _create_code(fields['lnotab'], *args) + except Exception as error: + raise Exception("failed to construct code object with format version {}".format(version)) from error + +if __name__ == '__main__': + test_functions() + test_issue_510() + test_code_object() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_functors.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_functors.py new file mode 100644 index 0000000000000000000000000000000000000000..1008be691537ca8e1089031fd5bbe924506f4279 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_functors.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2008-2016 California Institute of Technology. +# Copyright (c) 2016-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE + +import functools +import dill +dill.settings['recurse'] = True + + +def f(a, b, c): # without keywords + pass + + +def g(a, b, c=2): # with keywords + pass + + +def h(a=1, b=2, c=3): # without args + pass + + +def test_functools(): + fp = functools.partial(f, 1, 2) + gp = functools.partial(g, 1, c=2) + hp = functools.partial(h, 1, c=2) + bp = functools.partial(int, base=2) + + assert dill.pickles(fp, safe=True) + assert dill.pickles(gp, safe=True) + assert dill.pickles(hp, safe=True) + assert dill.pickles(bp, safe=True) + + +if __name__ == '__main__': + test_functools() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_logger.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_logger.py new file mode 100644 index 0000000000000000000000000000000000000000..b878a1054b36bfc4e39e3a575ef407c094ebd3a8 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_logger.py @@ -0,0 +1,70 @@ +#!/usr/bin/env python + +# Author: Leonardo Gama (@leogama) +# Copyright (c) 2022-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE + +import logging +import re +import tempfile + +import dill +from dill import detect +from dill.logger import stderr_handler, adapter as logger + +try: + from StringIO import StringIO +except ImportError: + from io import StringIO + +test_obj = {'a': (1, 2), 'b': object(), 'f': lambda x: x**2, 'big': list(range(10))} + +def test_logging(should_trace): + buffer = StringIO() + handler = logging.StreamHandler(buffer) + logger.addHandler(handler) + try: + dill.dumps(test_obj) + if should_trace: + regex = re.compile(r'(\S*┬ \w.*[^)]' # begin pickling object + r'|│*└ # \w.* \[\d+ (\wi)?B])' # object written (with size) + ) + for line in buffer.getvalue().splitlines(): + assert regex.fullmatch(line) + return buffer.getvalue() + else: + assert buffer.getvalue() == "" + finally: + logger.removeHandler(handler) + buffer.close() + +def test_trace_to_file(stream_trace): + file = tempfile.NamedTemporaryFile(mode='r') + with detect.trace(file.name, mode='w'): + dill.dumps(test_obj) + file_trace = file.read() + file.close() + # Apparently, objects can change location in memory... + reghex = re.compile(r'0x[0-9A-Za-z]+') + file_trace, stream_trace = reghex.sub('0x', file_trace), reghex.sub('0x', stream_trace) + # PyPy prints dictionary contents with repr(dict)... + regdict = re.compile(r'(dict\.__repr__ of ).*') + file_trace, stream_trace = regdict.sub(r'\1{}>', file_trace), regdict.sub(r'\1{}>', stream_trace) + assert file_trace == stream_trace + +if __name__ == '__main__': + logger.removeHandler(stderr_handler) + test_logging(should_trace=False) + detect.trace(True) + test_logging(should_trace=True) + detect.trace(False) + test_logging(should_trace=False) + + loglevel = logging.ERROR + logger.setLevel(loglevel) + with detect.trace(): + stream_trace = test_logging(should_trace=True) + test_logging(should_trace=False) + assert logger.getEffectiveLevel() == loglevel + test_trace_to_file(stream_trace) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_mixins.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_mixins.py new file mode 100644 index 0000000000000000000000000000000000000000..6d67dadedf4cb84773cddb9dbdb3ab919ff8dbaf --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_mixins.py @@ -0,0 +1,121 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2008-2016 California Institute of Technology. +# Copyright (c) 2016-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE + +import dill +dill.settings['recurse'] = True + + +def wtf(x,y,z): + def zzz(): + return x + def yyy(): + return y + def xxx(): + return z + return zzz,yyy + + +def quad(a=1, b=1, c=0): + inverted = [False] + def invert(): + inverted[0] = not inverted[0] + def dec(f): + def func(*args, **kwds): + x = f(*args, **kwds) + if inverted[0]: x = -x + return a*x**2 + b*x + c + func.__wrapped__ = f + func.invert = invert + func.inverted = inverted + return func + return dec + + +@quad(a=0,b=2) +def double_add(*args): + return sum(args) + + +fx = sum([1,2,3]) + + +### to make it interesting... +def quad_factory(a=1,b=1,c=0): + def dec(f): + def func(*args,**kwds): + fx = f(*args,**kwds) + return a*fx**2 + b*fx + c + return func + return dec + + +@quad_factory(a=0,b=4,c=0) +def quadish(x): + return x+1 + + +quadratic = quad_factory() + + +def doubler(f): + def inner(*args, **kwds): + fx = f(*args, **kwds) + return 2*fx + return inner + + +@doubler +def quadruple(x): + return 2*x + + +def test_mixins(): + # test mixins + assert double_add(1,2,3) == 2*fx + double_add.invert() + assert double_add(1,2,3) == -2*fx + + _d = dill.copy(double_add) + assert _d(1,2,3) == -2*fx + #_d.invert() #FIXME: fails seemingly randomly + #assert _d(1,2,3) == 2*fx + + assert _d.__wrapped__(1,2,3) == fx + + # XXX: issue or feature? in python3.4, inverted is linked through copy + if not double_add.inverted[0]: + double_add.invert() + + # test some stuff from source and pointers + ds = dill.source + dd = dill.detect + assert ds.getsource(dd.freevars(quadish)['f']) == '@quad_factory(a=0,b=4,c=0)\ndef quadish(x):\n return x+1\n' + assert ds.getsource(dd.freevars(quadruple)['f']) == '@doubler\ndef quadruple(x):\n return 2*x\n' + assert ds.importable(quadish, source=False) == 'from %s import quadish\n' % __name__ + assert ds.importable(quadruple, source=False) == 'from %s import quadruple\n' % __name__ + assert ds.importable(quadratic, source=False) == 'from %s import quadratic\n' % __name__ + assert ds.importable(double_add, source=False) == 'from %s import double_add\n' % __name__ + assert ds.importable(quadruple, source=True) == 'def doubler(f):\n def inner(*args, **kwds):\n fx = f(*args, **kwds)\n return 2*fx\n return inner\n\n@doubler\ndef quadruple(x):\n return 2*x\n' + #***** #FIXME: this needs work + result = ds.importable(quadish, source=True) + a,b,c,_,result = result.split('\n',4) + assert result == 'def quad_factory(a=1,b=1,c=0):\n def dec(f):\n def func(*args,**kwds):\n fx = f(*args,**kwds)\n return a*fx**2 + b*fx + c\n return func\n return dec\n\n@quad_factory(a=0,b=4,c=0)\ndef quadish(x):\n return x+1\n' + assert set([a,b,c]) == set(['a = 0', 'c = 0', 'b = 4']) + result = ds.importable(quadratic, source=True) + a,b,c,result = result.split('\n',3) + assert result == '\ndef dec(f):\n def func(*args,**kwds):\n fx = f(*args,**kwds)\n return a*fx**2 + b*fx + c\n return func\n' + assert set([a,b,c]) == set(['a = 1', 'c = 0', 'b = 1']) + result = ds.importable(double_add, source=True) + a,b,c,d,_,result = result.split('\n',5) + assert result == 'def quad(a=1, b=1, c=0):\n inverted = [False]\n def invert():\n inverted[0] = not inverted[0]\n def dec(f):\n def func(*args, **kwds):\n x = f(*args, **kwds)\n if inverted[0]: x = -x\n return a*x**2 + b*x + c\n func.__wrapped__ = f\n func.invert = invert\n func.inverted = inverted\n return func\n return dec\n\n@quad(a=0,b=2)\ndef double_add(*args):\n return sum(args)\n' + assert set([a,b,c,d]) == set(['a = 0', 'c = 0', 'b = 2', 'inverted = [True]']) + #***** + + +if __name__ == '__main__': + test_mixins() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_module.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_module.py new file mode 100644 index 0000000000000000000000000000000000000000..b696d728eb83cb2f146100b3bff1eb33f88440a7 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_module.py @@ -0,0 +1,84 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2008-2016 California Institute of Technology. +# Copyright (c) 2016-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE + +import sys +import dill +import test_mixins as module +from importlib import reload +dill.settings['recurse'] = True + +cached = (module.__cached__ if hasattr(module, "__cached__") + else module.__file__.split(".", 1)[0] + ".pyc") + +module.a = 1234 + +pik_mod = dill.dumps(module) + +module.a = 0 + +# remove module +del sys.modules[module.__name__] +del module + +module = dill.loads(pik_mod) +def test_attributes(): + #assert hasattr(module, "a") and module.a == 1234 #FIXME: -m dill.tests + assert module.double_add(1, 2, 3) == 2 * module.fx + +# Restart, and test use_diff + +reload(module) + +try: + dill.use_diff() + + module.a = 1234 + + pik_mod = dill.dumps(module) + + module.a = 0 + + # remove module + del sys.modules[module.__name__] + del module + + module = dill.loads(pik_mod) + def test_diff_attributes(): + assert hasattr(module, "a") and module.a == 1234 + assert module.double_add(1, 2, 3) == 2 * module.fx + +except AttributeError: + def test_diff_attributes(): + pass + +# clean up +import os +if os.path.exists(cached): + os.remove(cached) +pycache = os.path.join(os.path.dirname(module.__file__), "__pycache__") +if os.path.exists(pycache) and not os.listdir(pycache): + os.removedirs(pycache) + + +# test when module is None +import math + +def get_lambda(str, **kwarg): + return eval(str, kwarg, None) + +obj = get_lambda('lambda x: math.exp(x)', math=math) + +def test_module_is_none(): + assert obj.__module__ is None + assert dill.copy(obj)(3) == obj(3) + + +if __name__ == '__main__': + test_attributes() + test_diff_attributes() + test_module_is_none() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_moduledict.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_moduledict.py new file mode 100644 index 0000000000000000000000000000000000000000..5e6e87b365604ba4286488b7e799c1c9a88bcc14 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_moduledict.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2008-2016 California Institute of Technology. +# Copyright (c) 2016-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE + +import dill +dill.settings['recurse'] = True + +def f(func): + def w(*args): + return f(*args) + return w + +@f +def f2(): pass + +# check when __main__ and on import +def test_decorated(): + assert dill.pickles(f2) + + +import doctest +import logging +logging.basicConfig(level=logging.DEBUG) + +class SomeUnreferencedUnpicklableClass(object): + def __reduce__(self): + raise Exception + +unpicklable = SomeUnreferencedUnpicklableClass() + +# This works fine outside of Doctest: +def test_normal(): + serialized = dill.dumps(lambda x: x) + +# should not try to pickle unpicklable object in __globals__ +def tests(): + """ + >>> serialized = dill.dumps(lambda x: x) + """ + return + +#print("\n\nRunning Doctest:") +def test_doctest(): + doctest.testmod() + + +if __name__ == '__main__': + test_decorated() + test_normal() + test_doctest() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_nested.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_nested.py new file mode 100644 index 0000000000000000000000000000000000000000..9109f55c86b0539632a7bde27e8172c8ba714acd --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_nested.py @@ -0,0 +1,135 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2008-2016 California Institute of Technology. +# Copyright (c) 2016-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE +""" +test dill's ability to handle nested functions +""" + +import os +import math + +import dill as pickle +pickle.settings['recurse'] = True + + +# the nested function: pickle should fail here, but dill is ok. +def adder(augend): + zero = [0] + + def inner(addend): + return addend + augend + zero[0] + return inner + + +# rewrite the nested function using a class: standard pickle should work here. +class cadder(object): + def __init__(self, augend): + self.augend = augend + self.zero = [0] + + def __call__(self, addend): + return addend + self.augend + self.zero[0] + + +# rewrite again, but as an old-style class +class c2adder: + def __init__(self, augend): + self.augend = augend + self.zero = [0] + + def __call__(self, addend): + return addend + self.augend + self.zero[0] + + +# some basic class stuff +class basic(object): + pass + + +class basic2: + pass + + +x = 5 +y = 1 + + +def test_basic(): + a = [0, 1, 2] + pa = pickle.dumps(a) + pmath = pickle.dumps(math) #XXX: FAILS in pickle + pmap = pickle.dumps(map) + # ... + la = pickle.loads(pa) + lmath = pickle.loads(pmath) + lmap = pickle.loads(pmap) + assert list(map(math.sin, a)) == list(lmap(lmath.sin, la)) + + +def test_basic_class(): + pbasic2 = pickle.dumps(basic2) + _pbasic2 = pickle.loads(pbasic2)() + pbasic = pickle.dumps(basic) + _pbasic = pickle.loads(pbasic)() + + +def test_c2adder(): + pc2adder = pickle.dumps(c2adder) + pc2add5 = pickle.loads(pc2adder)(x) + assert pc2add5(y) == x+y + + +def test_pickled_cadder(): + pcadder = pickle.dumps(cadder) + pcadd5 = pickle.loads(pcadder)(x) + assert pcadd5(y) == x+y + + +def test_raw_adder_and_inner(): + add5 = adder(x) + assert add5(y) == x+y + + +def test_pickled_adder(): + padder = pickle.dumps(adder) + padd5 = pickle.loads(padder)(x) + assert padd5(y) == x+y + + +def test_pickled_inner(): + add5 = adder(x) + pinner = pickle.dumps(add5) #XXX: FAILS in pickle + p5add = pickle.loads(pinner) + assert p5add(y) == x+y + + +def test_moduledict_where_not_main(): + try: + from . import test_moduledict + except ImportError: + import test_moduledict + name = 'test_moduledict.py' + if os.path.exists(name) and os.path.exists(name+'c'): + os.remove(name+'c') + + if os.path.exists(name) and hasattr(test_moduledict, "__cached__") \ + and os.path.exists(test_moduledict.__cached__): + os.remove(getattr(test_moduledict, "__cached__")) + + if os.path.exists("__pycache__") and not os.listdir("__pycache__"): + os.removedirs("__pycache__") + + +if __name__ == '__main__': + test_basic() + test_basic_class() + test_c2adder() + test_pickled_cadder() + test_raw_adder_and_inner() + test_pickled_adder() + test_pickled_inner() + test_moduledict_where_not_main() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_objects.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_objects.py new file mode 100644 index 0000000000000000000000000000000000000000..7db288de0fc313d52f73f70e99a636242f45cc57 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_objects.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2008-2016 California Institute of Technology. +# Copyright (c) 2016-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE +""" +demonstrate dill's ability to pickle different python types +test pickling of all Python Standard Library objects (currently: CH 1-14 @ 2.7) +""" + +import dill as pickle +pickle.settings['recurse'] = True +#pickle.detect.trace(True) +#import pickle + +# get all objects for testing +from dill import load_types, objects, extend +load_types(pickleable=True,unpickleable=False) + +# uncomment the next two lines to test cloudpickle +#extend(False) +#import cloudpickle as pickle + +# helper objects +class _class: + def _method(self): + pass + +# objects that *fail* if imported +special = {} +special['LambdaType'] = _lambda = lambda x: lambda y: x +special['MethodType'] = _method = _class()._method +special['UnboundMethodType'] = _class._method +objects.update(special) + +def pickles(name, exact=False, verbose=True): + """quick check if object pickles with dill""" + obj = objects[name] + try: + pik = pickle.loads(pickle.dumps(obj)) + if exact: + try: + assert pik == obj + except AssertionError: + assert type(obj) == type(pik) + if verbose: print ("weak: %s %s" % (name, type(obj))) + else: + assert type(obj) == type(pik) + except Exception: + if verbose: print ("fails: %s %s" % (name, type(obj))) + + +def test_objects(verbose=True): + for member in objects.keys(): + #pickles(member, exact=True, verbose=verbose) + pickles(member, exact=False, verbose=verbose) + +if __name__ == '__main__': + import warnings + warnings.simplefilter('ignore') + test_objects(verbose=False) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_properties.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_properties.py new file mode 100644 index 0000000000000000000000000000000000000000..df3f5b58fac06d7dad962916eccd96f18d835190 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_properties.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2008-2016 California Institute of Technology. +# Copyright (c) 2016-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE + +import sys + +import dill +dill.settings['recurse'] = True + + +class Foo(object): + def __init__(self): + self._data = 1 + + def _get_data(self): + return self._data + + def _set_data(self, x): + self._data = x + + data = property(_get_data, _set_data) + + +def test_data_not_none(): + FooS = dill.copy(Foo) + assert FooS.data.fget is not None + assert FooS.data.fset is not None + assert FooS.data.fdel is None + + +def test_data_unchanged(): + FooS = dill.copy(Foo) + try: + res = FooS().data + except Exception: + e = sys.exc_info()[1] + raise AssertionError(str(e)) + else: + assert res == 1 + + +def test_data_changed(): + FooS = dill.copy(Foo) + try: + f = FooS() + f.data = 1024 + res = f.data + except Exception: + e = sys.exc_info()[1] + raise AssertionError(str(e)) + else: + assert res == 1024 + + +if __name__ == '__main__': + test_data_not_none() + test_data_unchanged() + test_data_changed() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_pycapsule.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_pycapsule.py new file mode 100644 index 0000000000000000000000000000000000000000..34ca00c338e0ad73ab0efe9d2ae8a45c41eda8b9 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_pycapsule.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Author: Anirudh Vegesana (avegesan@cs.stanford.edu) +# Copyright (c) 2022-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE +""" +test pickling a PyCapsule object +""" + +import dill +import warnings + +test_pycapsule = None + +if dill._dill._testcapsule is not None: + import ctypes + def test_pycapsule(): + name = ctypes.create_string_buffer(b'dill._testcapsule') + capsule = dill._dill._PyCapsule_New( + ctypes.cast(dill._dill._PyCapsule_New, ctypes.c_void_p), + name, + None + ) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + dill.copy(capsule) + dill._testcapsule = capsule + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + dill.copy(capsule) + dill._testcapsule = None + try: + with warnings.catch_warnings(): + warnings.simplefilter("ignore", dill.PicklingWarning) + dill.copy(capsule) + except dill.UnpicklingError: + pass + else: + raise AssertionError("Expected a different error") + +if __name__ == '__main__': + if test_pycapsule is not None: + test_pycapsule() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_recursive.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_recursive.py new file mode 100644 index 0000000000000000000000000000000000000000..b84f19e4bd5fecadaf4ac1fe63dd08a583e88358 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_recursive.py @@ -0,0 +1,177 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2019-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE + +import dill +from functools import partial +import warnings + + +def copy(obj, byref=False, recurse=False): + if byref: + try: + return dill.copy(obj, byref=byref, recurse=recurse) + except Exception: + pass + else: + raise AssertionError('Copy of %s with byref=True should have given a warning!' % (obj,)) + + warnings.simplefilter('ignore') + val = dill.copy(obj, byref=byref, recurse=recurse) + warnings.simplefilter('error') + return val + else: + return dill.copy(obj, byref=byref, recurse=recurse) + + +class obj1(object): + def __init__(self): + super(obj1, self).__init__() + +class obj2(object): + def __init__(self): + super(obj2, self).__init__() + +class obj3(object): + super_ = super + def __init__(self): + obj3.super_(obj3, self).__init__() + + +def test_super(): + assert copy(obj1(), byref=True) + assert copy(obj1(), byref=True, recurse=True) + assert copy(obj1(), recurse=True) + assert copy(obj1()) + + assert copy(obj2(), byref=True) + assert copy(obj2(), byref=True, recurse=True) + assert copy(obj2(), recurse=True) + assert copy(obj2()) + + assert copy(obj3(), byref=True) + assert copy(obj3(), byref=True, recurse=True) + assert copy(obj3(), recurse=True) + assert copy(obj3()) + + +def get_trigger(model): + pass + +class Machine(object): + def __init__(self): + self.child = Model() + self.trigger = partial(get_trigger, self) + self.child.trigger = partial(get_trigger, self.child) + +class Model(object): + pass + + + +def test_partial(): + assert copy(Machine(), byref=True) + assert copy(Machine(), byref=True, recurse=True) + assert copy(Machine(), recurse=True) + assert copy(Machine()) + + +class Machine2(object): + def __init__(self): + self.go = partial(self.member, self) + def member(self, model): + pass + + +class SubMachine(Machine2): + def __init__(self): + super(SubMachine, self).__init__() + + +def test_partials(): + assert copy(SubMachine(), byref=True) + assert copy(SubMachine(), byref=True, recurse=True) + assert copy(SubMachine(), recurse=True) + assert copy(SubMachine()) + + +class obj4(object): + def __init__(self): + super(obj4, self).__init__() + a = self + class obj5(object): + def __init__(self): + super(obj5, self).__init__() + self.a = a + self.b = obj5() + + +def test_circular_reference(): + assert copy(obj4()) + obj4_copy = dill.loads(dill.dumps(obj4())) + assert type(obj4_copy) is type(obj4_copy).__init__.__closure__[0].cell_contents + assert type(obj4_copy.b) is type(obj4_copy.b).__init__.__closure__[0].cell_contents + + +def f(): + def g(): + return g + return g + + +def test_function_cells(): + assert copy(f()) + + +def fib(n): + assert n >= 0 + if n <= 1: + return n + else: + return fib(n-1) + fib(n-2) + + +def test_recursive_function(): + global fib + fib2 = copy(fib, recurse=True) + fib3 = copy(fib) + fib4 = fib + del fib + assert fib2(5) == 5 + for _fib in (fib3, fib4): + try: + _fib(5) + except Exception: + # This is expected to fail because fib no longer exists + pass + else: + raise AssertionError("Function fib shouldn't have been found") + fib = fib4 + + +def collection_function_recursion(): + d = {} + def g(): + return d + d['g'] = g + return g + + +def test_collection_function_recursion(): + g = copy(collection_function_recursion()) + assert g()['g'] is g + + +if __name__ == '__main__': + with warnings.catch_warnings(): + warnings.simplefilter('error') + test_super() + test_partial() + test_partials() + test_circular_reference() + test_function_cells() + test_recursive_function() + test_collection_function_recursion() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_registered.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_registered.py new file mode 100644 index 0000000000000000000000000000000000000000..393e2f3ea68627f79e91710934351a76f281ff5b --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_registered.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2022-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE +""" +test pickling registered objects +""" + +import dill +from dill._objects import failures, registered, succeeds +import warnings +warnings.filterwarnings('ignore') + +def check(d, ok=True): + res = [] + for k,v in d.items(): + try: + z = dill.copy(v) + if ok: res.append(k) + except: + if not ok: res.append(k) + return res + +fails = check(failures) +try: + assert not bool(fails) +except AssertionError as e: + print("FAILS: %s" % fails) + raise e from None + +register = check(registered, ok=False) +try: + assert not bool(register) +except AssertionError as e: + print("REGISTER: %s" % register) + raise e from None + +success = check(succeeds, ok=False) +try: + assert not bool(success) +except AssertionError as e: + print("SUCCESS: %s" % success) + raise e from None + +import builtins +import types +q = dill._dill._reverse_typemap +p = {k:v for k,v in q.items() if k not in vars(builtins) and k not in vars(types)} + +diff = set(p.keys()).difference(registered.keys()) +try: + assert not bool(diff) +except AssertionError as e: + print("DIFF: %s" % diff) + raise e from None + +miss = set(registered.keys()).difference(p.keys()) +try: + assert not bool(miss) +except AssertionError as e: + print("MISS: %s" % miss) + raise e from None diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_restricted.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_restricted.py new file mode 100644 index 0000000000000000000000000000000000000000..cdb773e36df6304e44c5a883f9f4e5beaee0d674 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_restricted.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python +# +# Author: Kirill Makhonin (@kirillmakhonin) +# Copyright (c) 2008-2016 California Institute of Technology. +# Copyright (c) 2016-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE + +import dill + +class RestrictedType: + def __bool__(*args, **kwargs): + raise Exception('Restricted function') + + __eq__ = __lt__ = __le__ = __ne__ = __gt__ = __ge__ = __hash__ = __bool__ + +glob_obj = RestrictedType() + +def restricted_func(): + a = glob_obj + +def test_function_with_restricted_object(): + deserialized = dill.loads(dill.dumps(restricted_func, recurse=True)) + + +if __name__ == '__main__': + test_function_with_restricted_object() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_selected.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_selected.py new file mode 100644 index 0000000000000000000000000000000000000000..d8db5c04578c98531237188bb4b425e6e0e4d92e --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_selected.py @@ -0,0 +1,125 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2008-2016 California Institute of Technology. +# Copyright (c) 2016-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE +""" +testing some selected object types +""" + +import dill +dill.settings['recurse'] = True + +verbose = False + +def test_dict_contents(): + c = type.__dict__ + for i,j in c.items(): + #try: + ok = dill.pickles(j) + #except Exception: + # print ("FAIL: %s with %s" % (i, dill.detect.errors(j))) + if verbose: print ("%s: %s, %s" % (ok, type(j), j)) + assert ok + if verbose: print ("") + +def _g(x): yield x; + +def _f(): + try: raise + except Exception: + from sys import exc_info + e, er, tb = exc_info() + return er, tb + +class _d(object): + def _method(self): + pass + +from dill import objects +from dill import load_types +load_types(pickleable=True,unpickleable=False) +_newclass = objects['ClassObjectType'] +# some clean-up #FIXME: should happen internal to dill +objects['TemporaryFileType'].close() +objects['TextWrapperType'].close() +objects['BufferedRandomType'].close() +objects['BufferedReaderType'].close() +objects['BufferedWriterType'].close() +objects['FileType'].close() +del objects + +# getset_descriptor for new-style classes (fails on '_method', if not __main__) +def test_class_descriptors(): + d = _d.__dict__ + for i in d.values(): + ok = dill.pickles(i) + if verbose: print ("%s: %s, %s" % (ok, type(i), i)) + assert ok + if verbose: print ("") + od = _newclass.__dict__ + for i in od.values(): + ok = dill.pickles(i) + if verbose: print ("%s: %s, %s" % (ok, type(i), i)) + assert ok + if verbose: print ("") + +# (__main__) class instance for new-style classes +def test_class(): + o = _d() + oo = _newclass() + ok = dill.pickles(o) + if verbose: print ("%s: %s, %s" % (ok, type(o), o)) + assert ok + ok = dill.pickles(oo) + if verbose: print ("%s: %s, %s" % (ok, type(oo), oo)) + assert ok + if verbose: print ("") + +# frames, generators, and tracebacks (all depend on frame) +def test_frame_related(): + g = _g(1) + f = g.gi_frame + e,t = _f() + _is = lambda ok: ok + ok = dill.pickles(f) + if verbose: print ("%s: %s, %s" % (ok, type(f), f)) + assert not ok + ok = dill.pickles(g) + if verbose: print ("%s: %s, %s" % (ok, type(g), g)) + assert _is(not ok) #XXX: dill fails + ok = dill.pickles(t) + if verbose: print ("%s: %s, %s" % (ok, type(t), t)) + assert not ok #XXX: dill fails + ok = dill.pickles(e) + if verbose: print ("%s: %s, %s" % (ok, type(e), e)) + assert ok + if verbose: print ("") + +def test_typing(): + import typing + x = typing.Any + assert x == dill.copy(x) + x = typing.Dict[int, str] + assert x == dill.copy(x) + x = typing.List[int] + assert x == dill.copy(x) + x = typing.Tuple[int, str] + assert x == dill.copy(x) + x = typing.Tuple[int] + assert x == dill.copy(x) + x = typing.Tuple[()] + assert x == dill.copy(x) + x = typing.Tuple[()].copy_with(()) + assert x == dill.copy(x) + return + + +if __name__ == '__main__': + test_frame_related() + test_dict_contents() + test_class() + test_class_descriptors() + test_typing() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_session.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_session.py new file mode 100644 index 0000000000000000000000000000000000000000..200642def22c82d15ccc5fc737f7106b93740084 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_session.py @@ -0,0 +1,280 @@ +#!/usr/bin/env python + +# Author: Leonardo Gama (@leogama) +# Copyright (c) 2022-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE + +import atexit +import os +import sys +import __main__ +from contextlib import suppress +from io import BytesIO + +import dill + +session_file = os.path.join(os.path.dirname(__file__), 'session-refimported-%s.pkl') + +################### +# Child process # +################### + +def _error_line(error, obj, refimported): + import traceback + line = traceback.format_exc().splitlines()[-2].replace('[obj]', '['+repr(obj)+']') + return "while testing (with refimported=%s): %s" % (refimported, line.lstrip()) + +if __name__ == '__main__' and len(sys.argv) >= 3 and sys.argv[1] == '--child': + # Test session loading in a fresh interpreter session. + refimported = (sys.argv[2] == 'True') + dill.load_module(session_file % refimported, module='__main__') + + def test_modules(refimported): + # FIXME: In this test setting with CPython 3.7, 'calendar' is not included + # in sys.modules, independent of the value of refimported. Tried to + # run garbage collection just before loading the session with no luck. It + # fails even when preceding them with 'import calendar'. Needed to run + # these kinds of tests in a supbrocess. Failing test sample: + # assert globals()['day_name'] is sys.modules['calendar'].__dict__['day_name'] + try: + for obj in ('json', 'url', 'local_mod', 'sax', 'dom'): + assert globals()[obj].__name__ in sys.modules + assert 'calendar' in sys.modules and 'cmath' in sys.modules + import calendar, cmath + + for obj in ('Calendar', 'isleap'): + assert globals()[obj] is sys.modules['calendar'].__dict__[obj] + assert __main__.day_name.__module__ == 'calendar' + if refimported: + assert __main__.day_name is calendar.day_name + + assert __main__.complex_log is cmath.log + + except AssertionError as error: + error.args = (_error_line(error, obj, refimported),) + raise + + test_modules(refimported) + sys.exit() + +#################### +# Parent process # +#################### + +# Create various kinds of objects to test different internal logics. + +## Modules. +import json # top-level module +import urllib as url # top-level module under alias +from xml import sax # submodule +import xml.dom.minidom as dom # submodule under alias +import test_dictviews as local_mod # non-builtin top-level module + +## Imported objects. +from calendar import Calendar, isleap, day_name # class, function, other object +from cmath import log as complex_log # imported with alias + +## Local objects. +x = 17 +empty = None +names = ['Alice', 'Bob', 'Carol'] +def squared(x): return x**2 +cubed = lambda x: x**3 +class Person: + def __init__(self, name, age): + self.name = name + self.age = age +person = Person(names[0], x) +class CalendarSubclass(Calendar): + def weekdays(self): + return [day_name[i] for i in self.iterweekdays()] +cal = CalendarSubclass() +selfref = __main__ + +# Setup global namespace for session saving tests. +class TestNamespace: + test_globals = globals().copy() + def __init__(self, **extra): + self.extra = extra + def __enter__(self): + self.backup = globals().copy() + globals().clear() + globals().update(self.test_globals) + globals().update(self.extra) + return self + def __exit__(self, *exc_info): + globals().clear() + globals().update(self.backup) + +def _clean_up_cache(module): + cached = module.__file__.split('.', 1)[0] + '.pyc' + cached = module.__cached__ if hasattr(module, '__cached__') else cached + pycache = os.path.join(os.path.dirname(module.__file__), '__pycache__') + for remove, file in [(os.remove, cached), (os.removedirs, pycache)]: + with suppress(OSError): + remove(file) + +atexit.register(_clean_up_cache, local_mod) + +def _test_objects(main, globals_copy, refimported): + try: + main_dict = __main__.__dict__ + global Person, person, Calendar, CalendarSubclass, cal, selfref + + for obj in ('json', 'url', 'local_mod', 'sax', 'dom'): + assert globals()[obj].__name__ == globals_copy[obj].__name__ + + for obj in ('x', 'empty', 'names'): + assert main_dict[obj] == globals_copy[obj] + + for obj in ['squared', 'cubed']: + assert main_dict[obj].__globals__ is main_dict + assert main_dict[obj](3) == globals_copy[obj](3) + + assert Person.__module__ == __main__.__name__ + assert isinstance(person, Person) + assert person.age == globals_copy['person'].age + + assert issubclass(CalendarSubclass, Calendar) + assert isinstance(cal, CalendarSubclass) + assert cal.weekdays() == globals_copy['cal'].weekdays() + + assert selfref is __main__ + + except AssertionError as error: + error.args = (_error_line(error, obj, refimported),) + raise + +def test_session_main(refimported): + """test dump/load_module() for __main__, both in this process and in a subprocess""" + extra_objects = {} + if refimported: + # Test unpickleable imported object in main. + from sys import flags + extra_objects['flags'] = flags + + with TestNamespace(**extra_objects) as ns: + try: + # Test session loading in a new session. + dill.dump_module(session_file % refimported, refimported=refimported) + from dill.tests.__main__ import python, shell, sp + error = sp.call([python, __file__, '--child', str(refimported)], shell=shell) + if error: sys.exit(error) + finally: + with suppress(OSError): + os.remove(session_file % refimported) + + # Test session loading in the same session. + session_buffer = BytesIO() + dill.dump_module(session_buffer, refimported=refimported) + session_buffer.seek(0) + dill.load_module(session_buffer, module='__main__') + ns.backup['_test_objects'](__main__, ns.backup, refimported) + +def test_session_other(): + """test dump/load_module() for a module other than __main__""" + import test_classdef as module + atexit.register(_clean_up_cache, module) + module.selfref = module + dict_objects = [obj for obj in module.__dict__.keys() if not obj.startswith('__')] + + session_buffer = BytesIO() + dill.dump_module(session_buffer, module) + + for obj in dict_objects: + del module.__dict__[obj] + + session_buffer.seek(0) + dill.load_module(session_buffer, module) + + assert all(obj in module.__dict__ for obj in dict_objects) + assert module.selfref is module + +def test_runtime_module(): + from types import ModuleType + modname = '__runtime__' + runtime = ModuleType(modname) + runtime.x = 42 + + mod = dill.session._stash_modules(runtime) + if mod is not runtime: + print("There are objects to save by referenece that shouldn't be:", + mod.__dill_imported, mod.__dill_imported_as, mod.__dill_imported_top_level, + file=sys.stderr) + + # This is also for code coverage, tests the use case of dump_module(refimported=True) + # without imported objects in the namespace. It's a contrived example because + # even dill can't be in it. This should work after fixing #462. + session_buffer = BytesIO() + dill.dump_module(session_buffer, module=runtime, refimported=True) + session_dump = session_buffer.getvalue() + + # Pass a new runtime created module with the same name. + runtime = ModuleType(modname) # empty + return_val = dill.load_module(BytesIO(session_dump), module=runtime) + assert return_val is None + assert runtime.__name__ == modname + assert runtime.x == 42 + assert runtime not in sys.modules.values() + + # Pass nothing as main. load_module() must create it. + session_buffer.seek(0) + runtime = dill.load_module(BytesIO(session_dump)) + assert runtime.__name__ == modname + assert runtime.x == 42 + assert runtime not in sys.modules.values() + +def test_refimported_imported_as(): + import collections + import concurrent.futures + import types + import typing + mod = sys.modules['__test__'] = types.ModuleType('__test__') + dill.executor = concurrent.futures.ThreadPoolExecutor(max_workers=1) + mod.Dict = collections.UserDict # select by type + mod.AsyncCM = typing.AsyncContextManager # select by __module__ + mod.thread_exec = dill.executor # select by __module__ with regex + + session_buffer = BytesIO() + dill.dump_module(session_buffer, mod, refimported=True) + session_buffer.seek(0) + mod = dill.load(session_buffer) + del sys.modules['__test__'] + + assert set(mod.__dill_imported_as) == { + ('collections', 'UserDict', 'Dict'), + ('typing', 'AsyncContextManager', 'AsyncCM'), + ('dill', 'executor', 'thread_exec'), + } + +def test_load_module_asdict(): + with TestNamespace(): + session_buffer = BytesIO() + dill.dump_module(session_buffer) + + global empty, names, x, y + x = y = 0 # change x and create y + del empty + globals_state = globals().copy() + + session_buffer.seek(0) + main_vars = dill.load_module_asdict(session_buffer) + + assert main_vars is not globals() + assert globals() == globals_state + + assert main_vars['__name__'] == '__main__' + assert main_vars['names'] == names + assert main_vars['names'] is not names + assert main_vars['x'] != x + assert 'y' not in main_vars + assert 'empty' in main_vars + +if __name__ == '__main__': + test_session_main(refimported=False) + test_session_main(refimported=True) + test_session_other() + test_runtime_module() + test_refimported_imported_as() + test_load_module_asdict() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_source.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_source.py new file mode 100644 index 0000000000000000000000000000000000000000..8771a542a27a15140139b3de6645d9bdd0615eed --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_source.py @@ -0,0 +1,154 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2008-2016 California Institute of Technology. +# Copyright (c) 2016-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE + +from dill.source import getsource, getname, _wrap, likely_import +from dill.source import getimportable +from dill._dill import IS_PYPY + +import sys +PY310b = 0x30a00b1 + +f = lambda x: x**2 +def g(x): return f(x) - x + +def h(x): + def g(x): return x + return g(x) - x + +class Foo(object): + def bar(self, x): + return x*x+x +_foo = Foo() + +def add(x,y): + return x+y + +# yes, same as 'f', but things are tricky when it comes to pointers +squared = lambda x:x**2 + +class Bar: + pass +_bar = Bar() + + # inspect.getsourcelines # dill.source.getblocks +def test_getsource(): + assert getsource(f) == 'f = lambda x: x**2\n' + assert getsource(g) == 'def g(x): return f(x) - x\n' + assert getsource(h) == 'def h(x):\n def g(x): return x\n return g(x) - x\n' + assert getname(f) == 'f' + assert getname(g) == 'g' + assert getname(h) == 'h' + assert _wrap(f)(4) == 16 + assert _wrap(g)(4) == 12 + assert _wrap(h)(4) == 0 + + assert getname(Foo) == 'Foo' + assert getname(Bar) == 'Bar' + assert getsource(Bar) == 'class Bar:\n pass\n' + assert getsource(Foo) == 'class Foo(object):\n def bar(self, x):\n return x*x+x\n' + #XXX: add getsource for _foo, _bar + +# test itself +def test_itself(): + assert likely_import(likely_import)=='from dill.source import likely_import\n' + +# builtin functions and objects +def test_builtin(): + assert likely_import(pow) == 'pow\n' + assert likely_import(100) == '100\n' + assert likely_import(True) == 'True\n' + assert likely_import(pow, explicit=True) == 'from builtins import pow\n' + assert likely_import(100, explicit=True) == '100\n' + assert likely_import(True, explicit=True) == 'True\n' + # this is kinda BS... you can't import a None + assert likely_import(None) == 'None\n' + assert likely_import(None, explicit=True) == 'None\n' + + +# other imported functions +def test_imported(): + from math import sin + assert likely_import(sin) == 'from math import sin\n' + +# interactively defined functions +def test_dynamic(): + assert likely_import(add) == 'from %s import add\n' % __name__ + # interactive lambdas + assert likely_import(squared) == 'from %s import squared\n' % __name__ + +# classes and class instances +def test_classes(): + from io import BytesIO as StringIO + y = "from _io import BytesIO\n" + x = y if (IS_PYPY or sys.hexversion >= PY310b) else "from io import BytesIO\n" + s = StringIO() + + assert likely_import(StringIO) == x + assert likely_import(s) == y + # interactively defined classes and class instances + assert likely_import(Foo) == 'from %s import Foo\n' % __name__ + assert likely_import(_foo) == 'from %s import Foo\n' % __name__ + + +# test getimportable +def test_importable(): + assert getimportable(add) == 'from %s import add\n' % __name__ + assert getimportable(squared) == 'from %s import squared\n' % __name__ + assert getimportable(Foo) == 'from %s import Foo\n' % __name__ + assert getimportable(Foo.bar) == 'from %s import bar\n' % __name__ + assert getimportable(_foo.bar) == 'from %s import bar\n' % __name__ + assert getimportable(None) == 'None\n' + assert getimportable(100) == '100\n' + + assert getimportable(add, byname=False) == 'def add(x,y):\n return x+y\n' + assert getimportable(squared, byname=False) == 'squared = lambda x:x**2\n' + assert getimportable(None, byname=False) == 'None\n' + assert getimportable(Bar, byname=False) == 'class Bar:\n pass\n' + assert getimportable(Foo, byname=False) == 'class Foo(object):\n def bar(self, x):\n return x*x+x\n' + assert getimportable(Foo.bar, byname=False) == 'def bar(self, x):\n return x*x+x\n' + assert getimportable(Foo.bar, byname=True) == 'from %s import bar\n' % __name__ + assert getimportable(Foo.bar, alias='memo', byname=True) == 'from %s import bar as memo\n' % __name__ + assert getimportable(Foo, alias='memo', byname=True) == 'from %s import Foo as memo\n' % __name__ + assert getimportable(squared, alias='memo', byname=True) == 'from %s import squared as memo\n' % __name__ + assert getimportable(squared, alias='memo', byname=False) == 'memo = squared = lambda x:x**2\n' + assert getimportable(add, alias='memo', byname=False) == 'def add(x,y):\n return x+y\n\nmemo = add\n' + assert getimportable(None, alias='memo', byname=False) == 'memo = None\n' + assert getimportable(100, alias='memo', byname=False) == 'memo = 100\n' + assert getimportable(add, explicit=True) == 'from %s import add\n' % __name__ + assert getimportable(squared, explicit=True) == 'from %s import squared\n' % __name__ + assert getimportable(Foo, explicit=True) == 'from %s import Foo\n' % __name__ + assert getimportable(Foo.bar, explicit=True) == 'from %s import bar\n' % __name__ + assert getimportable(_foo.bar, explicit=True) == 'from %s import bar\n' % __name__ + assert getimportable(None, explicit=True) == 'None\n' + assert getimportable(100, explicit=True) == '100\n' + + +def test_numpy(): + try: + from numpy import array + x = array([1,2,3]) + assert getimportable(x) == 'from numpy import array\narray([1, 2, 3])\n' + assert getimportable(array) == 'from %s import array\n' % array.__module__ + assert getimportable(x, byname=False) == 'from numpy import array\narray([1, 2, 3])\n' + assert getimportable(array, byname=False) == 'from %s import array\n' % array.__module__ + except ImportError: pass + +#NOTE: if before likely_import(pow), will cause pow to throw AssertionError +def test_foo(): + assert getimportable(_foo, byname=False).startswith("import dill\nclass Foo(object):\n def bar(self, x):\n return x*x+x\ndill.loads(") + +if __name__ == '__main__': + test_getsource() + test_itself() + test_builtin() + test_imported() + test_dynamic() + test_classes() + test_importable() + test_numpy() + test_foo() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_temp.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_temp.py new file mode 100644 index 0000000000000000000000000000000000000000..30ae35a31b0c6f468a9602387f22cddd93ead4f0 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_temp.py @@ -0,0 +1,103 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2008-2016 California Institute of Technology. +# Copyright (c) 2016-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE + +import sys +from dill.temp import dump, dump_source, dumpIO, dumpIO_source +from dill.temp import load, load_source, loadIO, loadIO_source +WINDOWS = sys.platform[:3] == 'win' + + +f = lambda x: x**2 +x = [1,2,3,4,5] + +# source code to tempfile +def test_code_to_tempfile(): + if not WINDOWS: #see: https://bugs.python.org/issue14243 + pyfile = dump_source(f, alias='_f') + _f = load_source(pyfile) + assert _f(4) == f(4) + +# source code to stream +def test_code_to_stream(): + pyfile = dumpIO_source(f, alias='_f') + _f = loadIO_source(pyfile) + assert _f(4) == f(4) + +# pickle to tempfile +def test_pickle_to_tempfile(): + if not WINDOWS: #see: https://bugs.python.org/issue14243 + dumpfile = dump(x) + _x = load(dumpfile) + assert _x == x + +# pickle to stream +def test_pickle_to_stream(): + dumpfile = dumpIO(x) + _x = loadIO(dumpfile) + assert _x == x + +### now testing the objects ### +f = lambda x: x**2 +def g(x): return f(x) - x + +def h(x): + def g(x): return x + return g(x) - x + +class Foo(object): + def bar(self, x): + return x*x+x +_foo = Foo() + +def add(x,y): + return x+y + +# yes, same as 'f', but things are tricky when it comes to pointers +squared = lambda x:x**2 + +class Bar: + pass +_bar = Bar() + + +# test function-type objects that take 2 args +def test_two_arg_functions(): + for obj in [add]: + pyfile = dumpIO_source(obj, alias='_obj') + _obj = loadIO_source(pyfile) + assert _obj(4,2) == obj(4,2) + +# test function-type objects that take 1 arg +def test_one_arg_functions(): + for obj in [g, h, squared]: + pyfile = dumpIO_source(obj, alias='_obj') + _obj = loadIO_source(pyfile) + assert _obj(4) == obj(4) + +# test instance-type objects +#for obj in [_bar, _foo]: +# pyfile = dumpIO_source(obj, alias='_obj') +# _obj = loadIO_source(pyfile) +# assert type(_obj) == type(obj) + +# test the rest of the objects +def test_the_rest(): + for obj in [Bar, Foo, Foo.bar, _foo.bar]: + pyfile = dumpIO_source(obj, alias='_obj') + _obj = loadIO_source(pyfile) + assert _obj.__name__ == obj.__name__ + + +if __name__ == '__main__': + test_code_to_tempfile() + test_code_to_stream() + test_pickle_to_tempfile() + test_pickle_to_stream() + test_two_arg_functions() + test_one_arg_functions() + test_the_rest() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_weakref.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_weakref.py new file mode 100644 index 0000000000000000000000000000000000000000..df5cbce9309e45b56a84b1d605f69586b68876cf --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/dill/tests/test_weakref.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python +# +# Author: Mike McKerns (mmckerns @caltech and @uqfoundation) +# Copyright (c) 2008-2016 California Institute of Technology. +# Copyright (c) 2016-2024 The Uncertainty Quantification Foundation. +# License: 3-clause BSD. The full license text is available at: +# - https://github.com/uqfoundation/dill/blob/master/LICENSE + +import dill +dill.settings['recurse'] = True +import weakref + +class _class: + def _method(self): + pass + +class _callable_class: + def __call__(self): + pass + +def _function(): + pass + + +def test_weakref(): + o = _class() + oc = _callable_class() + f = _function + x = _class + + # ReferenceType + r = weakref.ref(o) + d_r = weakref.ref(_class()) + fr = weakref.ref(f) + xr = weakref.ref(x) + + # ProxyType + p = weakref.proxy(o) + d_p = weakref.proxy(_class()) + + # CallableProxyType + cp = weakref.proxy(oc) + d_cp = weakref.proxy(_callable_class()) + fp = weakref.proxy(f) + xp = weakref.proxy(x) + + objlist = [r,d_r,fr,xr, p,d_p, cp,d_cp,fp,xp] + #dill.detect.trace(True) + + for obj in objlist: + res = dill.detect.errors(obj) + if res: + print ("%r:\n %s" % (obj, res)) + # else: + # print ("PASS: %s" % obj) + assert not res + +def test_dictproxy(): + from dill._dill import DictProxyType + try: + m = DictProxyType({"foo": "bar"}) + except Exception: + m = type.__dict__ + mp = dill.copy(m) + assert mp.items() == m.items() + + +if __name__ == '__main__': + test_weakref() + from dill._dill import IS_PYPY + if not IS_PYPY: + test_dictproxy() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/fsspec/implementations/tests/cassettes/test_dbfs/test_dbfs_read_range_chunked.yaml b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/fsspec/implementations/tests/cassettes/test_dbfs/test_dbfs_read_range_chunked.yaml new file mode 100644 index 0000000000000000000000000000000000000000..8654492a1eff34cd0f618cc67513edb55e36bdf9 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/fsspec/implementations/tests/cassettes/test_dbfs/test_dbfs_read_range_chunked.yaml @@ -0,0 +1,1355 @@ +interactions: +- request: + body: '{"path": "/FileStore/large_file.txt", "recursive": false}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '57' + Content-Type: + - application/json + User-Agent: + - python-requests/2.31.0 + authorization: + - DUMMY + method: POST + uri: https://my_instance.com/api/2.0/dbfs/delete + response: + body: + string: '{}' + headers: + access-control-allow-headers: + - Authorization, X-Databricks-Azure-Workspace-Resource-Id, X-Databricks-Org-Id, + Content-Type + access-control-allow-origin: + - '*' + cache-control: + - no-cache, no-store, must-revalidate + content-length: + - '2' + content-type: + - application/json + expires: + - '0' + pragma: + - no-cache + server: + - databricks + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"path": "/FileStore/"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '23' + Content-Type: + - application/json + User-Agent: + - python-requests/2.31.0 + authorization: + - DUMMY + method: GET + uri: https://my_instance.com/api/2.0/dbfs/list + response: + body: + string: !!binary | + H4sIAAAAAAAEA5yTQW7DIBBF7zJrV4FgBtsH6AW6rCJrWkhDaxcLJoraKHcvtbehUmE5Ev9/3nyu + cPSTSzA8X2EhPsEAu8c8eeIQ3c4S00QfDhrwabQ+wsDx7Jr10pj8t4NBNDAH64/+ldiHz5H9nKfS + iFYhivXcmnvifl5C5IfE9FZjgFIo1Fq12eK+wTvFVJFc96iV7NAUhfN73VQjjUYp7CV2RellClyl + LDqt2y5DKdFYvijGcKkAklfZC6nbMul0oujseM7pydbFN53e4x/xmV5+e/r/Im49MX2ZzBY759++ + QpWFFLgXK6DD7QcAAP//AwD4cmNjVAMAAA== + headers: + access-control-allow-headers: + - Authorization, X-Databricks-Azure-Workspace-Resource-Id, X-Databricks-Org-Id, + Content-Type + access-control-allow-origin: + - '*' + cache-control: + - no-cache, no-store, must-revalidate + content-encoding: + - gzip + content-type: + - application/json + expires: + - '0' + pragma: + - no-cache + server: + - databricks + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"path": "/FileStore/large_file.txt", "overwrite": true}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '56' + Content-Type: + - application/json + User-Agent: + - python-requests/2.31.0 + authorization: + - DUMMY + method: POST + uri: https://my_instance.com/api/2.0/dbfs/create + response: + body: + string: '{"handle":2535467089908046}' + headers: + access-control-allow-headers: + - Authorization, X-Databricks-Azure-Workspace-Resource-Id, X-Databricks-Org-Id, + Content-Type + access-control-allow-origin: + - '*' + cache-control: + - no-cache, no-store, must-revalidate + content-length: + - '27' + content-type: + - application/json + expires: + - '0' + pragma: + - no-cache + server: + - databricks + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"handle": 2535467089908046, "data": "VGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVA=="}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1398144' + Content-Type: + - application/json + User-Agent: + - python-requests/2.31.0 + authorization: + - DUMMY + method: POST + uri: https://my_instance.com/api/2.0/dbfs/add-block + response: + body: + string: '{}' + headers: + access-control-allow-headers: + - Authorization, X-Databricks-Azure-Workspace-Resource-Id, X-Databricks-Org-Id, + Content-Type + access-control-allow-origin: + - '*' + cache-control: + - no-cache, no-store, must-revalidate + content-length: + - '2' + content-type: + - application/json + expires: + - '0' + pragma: + - no-cache + server: + - databricks + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"handle": 2535467089908046, "data": "aGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaGlzIGlzIGEgdGVzdApUaA=="}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1398144' + Content-Type: + - application/json + User-Agent: + - python-requests/2.31.0 + authorization: + - DUMMY + method: POST + uri: https://my_instance.com/api/2.0/dbfs/add-block + response: + body: + string: '{}' + headers: + access-control-allow-headers: + - Authorization, X-Databricks-Azure-Workspace-Resource-Id, X-Databricks-Org-Id, + Content-Type + access-control-allow-origin: + - '*' + cache-control: + - no-cache, no-store, must-revalidate + content-length: + - '2' + content-type: + - application/json + expires: + - '0' + pragma: + - no-cache + server: + - databricks + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"handle": 2535467089908046, "data": "aXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaXMgaXMgYSB0ZXN0ClRoaQ=="}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1398144' + Content-Type: + - application/json + User-Agent: + - python-requests/2.31.0 + authorization: + - DUMMY + method: POST + uri: https://my_instance.com/api/2.0/dbfs/add-block + response: + body: + string: '{}' + headers: + access-control-allow-headers: + - Authorization, X-Databricks-Azure-Workspace-Resource-Id, X-Databricks-Org-Id, + Content-Type + access-control-allow-origin: + - '*' + cache-control: + - no-cache, no-store, must-revalidate + content-length: + - '2' + content-type: + - application/json + expires: + - '0' + pragma: + - no-cache + server: + - databricks + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"handle": 2535467089908046, "data": "cyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKVGhpcyBpcyBhIHRlc3QKRm9yIHRoaXMgaXMgdGhlIGVuZAo="}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '1048644' + Content-Type: + - application/json + User-Agent: + - python-requests/2.31.0 + authorization: + - DUMMY + method: POST + uri: https://my_instance.com/api/2.0/dbfs/add-block + response: + body: + string: '{}' + headers: + access-control-allow-headers: + - Authorization, X-Databricks-Azure-Workspace-Resource-Id, X-Databricks-Org-Id, + Content-Type + access-control-allow-origin: + - '*' + cache-control: + - no-cache, no-store, must-revalidate + content-length: + - '2' + content-type: + - application/json + expires: + - '0' + pragma: + - no-cache + server: + - databricks + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"handle": 2535467089908046}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '28' + Content-Type: + - application/json + User-Agent: + - python-requests/2.31.0 + authorization: + - DUMMY + method: POST + uri: https://my_instance.com/api/2.0/dbfs/close + response: + body: + string: '{}' + headers: + access-control-allow-headers: + - Authorization, X-Databricks-Azure-Workspace-Resource-Id, X-Databricks-Org-Id, + Content-Type + access-control-allow-origin: + - '*' + cache-control: + - no-cache, no-store, must-revalidate + content-length: + - '2' + content-type: + - application/json + expires: + - '0' + pragma: + - no-cache + server: + - databricks + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"path": "/FileStore"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '22' + Content-Type: + - application/json + User-Agent: + - python-requests/2.31.0 + authorization: + - DUMMY + method: GET + uri: https://my_instance.com/api/2.0/dbfs/list + response: + body: + string: !!binary | + H4sIAAAAAAAEA5yTTW7DIBCF78LaTcAYjH2AXqDLKrKmNU5ocLFgov5EuXuxvUmlECmwHIn33nwz + cyaDsTqQ9vVMJsADacn2OVZe0Hm97QHBwlGTgpjQ9caTFv1JF8unLphfTVpakNH1ZjDvgMZ9dmjG + WGU1rbiUdHmX4pa4GSfn8Skg7HMMJKNcCsGraHHb4AN8yEguGik4U7JOClvwe93N4Db4jVcWA9jw + nw5veMlUmlFDmYidpFqIZLXNaULWnMuGSZWUnqzDLGWqhKjUndDTD3jvvq64PLA0M5AqPdNwAK/7 + 7hTTQ58Xv1ailHfiI7zNF/H4yq8bWTfpca6xY/716LIsGJUlXQDtLn8AAAD//wMAWYozSL4DAAA= + headers: + access-control-allow-headers: + - Authorization, X-Databricks-Azure-Workspace-Resource-Id, X-Databricks-Org-Id, + Content-Type + access-control-allow-origin: + - '*' + cache-control: + - no-cache, no-store, must-revalidate + content-encoding: + - gzip + content-type: + - application/json + expires: + - '0' + pragma: + - no-cache + server: + - databricks + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"path": "/FileStore/large_file.txt", "offset": 8, "length": 1048576}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '69' + Content-Type: + - application/json + User-Agent: + - python-requests/2.31.0 + authorization: + - DUMMY + method: GET + uri: https://my_instance.com/api/2.0/dbfs/read + response: + body: + string: !!binary | + H4sIAAAAAAAEA+zWsQ6CUAwF0H/p7PBIUAkjzjjIAizkEYiLCYmyGH/e+BkmZ+jSsWl7zyfm976+ + pueal6iLVFbH8+kQS95z1DF0TRr7a7o8blvu2/uv9MzAHrgF/8BPlAuykQ8YiQmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ8P9N+AUAAP// + 7NgxDQAAAMMg/64xgoU9JdvzG+z5nu/5nu/5nv94fjxN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN + 2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN + 2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN + 2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRN2IRNCAAA///s1iEBAAAAgKD/r51h4QIJJ2TghE7ohE7o + hE7ohE7ohE7ohE7ohE7ohE7ohE7ohE7ohE7ohE7ohE7ohE7ohE7ohE7ohE7ohE7ohE7ohE7ohE7o + hE7ohE7ohE7ohE7ohE7ohE7ohE7ohE7ohE7ohN8JAwAA///s1iEBAAAAgKD/r51h4QIJ9gx83Md9 + 3Md93Md93Med0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd + 0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd8DthAAAA///s1rEAAAAAwCB/64Esha7YM/Bx + H/dxH/dxH/dxH3dCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ7yfMAAAAP//7NghDQAAAICw/q2JgXkF1AcPacBDPMRDPMRDPMRDHhkTMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETfiYMAAD//+zWIQEAAACAoP+vnWHhAgn2DHzcx33cx33cx33cx53QCZ3QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3wO2EAAAD//+zWIQEAAACAoP+vnWHhAgn2DHzcx33cx33cx33cx53QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3QCZ3wO2EAAAD//+zWIQEAAACAoP+vnWHhAgn2DHzcx33cx33cx33cx53QCZ3Q + CZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCa8TBgAA///s1iENAAAAgLD+rYmBeQI21HU9YFEW + ZVEWZVEWZVEWZUImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEIm + ZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZMLPhAEAAP//7NaxAAAAAMAgf+uBLIWu2DPw + cR/3cR/3cR/3cR93Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qie8nzAAAAD//+zYIQ0AAACAsP6tiYF5BdQHD2nAQzzEQzzEQzzEQx4ZEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhE34mDAAA///s1iEBAAAAgKD/r51h4QIJ9gx83Md93Md93Md93Med0Amd0Amd0Amd + 0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd + 0Amd0Amd0Amd0Amd8DthAAAA///s1iEBAAAAgKD/r71h4AIJ9gx83Md93Md93Md93Med0Amd0Amd + 0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd + 0Amd0Amd8HHCAAAA///s2DENAAAAgzD/rpHBUwt7aKbJNtBkTdZkTdZkTfbT+GmYkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZ8DNhAAAA///s1rEAAAAAwCB/64Esha7YM/BxH/dxH/dxH/dxH3dCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJzyeMAAA + AP//7NcxDQAAAIMw/66xwVELy47i9zbwey2khbSQFtJCWkgLMSETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMuHDhAEAAP// + 7NgxDQAAAIMw/66RwVMLe2imyTbQZE3WZE3WZE320/hpmJAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmfAz + YQAAAP//7NaxAAAAAMAgf+uBLIWu2DPwcR/3cR/3cR/3cR93Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qic8njAAAAD//+zXMQ0AAACDMP+u + kcFTC8uO4vc28HstpIW0kBbSQlpICzEhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhE14m + DAAA///s1jENAAAAgKD+rQ0iCdy80PWARVmURVmURVmURVmUCZmQCZmQCZmQCZmQCZmQCZmQCZmQ + CZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQ + CZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQ + CZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZnwbsIAAAD//+zYMQ0AAACAoP6tDSIVvJg8pAEP + 8RAP8RAP8RAPeWRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRHEwYAAP//7NcxDQAAAIMw/66RwVMLy47i9zbwey2khbSQFtJCWkgLMSET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMuFnwgAAAP//7NYhAQAAAICg/6+9YeACCfYMfNzHfdzHfdzHfdzH + ndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJ + ndAJndAJndAJndAJnfBxwgAAAP//7NgxDQAAAIMw/66RwVMLe2imyTbQZE3WZE3WZE320/hpmJAJ + mZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJmZAJmZAJmZAJmfAzYQAAAP//7NaxAAAAAMAgf+uBLIWu2DPwcR/3cR/3cR/3cR93 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qic8njAAAAD//+zXMQ0AAACDMP+uEUItLDuK39vA77WQFtJCWkgLaSEtxIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIQ/ + EwYAAP//7NchAQAAAIOw/q2pgViF3wyf20AH6AAdoAN0gA7QATqACZmQCZmQCZmQCZmQCZmQCZmQ + CZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCR8mDAAA + ///s2DENAAAAgzD/rpHBUwt7aKbJNtBkTdZkTdZkTfbT+GmYkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + 8DNhAAAA///s1rEAAAAAwCB/64Esha7YM/BxH/dxH/dxH/dxH3dCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJzyeMAAAAP//7NcxDQAAAIMw + /64RQi0sO4rf28DvtZAW0kJaSAtpIS3EhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzI + hEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzI + hEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzI + hEzIhEzIhEzIhEzIhEzIhEx4N2EAAAD//+zYIQ0AAACAsP6tiYF5BdQHD2nAQzzEQzzEQzzEQx4Z + EzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzIhEzIhEzIhE34mDAAA///s1iEBAAAAgKD/r51h4QIJ9gx83Md93Md93Md9 + 3Med0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd + 0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd8DthAAAA///s1rEAAAAAwCB/64Esha7YM/BxH/dxH/dx + H/dxH3dCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ7yf + MAAAAP//7NgxDQAAAICg/q0NIhW8mDykAQ/xEA/xEA/xEA95ZEzIhEzIhEzIhEzIhEzIhEzIhEzI + hEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzI + hEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzI + hEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEcTBgAA///s1zENAAAAgzD/ + rrHBUQvLjuL3NvB7LaSFtJAW0kJaSAsxIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMy + IRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMy4cOEAQAA///s2DENAAAAgzD/rhFC + LeyhmSbbQJM1WZM1WZM12U/jp2FCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJjyaMAAAAP//7NcxDQAAAIMw/64RQi0sO4rf28DvtZAW0kJa + SAtpIS3EhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzI + hEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzI + hEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEx4 + N2EAAAD//+zYIQ0AAACAsP6tiYF5BdQHD2nAQzzEQzzEQzzEQx4ZEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhE34mDAAA///s1rEAAAAAwCB/64Esha7YM/BxH/dxH/dxH/dxH3dCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJzyeMAAAAP//7NcxDQAA + AIMw/66xwVELy47i9zbwey2khbSQFtJCWkgLMSETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMuHDhAEAAP//7NgxDQAAAIMw + /66RwVMLe2imyTbQZE3WZE3WZE320/hpmJAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmfAzYQAAAP//7Nax + AAAAAMAgf+uBLIWu2DPwcR/3cR/3cR/3cR93Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qic8njAAAAD//+zXMQ0AAACDMP+uscFRC8uO4vc2 + 8HstpIW0kBbSQlpICzEhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzLhw4QBAAD//+zYMQ0AAACDMP+uEUIt7KGZJttAkzVZ + kzVZkzXZT+OnYUImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEIm + ZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEIm + ZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEIm + ZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEIm + ZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEIm + ZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEIm + ZEImZEImZEImZEImZEImZEImZEImZMKfCQMAAP//7NchAQAAAIOw/q2JgVmF3wyf20AH6AAdoAN0 + gA7QATqACZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQ + CZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCT8TBgAA///s1iEBAAAAgKD/r51h4QIJ9gx83Md9 + 3Md93Md93Med0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd + 0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd8DthAAAA///s1rEAAAAAwCB/64Esha7YM/Bx + H/dxH/dxH/dxH3dCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ7yfMAAAAP//7NghDQAAAICw/q1pgXoF1AcPacBDPMRDPMRDPMRDHhkTMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETfiYMAAD//+zXMQkAAADDMP+u + K6NPLAwGqb/ZwN/8TYNpMA2mwTSYBmNCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmTCz4QBAAD//+zWsQAA + AADAIH/rgSyFrtgz8HEf93Ef93Ef93Efd0IndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIn + dEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIn + dEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIn + dEIndEIndEIndEIndEIndEInvJ8wAAAA///s2DERAAAIAzEv+KgIBNU7Lphi4afc85AGPMRDPMRD + PMRDPOSRMSETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETvplwk+kBAAD//wMATqhKM3hVFQA= + headers: + access-control-allow-headers: + - Authorization, X-Databricks-Azure-Workspace-Resource-Id, X-Databricks-Org-Id, + Content-Type + access-control-allow-origin: + - '*' + cache-control: + - no-cache, no-store, must-revalidate + content-encoding: + - gzip + content-type: + - application/json + expires: + - '0' + pragma: + - no-cache + server: + - databricks + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"path": "/FileStore/large_file.txt", "offset": 1048584, "length": 1048576}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '75' + Content-Type: + - application/json + User-Agent: + - python-requests/2.31.0 + authorization: + - DUMMY + method: GET + uri: https://my_instance.com/api/2.0/dbfs/read + response: + body: + string: !!binary | + H4sIAAAAAAAEA+zWMQ6CYAwG0Lt0dpCoQBhd1DDBwEp+gYTBwQgL8fKGY5i8oUvHpu33vvHc1mnp + P1Mao8qO5/JS5IcY05qiise9fQ2npu5u83vYrnvNemZgD9yCf+AnygXZyAeMxIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM+P8m/AEAAP// + 7NgxDQAAAIMw/66RwVMLe2im5zbQcz3Xcz3Xcz338fh4mJAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJPxMGAAD//+zWIQEAAACAoP+vnWHhAgn2DHzcx33cx33cx33cx53QCZ3QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3wO2EAAAD//+zWIQEAAACAoP+vnWHhAgn2DHzcx33cx33cx33cx53QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3QCZ3wO2EAAAD//+zWsQAAAADAIH/rgSyFrtgz8HEf93Ef93Ef93Efd0IndEIn + dEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIn + dEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIn + dEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEInvJ8wAAAA///s2DEN + AAAAgKD+rQ0iFbyYPKQBD/EQD/EQD/EQD3lkTMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiERxMGAAD//+zXMQ0AAACDMP+uscFRC8uO4vc2 + 8HstpIW0kBbSQlpICzEhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzLhw4QBAAD//+zYMQ0AAACDMP+ukcFTC3topsk20GRN + 1mRN1mRN9tP4aZiQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQ + CZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZnwM2EAAAD//+zWIQEAAACAoP+vnWHhAgn2 + DHzcx33cx33cx33cx53QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3wO2EAAAD//+zWsQAAAADAIH/rgSyF + rtgz8HEf93Ef93Ef93Efd0IndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIn + dEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIn + dEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIn + dEIndEIndEInvJ8wAAAA///s2CENAAAAgLD+rYmBeQXUBw9pwEM8xEM8xEM8xEMeGRMyIRMyIRMy + IRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMy + IRMyIRMyIRMyIRMyIRN+JgwAAP//7NYhAQAAAICg/6+dYeECCfYMfNzHfdzHfdzHfdzHndAJndAJ + ndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJ + ndAJndAJndAJndAJndAJnfA7YQAAAP//7NaxAAAAAMAgf+uBLIWu2DPwcR/3cR/3cR/3cR93Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qie8nzAAAAD//+zY + IQ0AAACAsP6taYF6BdQHD2nAQzzEQzzEQzzEQx4ZEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzLhacIAAAD//+zXMQ0AAACDMP+ukcFTCzuW4nNs4HN8js/RoTpUh+pQHcqE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETHiZMAAAAP//7NYhDQAAAICw/q2JgXkCNtR1 + PWBRFmVRFmVRFmVRFmVCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJrxMGAAAAP//7NYh + DQAAAICw/q2JgXkCNtR1PWBRFmVRFmVRFmVRFmVCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJrxMGAAAAP//7NYxDQAAAICg/q0NIgncvND1gEVZlEVZlEVZlEVZlAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ8GjCAAAA///s1zEN + AAAAgzD/rpHBUwvLjuL3NvB7LaSFtJAW0kJaSAsxIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMy + IRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMy4WfCAAAA + ///s1iEBAAAAgKD/r51h4QIJ9gx83Md93Md93Md93Med0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd + 0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd + 0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd + 0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd + 0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd + 0Amd0Amd0AmvEwYAAP//7NYxDQAAAICg/q0NIgncvND1gEVZlEVZlEVZlEVZlAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ8G7CAAAA///s2DENAAAAgKD+ + rQ0iFbyYPKQBD/EQD/EQD/EQD3lkTMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiERxMGAAD//+zXMQ0AAACDMP+ukcFTC8uO4vc28HstpIW0 + kBbSQlpICzEhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzLhZ8IAAAD//+zWsQAAAADAIH/rgSyFrtgz8HEf + 93Ef93Ef93Efd0IndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIn + dEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIn + dEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIn + dEInvJ8wAAAA///s2CENAAAAgLD+rYmBeQXUBw9pwEM8xEM8xEM8xEMeGRMyIRMyIRMyIRMyIRMy + IRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMy + IRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMy + IRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMy + IRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMy + IRMyIRMyIRMyIRMyIRMyIRMy4WXCAAAA///s1iENAAAAgLD+rYmBeQI21HU9YFEWZVEWZVEWZVEW + ZUImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEIm + ZEImZEImZEImZEImZEImZEImZEImZMLPhAEAAP//7NaxAAAAAMAgf+uBLIWu2DPwcR/3cR/3cR/3 + cR93Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qic8njAAAAD//+zXMQ0AAACDMP+uEUItLDuK39vA77WQFtJCWkgLaSEtxIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMeDdhAAAA///s2DENAAAAgKD+ + rQ0iFbyYPKQBD/EQD/EQD/EQD3lkTMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETPgzYQAAAP//7NchAQAAAIOw/q2JgVmF + 3wyf20AH6AAdoAN0gA7QATqACZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQ + CZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCT8TBgAA///s1rEAAAAAwCB/ + 64Esha7YM/BxH/dxH/dxH/dxH3dCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3TC3wkDAAD//+zXIQEAAACDsP6tiYFZhd8M + n9tAB+gAHaADdIAO0AE6gAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ8DJhAAAA///s + 1jENAAAAgKD+rQ0iCdy80PWARVmURVmURVmURVmUCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQ + CZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQ + CZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQ + CZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZnwaMIAAAD//+zXMQ0AAACDMP+uEUItLDuK + 39vA77WQFtJCWkgLaSEtxIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIQ/EwYAAP//7NchAQAAAIOw/q2pgViF3wyf20AH + 6AAdoAN0gA7QATqACZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQ + CZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCR8mDAAA///s2DENAAAAgzD/rhFCLeyhmSbbQJM1WZM1 + WZM12U/jp2FCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJjyaMAAAAP//7NcxDQAAAIMw/66RwVMLy47i9zbwey2khbSQFtJCWkgLMSETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETXiYMAAD//+zWIQ0AAACAsP6tiYF5AjbUdT1gURZl + URZlURZlURZlQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkws+EAQAA///s1rEAAAAAwCB/64Esha7YM/Bx + H/dxH/dxH/dxH3dCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ7yfMAAAAP//7NghDQAAAICw/q2JgXkF1AcPacBDPMRDPMRDPMRDHhkTMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETfiYMAAD//+zWIQEAAACAoP+vnWHhAgn2DHzcx33cx33cx33cx53QCZ3QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3wO2EAAAD//+zWIQEAAACAoP+vnWHhAgn2DHzcx33cx33cx33cx53QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3QCZ3wO2EAAAD//+zWsQAAAADAIH/rgSyFrtgz8HEf93Ef93Ef93Efd0IndEIn + dEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIn + dEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIn + dEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEInvJ8wAAAA///s2DER + AAAIAzEv+OiAsHpHCLHwU+55SAMe4iEe4iEe4iEe8siYkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAnfmXCT6QEAAP//AwDpJykzeFUVAA== + headers: + access-control-allow-headers: + - Authorization, X-Databricks-Azure-Workspace-Resource-Id, X-Databricks-Org-Id, + Content-Type + access-control-allow-origin: + - '*' + cache-control: + - no-cache, no-store, must-revalidate + content-encoding: + - gzip + content-type: + - application/json + expires: + - '0' + pragma: + - no-cache + server: + - databricks + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"path": "/FileStore/large_file.txt", "offset": 2097160, "length": 1048576}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '75' + Content-Type: + - application/json + User-Agent: + - python-requests/2.31.0 + authorization: + - DUMMY + method: GET + uri: https://my_instance.com/api/2.0/dbfs/read + response: + body: + string: !!binary | + H4sIAAAAAAAEA+zXMQ6CUAwG4Lt0ZtAExLA5kBcOICt55hEXByMs4OWNXsH1G7p0/NO0X99x29Z5 + mV5zLtEdD/W5aU9VlLzm6KKkcS+X5zWnxz78qr/ryWBIMpDBdyeYAxmYA7eRDxiJE1nZv+A/YkIm + ZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEIm + ZEImZEImZEImZEImZML/TfgBAAD//+zXMQkAAADDMP+uK6NPLAwGqR/ZwI/8SFtpK22lrbSVtmJC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmTCz4QBAAD//+zWIQEAAAAAkP+vHXFB0r7Bj//4j//4j//4j//4 + Ez7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7h + Ez7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7h + Ez7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEz7hEwIAAP// + 7NaxAAAAAMAgf+uBLIWunJCBEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqh + EzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqh + EzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqh + EzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzqhEzrh8YQBAAD//+zXMQ0AAACDMP+uEUItLDuK + 39vA77WQFtJCWkgLaSEtxIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMeDdhAAAA///s2DENAAAAgKD+rQ0iFbyYPKQBD/EQD/EQD/EQD3lkTMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiERxMGAAD/ + /+zXMQ0AAACDMP+uEUItLDuK39vA77WQFtJCWkgLaSEtxIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMeDdhAAAA///s2CENAAAAgLD+rWmBegXUBw9pwEM8 + xEM8xEM8xEMeGRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMy + IRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMy + IRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMy + IRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMy + IRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMy4WnCAAAA + ///s1zENAAAAgzD/rhFCLexYis+xgc/xOT5Hh+pQHapDdSgTMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMuHdhAEAAP//7NghDQAAAICw/q2JgXkF1AcPacBD + PMRDPMRDPMRDHhkTMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETfiYMAAD//+zWsQAAAADAIH/rgSyFrtgz + 8HEf93Ef93Ef93Efd0IndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIn + dEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIn + dEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIn + dEIndEInvJ8wAAAA///s2DENAAAAgKD+rQ0iFbyYPKQBD/EQD/EQD/EQD3lkTMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiERxMGAAD//+zX + MQ0AAACDMP+ukcFTC8uO4vc28HstpIW0kBbSQlpICzEhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhE14mDAAA///s1iENAAAAgLD+rYmBeQI21HU9YFEWZVEWZVEWZVEWZUImZEImZEImZEIm + ZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEImZEIm + ZEImZEImZEImZMLPhAEAAP//7NaxAAAAAMAgf+uBLIWu2DPwcR/3cR/3cR/3cR93Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0wt8JAwAA///s1yEBAAAAg7D+rYmBWYXfDJ/bQAfoAB2gA3SADtABOoAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJPxMGAAD//+zWsQAAAADAIH/rgSyFrtgz8HEf93Ef93Ef93Efd0IndEIndEIndEIn + dEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIn + dEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIn + dEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEIndEInvJ8wAAAA///s2CENAAAAgLD+ + rYmBeQXUBw9pwEM8xEM8xEM8xEMeGRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMy + IRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRN+JgwAAP//7NYhAQAA + AICg/6+dYeECCfYMfNzHfdzHfdzHfdzHndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJ + ndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJnfA7YQAAAP//7NYh + AQAAAICg/6+9YeACCfYMfNzHfdzHfdzHfdzHndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJ + ndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJnfBxwgAAAP//7NgxDQAAAIMw + /64RQi3soZkm20CTNVmTNVmTNdlP46dhQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkwp8JAwAA///s1zEBAAAAg6D+rQ0i + FbYHfW4DHaADdIAO0AE6QAfoACZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkwqMJAwAA///s1zENAAAAgzD/rhFCLSw7it/bwO+1kBbSQlpI + C2khLcSETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETHg3 + YQAAAP//7NghDQAAAICw/q1pgXoF1AcPacBDPMRDPMRDPMRDHhkTMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMuFpwgAAAP//7NcxDQAAAIMw/66RwVMLO5bic2zgc3yOz9Gh + OlSH6lAdyoRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyISPCQMAAP// + 7NYhAQAAAICg/6+dYeECCQ9j4GEe5mEe5mEe5mEe5oRO6IRO6IRO6IRO6IRO6IRO6IRO6IRO6IRO + 6IRO6IRO6IRO6IRO6IRO6IRO6IRO6IRO6IRO6IRO6IRO6IRO6IRO6IRO6IRO6IRO6IRO6ITfCQMA + AP//7NYhAQAAAICg/6+dYeECCfYMfNzHfdzHfdzHfdzHndAJndAJndAJndAJndAJndAJndAJndAJ + ndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJ + ndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJ + ndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJ + ndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJndAJ + ndAJndAJndAJrxMGAAD//+zWIQ0AAACAsP6tiYF5AjbUdT1gURZlURZlURZlURZlQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkws+EAQAA///s1iEBAAAAgKD/r51h4QIJ9gx83Md93Md93Md93Med0Amd0Amd + 0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd0Amd + 0Amd0Amd0Amd0Amd0Amd8DthAAAA///s1rEAAAAAwCB/64Esha7YM/BxH/dxH/dxH/dxH3dCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ7yfMAAAAP//7Ngx + DQAAAICg/q0NIhW8mDykAQ/xEA/xEA/xEA95ZEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzI + hEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzI + hEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzI + hEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEcTBgAA///s1zENAAAAgzD/rpHBUwvLjuL3 + NvB7LaSFtJAW0kJaSAsxIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMy + IRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMy + IRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMy + IRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMy + IRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRNeJgwAAP//7NYh + DQAAAICw/q2JgXkCNtR1PWBRFmVRFmVRFmVRFmVCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJrxMGAAAAP//7NYxDQAAAICg/q0NIgncvND1gEVZlEVZlEVZlEVZlAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ8GjCAAAA///s1zEN + AAAAgzD/rhFCLSw7it/bwO+1kBbSQlpIC2khLcSETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiEPxMGAAD//+zXIQEAAACD + sP6tiYFZhd8Mn9tAB+gAHaADdIAO0AE6gAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAk/EwYAAP//7Nax + AAAAAMAgf+uBLIWu2DPwcR/3cR/3cR/3cR93Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0wt8JAwAA///s1zEBAAAAg6D+ + rQ0iFbYHfW4DHaADdIAO0AE6QAfoACZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkwrsJAwAA///s2CENAAAAgLD+rYmBeQXUBw9pwEM8xEM8xEM8xEMeGRMy + IRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMy + IRMyIRMyIRMyIRMyIRMyIRMyIRN+JgwAAP//7NaxAAAAAMAgf+uBLIWu2DPwcR/3cR/3cR/3cR93 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0 + Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qid0Qie8nzAAAAD/ + /+zYIQ0AAACAsP6taYF6BdQHD2nAQzzEQzzEQzzEQx4ZEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIh + EzIhEzIhEzIhEzIhEzIhEzLhacIAAAD//+zXMREAAAwCMS/1wVBheK+QxgIDl/c5NvA5Psfn6FAd + qkN1qA5lQiZkQiZkQiZkQiZkQiZkwucm3GR6AAAA//8DAAi58g54VRUA + headers: + access-control-allow-headers: + - Authorization, X-Databricks-Azure-Workspace-Resource-Id, X-Databricks-Org-Id, + Content-Type + access-control-allow-origin: + - '*' + cache-control: + - no-cache, no-store, must-revalidate + content-encoding: + - gzip + content-type: + - application/json + expires: + - '0' + pragma: + - no-cache + server: + - databricks + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"path": "/FileStore/large_file.txt", "offset": 3145736, "length": 786444}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '74' + Content-Type: + - application/json + User-Agent: + - python-requests/2.31.0 + authorization: + - DUMMY + method: GET + uri: https://my_instance.com/api/2.0/dbfs/read + response: + body: + string: !!binary | + H4sIAAAAAAAEA+zWoQ6DUAwF0H+pRiBe2IIEPQQzgCGPQGaWLAHMsp9f9g+TR9RUNm3v+cTyPrdj + 3re8Rn25VimlItZ85qhjGrqyffavPNwevxrvTalnBvbALfgHfqJckI18wEhMyIRMyIRMyIRMyIRM + yIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRMyIRM + yIRMyIRMyIRM+DcTfgEAAP//7NwhAQAAAIOw/q2JgVmFq5nj028DbQd9Cz0PTRNdF20bfR+NIyZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQib8TBgAAAD//+zWIQEAAACAoP+vfWHiAgn2DHzcx33cx33cx33c + x53QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3Q + CZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ3QCZ1wPGEA + AAD//+zXMQ0AAADCMK34NzEfpBY4SDefYwOf43N8jg7VoTpUh+pQJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJrw3YQAAAP//7NcBCQAAAMKwcPbv9CCugiDs83Mb+Lmf + az/tp/20n/bTfkzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzI + hEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzI + hEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzI + hEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzI + hEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzI + hEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzI + hEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzI + hEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzI + hEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzI + hEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhGcmDAAA///s1jEBAAAAg6Cs61/CICOC + XkyvBwzMwAzMwAzMwAzMwEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzI + hEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzI + hEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzIhEzI + hEzIhEzIhEzIhEzIhEzIhEzIhIcmDAAA///s1zENAAAAwjCf+BcyIdQC4ejm9zbwey2khbSQFtJC + WkgLMSETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiET + MiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETnpsw + AAAA///s2DENAAAAgzCd828EGXtqgathPKQBD/EQD/EQD/EQD3lkTMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETHgzYQAAAP//7NbBAAAAAAMh1vlLHMhS6NXYM/BxH/dxH/dxH/dxH3dCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RC + J3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3RCJ3TC + uxMGAAD//+zXMQEAAACCsJ72D0IQV0GfMZ/bQAfoAB2gA3SADtABOoAJmZAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJ70wY + AAAA///s1zEBAAAAgrCs9i9BEFdBnzGf20AH6AAdoAN0gA7QATqACZmQCZmQCZmQCZmQCZmQCZmQ + CZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQ + CZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQ + CZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQ + CZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQ + CZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQ + CZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCZmQCe9MGAAA + AP//7NchAQAAAMKwnPQv8haoVQCzz+c20AE6QAfoAB2gA3SADmBCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRC + JmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmRCJmTCmwkDAAD//+zXQQkAAAACsZ72D3Ix/KyC + IOzmbzbwN3/TYBpMg2kwDabBmJAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJTyYMAAD/ + /+zWMQ0AAACDMK3zbwIhqwISrk7XAxZlURZlURZlURZlUSZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQia8M2EAAAD//+zX + IQEAAADCsJ70D/IWqFUAs8/nNtABOkAH6AAdoAN0gA5gQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZk + QiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkQiZkwpsJAwAA///s1wEJAAAAwrBw9u/0IK6CIOzzNxv4 + m79pMA2mwTSYBtNgTMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiETMiE + TMiETMiETMiETMiETMiETMiETMiETMiETHhnwgAAAP//7NcxAQAAAIKwrPYvQRBXQZ8xn9tAB+gA + HaADdIAO0AE6gAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZkAmZ + kAmZkAmZkAmZkAmZkAmZkAmZkAmZkAnvTBgAAAD//+zXMQ5AQBCG0bs4gTNsg6isbjpUYjc6hcTd + xTXkFXOBf5r3hZ/bQAfoAB2gA3SADtABOoAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJmZAJ + mZAJmZAJmZAJmZAJmfCPJjzi2vbULl25h+/6fMacylqnsXleAAAA//8DAOS0wlovABAA + headers: + access-control-allow-headers: + - Authorization, X-Databricks-Azure-Workspace-Resource-Id, X-Databricks-Org-Id, + Content-Type + access-control-allow-origin: + - '*' + cache-control: + - no-cache, no-store, must-revalidate + content-encoding: + - gzip + content-type: + - application/json + expires: + - '0' + pragma: + - no-cache + server: + - databricks + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"path": "/FileStore/large_file.txt", "recursive": false}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '57' + Content-Type: + - application/json + User-Agent: + - python-requests/2.31.0 + authorization: + - DUMMY + method: POST + uri: https://my_instance.com/api/2.0/dbfs/delete + response: + body: + string: '{}' + headers: + access-control-allow-headers: + - Authorization, X-Databricks-Azure-Workspace-Resource-Id, X-Databricks-Org-Id, + Content-Type + access-control-allow-origin: + - '*' + cache-control: + - no-cache, no-store, must-revalidate + content-length: + - '2' + content-type: + - application/json + expires: + - '0' + pragma: + - no-cache + server: + - databricks + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: '{"path": "/FileStore/"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '23' + Content-Type: + - application/json + User-Agent: + - python-requests/2.31.0 + authorization: + - DUMMY + method: GET + uri: https://my_instance.com/api/2.0/dbfs/list + response: + body: + string: !!binary | + H4sIAAAAAAAEA5yTQW7DIBBF7zJrV4FgBtsH6AW6rCJrWkhDaxcLJoraKHcvtbehUmE5Ev9/3nyu + cPSTSzA8X2EhPsEAu8c8eeIQ3c4S00QfDhrwabQ+wsDx7Jr10pj8t4NBNDAH64/+ldiHz5H9nKfS + iFYhivXcmnvifl5C5IfE9FZjgFIo1Fq12eK+wTvFVJFc96iV7NAUhfN73VQjjUYp7CV2RellClyl + LDqt2y5DKdFYvijGcKkAklfZC6nbMul0oujseM7pydbFN53e4x/xmV5+e/r/Im49MX2ZzBY759++ + QpWFFLgXK6DD7QcAAP//AwD4cmNjVAMAAA== + headers: + access-control-allow-headers: + - Authorization, X-Databricks-Azure-Workspace-Resource-Id, X-Databricks-Org-Id, + Content-Type + access-control-allow-origin: + - '*' + cache-control: + - no-cache, no-store, must-revalidate + content-encoding: + - gzip + content-type: + - application/json + expires: + - '0' + pragma: + - no-cache + server: + - databricks + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +version: 1 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/fsspec/implementations/tests/local/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/fsspec/implementations/tests/local/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b953fb18c9e183ae88211ac87d1c1e94f86fd60f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/fsspec/implementations/tests/local/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/fsspec/implementations/tests/local/__pycache__/local_fixtures.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/fsspec/implementations/tests/local/__pycache__/local_fixtures.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..11fe28f44d205275031baef12b950c56ce2d2c3f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/fsspec/implementations/tests/local/__pycache__/local_fixtures.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/fsspec/implementations/tests/local/__pycache__/local_test.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/fsspec/implementations/tests/local/__pycache__/local_test.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1fdc45ac1e97ae1e89bece2686b5d6a0332dce77 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/fsspec/implementations/tests/local/__pycache__/local_test.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/fsspec/implementations/tests/memory/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/fsspec/implementations/tests/memory/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..712895d2e059302fa17d51d274df4f020786a01e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/fsspec/implementations/tests/memory/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/fsspec/implementations/tests/memory/__pycache__/memory_test.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/fsspec/implementations/tests/memory/__pycache__/memory_test.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..651e84c3c2e91d54327aa40bc2cae936f085fd76 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/fsspec/implementations/tests/memory/__pycache__/memory_test.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6212b899c4eb41a529b483addaffb5078a617ec0 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1cdb3938da499ae83b86f0831135257085c0b97c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/aot_autograd/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/aot_autograd/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..94f258df84ba8730208768fc44222bee4b3ebc33 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/aot_autograd/__init__.py @@ -0,0 +1,8 @@ +# This file has moved to under torch/_functorch. It is not public API. +# If you are not a PyTorch developer and you are relying on the following +# imports, please file an issue. +from torch._functorch.aot_autograd import ( + aot_autograd_decompositions, + KNOWN_TYPES, + PytreeThunk, +) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/aot_autograd/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/aot_autograd/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c79c3a820bc0e05d67a35f50d434935ff880a290 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/aot_autograd/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/eager_transforms/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/eager_transforms/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..6052b5548f4af3dbc6d9d45b0ffe72a8d5013d41 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/eager_transforms/__init__.py @@ -0,0 +1,7 @@ +# This file has moved to under torch/_functorch. It is not public API. +# If you are not a PyTorch developer and you are relying on the following +# imports, please file an issue. +from torch._functorch.eager_transforms import ( + _assert_wrapped_functional, + _unwrap_functional_tensor, +) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/eager_transforms/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/eager_transforms/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3c2661f09a9fe6cdd93f5f570a0d8bdbf02bcff7 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/eager_transforms/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/make_functional/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/make_functional/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..3de7787df0c3304207b42b51e9fb62da9d33c7d0 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/make_functional/__init__.py @@ -0,0 +1,4 @@ +# This file has moved to under torch/_functorch. It is not public API. +# If you are not a PyTorch developer and you are relying on the following +# imports, please file an issue. +from torch._functorch.make_functional import _swap_state diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/make_functional/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/make_functional/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e2197f1cbb8081e73050f0234ebc4a1660bb3e70 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/make_functional/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/vmap/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/vmap/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..dc90517753e50f92362ba954248e31f69f7cfcd5 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/vmap/__init__.py @@ -0,0 +1,16 @@ +# This file has moved to under torch/_functorch. It is not public API. +# If you are not a PyTorch developer and you are relying on the following +# imports, please file an issue. +from torch._functorch.vmap import ( + _add_batch_dim, + _broadcast_to_and_flatten, + _create_batched_inputs, + _get_name, + _process_batched_inputs, + _remove_batch_dim, + _unwrap_batched, + _validate_and_get_batch_size, + Tensor, + tree_flatten, + tree_unflatten, +) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/vmap/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/vmap/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d6c6364a495a47df59d071cefc7cd3185c3813f3 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/_src/vmap/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/compile/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/compile/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e7548a5ff6b91bae4fa561f0de7ad5d3492eda05 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/compile/__init__.py @@ -0,0 +1,30 @@ +from torch._functorch import config +from torch._functorch.aot_autograd import ( + aot_function, + aot_module, + aot_module_simplified, + compiled_function, + compiled_module, + get_aot_compilation_context, + get_aot_graph_name, + get_graph_being_compiled, + make_boxed_compiler, + make_boxed_func, +) +from torch._functorch.compilers import ( + debug_compile, + default_decompositions, + draw_graph_compile, + memory_efficient_fusion, + nnc_jit, + nop, + print_compile, + ts_compile, +) +from torch._functorch.fx_minifier import minifier +from torch._functorch.partitioners import ( + default_partition, + draw_graph, + min_cut_rematerialization_partition, +) +from torch._functorch.python_key import pythonkey_decompose diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/compile/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/compile/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a5695d4141145f16b7ca78023c7b8abfb75726b0 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/compile/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..df9ca766e28f68440262e17c0d9b0566656ae344 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__init__.py @@ -0,0 +1,1592 @@ +from __future__ import annotations + +import dis +import inspect +import sys +from typing import Any, Optional, TYPE_CHECKING, Union + + +if TYPE_CHECKING: + from collections.abc import Callable, Sequence + +import torch +from torch.utils._pytree import tree_flatten, tree_map, tree_unflatten + +from ._dim_entry import _match_levels, DimEntry, ndim_of_levels +from ._enable_all_layers import EnableAllLayers +from ._py_inst_decoder import _PyInstDecoder +from ._tensor_info import TensorInfo + + +POINTWISE_OPTIMIZE = True +DOT_OPTIMIZED = True + +# Global dimension level counter +_n_dims_created = 0 + + +def _relevant_op(opcode: Optional[str]) -> bool: + """Check if opcode is relevant for variable assignment.""" + return bool(opcode and opcode.startswith("STORE_")) + + +def handle_from_tensor(tensor: torch.Tensor) -> torch.Tensor: + """Handle tensor conversion for torch function integration.""" + return tensor + + +def _create_dim(name: str, size: Optional[int] = None) -> Dim: + """Create a new Dim object.""" + return Dim(name, size if size is not None else -1) + + +def dims( + n: Optional[int] = None, sizes: Optional[list[Optional[int]]] = None +) -> Union[Dim, tuple[Dim, ...]]: + """ + Create and return one or more Dim objects. + + Uses bytecode inspection to determine variable names when possible. + + Args: + n (int, optional): The number of dimensions to create. Can be omitted if sizes is specified. + sizes (List[Optional[int]], optional): A list the same size as the number of dimensions to be + created, specifying each dimensions size, or None to leave the size unset. + + Returns: + Union[Dim, Tuple[Dim, ...]]: Single Dim if n=1, tuple of Dims otherwise. + + Examples: + >>> batch, channel, width, height = dims(4) + >>> batch, channel, width, height = dims(sizes=[None, 3, 224, 224]) + >>> single_dim = dims(1) + """ + specified_ndims = -1 + found_ndims = 0 + + # Parse arguments + if sizes is not None: + specified_ndims = len(sizes) + if n is not None: + specified_ndims = n + + # Use bytecode inspection + frame = inspect.currentframe() + if frame is None: + raise RuntimeError("Unable to get current frame") + frame = frame.f_back + try: + if frame is None: + raise RuntimeError("Unable to get caller frame") + code = frame.f_code + lasti = frame.f_lasti + + decoder = _PyInstDecoder(code, lasti) + + if sys.version_info >= (3, 11): + if decoder.opcode() == "PRECALL": + decoder.next() + + # Move to next instruction after the call + decoder.next() + + # Determine number of dimensions from bytecode + if _relevant_op(decoder.opcode()): + found_ndims = 1 + elif decoder.opcode() == "UNPACK_SEQUENCE": + found_ndims = decoder.oparg() + decoder.next() # Move past UNPACK_SEQUENCE + + if specified_ndims == -1: + if found_ndims == 0: + raise SyntaxError( + "dims() must be assigned to a sequence of variable names or have argument n specified" + ) + specified_ndims = found_ndims + + if found_ndims != specified_ndims: + found_ndims = 0 + + def genobject(i: int) -> Dim: + nonlocal found_ndims + name = None + if i < found_ndims: + name = decoder.name() + + if not name: + name = f"d{i}" + found_ndims = 0 + else: + decoder.next() # Move to next STORE instruction + + size = sizes[i] if sizes is not None else None + return _create_dim(name, size) + + # Validate sizes parameter + if sizes is not None and len(sizes) != specified_ndims: + raise ValueError(f"expected {specified_ndims} sizes but found {len(sizes)}") + + if specified_ndims == 1: + return genobject(0) + + result = [] + for i in range(specified_ndims): + result.append(genobject(i)) + + return tuple(result) + + finally: + del frame + + +class DimList: + """ + A list of first-class dimensions that can be bound to tensor dimensions. + + A DimList can be in one of two states: + 1. Unbound: Created with just a name, no specific dimensions yet + 2. Bound: Either created with specific dimensions/sizes, or bound later via bind() or bind_len() + """ + + _name: Optional[str] + _dims: list[Dim] + _bound: bool + + def __init__( + self, + len_or_dims: Optional[Union[int, Sequence]] = None, + name: Optional[str] = None, + ): + """ + Initialize a new DimList object. + + Args: + len_or_dims: Optional length (int) or sequence of dimensions/sizes + name: Optional name for the dimension list + """ + # Initialize attributes + self._name = name + self._dims: list = [] + self._bound = False + + if isinstance(len_or_dims, int): + self.bind_len(len_or_dims) + elif len_or_dims is not None: + dims = [] + for i, item in enumerate(len_or_dims): + if isinstance(item, int): + dim_name = f"{self._name}{i}" if self._name else f"dim{i}" + dims.append(Dim(dim_name, item)) + else: + dims.append(Dim(item)) + self._set_dims(dims) + + def _set_dims(self, dims: list) -> None: + """Set the dimensions and mark as bound.""" + self._bound = True + self._dims = dims + + def bind_len(self, size: int) -> None: + """ + Bind this DimList to a specific length. + + Args: + size: Number of dimensions to bind to + + Raises: + DimensionBindError: If already bound to a different size + """ + if self._bound: + if len(self._dims) != size: + raise DimensionBindError( + f"Dimlist has size {len(self._dims)} but it is being bound to size {size}" + ) + else: + self._bound = True + self._dims = [] + for i in range(size): + dim_name = f"{self._name}{i}" if self._name else f"dim{i}" + self._dims.append(Dim(dim_name)) + + def bind(self, sizes: Sequence[int]) -> None: + """ + Bind this DimList to specific sizes. + + Args: + sizes: Sequence of sizes for each dimension + + Raises: + ValueError: If sizes is not a sequence + """ + if not hasattr(sizes, "__len__") or not hasattr(sizes, "__getitem__"): + raise ValueError("expected a sequence") + + size = len(sizes) + self.bind_len(size) + + for i, dim_size in enumerate(sizes): + self._dims[i].size = int(dim_size) + + def _size(self) -> int: + if not self._bound: + raise DimensionBindError("DimList not bound") + return len(self._dims) + + def size(self) -> int: + """Return the size (number of dimensions) of this DimList.""" + return self._size() + + def _set_bound(self, b: bool) -> None: + """Set the bound status (for internal use).""" + self._bound = b + + @property + def is_bound(self) -> bool: + """Property to check if DimList is bound.""" + return self._bound + + def __len__(self) -> int: + """Return the length of the DimList.""" + return self.size() + + def __getitem__(self, key: Union[int, slice]) -> Union[Dim, tuple[Dim, ...]]: + if not self._bound: + raise DimensionBindError("DimList not bound") + + if isinstance(key, int): + if key < 0 or key >= len(self._dims): + raise IndexError("index out of bounds") + return self._dims[key] + elif isinstance(key, slice): + start, stop, step = key.indices(len(self._dims)) + result = [] + for i in range(start, stop, step): + result.append(self._dims[i]) + return tuple(result) + else: + raise ValueError("expected an int or a slice") + + def __repr__(self) -> str: + """Return string representation of the DimList.""" + if self._bound: + # Show as tuple representation + return f"({', '.join(repr(dim) for dim in self._dims)})" + elif self._name is not None: + # Show as *name for unbound with name + return f"*{self._name}" + else: + # Show as for unbound without name + return "" + + def __str__(self) -> str: + """Return string representation of the DimList.""" + return self.__repr__() + + @classmethod + def __torch_function__( + cls, + func: Callable, + types: tuple, + args: tuple = (), + kwargs: Optional[dict] = None, + ) -> Any: + return _Tensor.__torch_function__(func, types, args, kwargs) + + +def _create_dimlist( + name: str, size: Optional[Union[int, list[Optional[int]]]] = None +) -> DimList: + """Create a DimList object with the given name and optional size.""" + dimlist = DimList(name=name) + if size is not None: + if isinstance(size, int): + dimlist.bind_len(size) + else: + # size is a list of optional ints + dimlist.bind_len(len(size)) + for i, s in enumerate(size): + if s is not None: + dimlist._dims[i].size = s + return dimlist + + +def dimlists( + n: Optional[int] = None, sizes: Optional[list[Optional[int]]] = None +) -> Union[DimList, tuple[DimList, ...]]: + """ + Create and return one or more DimList objects. + + Similar to dims() but creates DimList objects instead. + """ + specified_ndims = -1 + found_ndims = 0 + + # Parse arguments + if sizes is not None: + specified_ndims = len(sizes) + if n is not None: + specified_ndims = n + + frame = inspect.currentframe() + if frame is None: + raise RuntimeError("Unable to get current frame") + frame = frame.f_back + try: + if frame is None: + raise RuntimeError("Unable to get caller frame") + code = frame.f_code + lasti = frame.f_lasti + + decoder = _PyInstDecoder(code, lasti) + + if sys.version_info >= (3, 11): + if decoder.opcode() == "PRECALL": + decoder.next() + + # Move to next instruction after the call + decoder.next() + + # Determine number of dimensions from bytecode + if _relevant_op(decoder.opcode()): + found_ndims = 1 + elif decoder.opcode() == "UNPACK_SEQUENCE": + found_ndims = decoder.oparg() + decoder.next() # Move past UNPACK_SEQUENCE + + if specified_ndims == -1: + if found_ndims == 0: + raise SyntaxError( + "dimlists() must be assigned to a sequence of variable names or have argument n specified" + ) + specified_ndims = found_ndims + + if found_ndims != specified_ndims: + found_ndims = 0 + + # Generator function for dimlist names + def genobject(i: int) -> str: + nonlocal found_ndims + name = None + if i < found_ndims: + name = decoder.name() + + if not name: + name = f"d{i}" + found_ndims = 0 + else: + decoder.next() # Move to next STORE instruction + + return name + + # Validate sizes + if sizes is not None and len(sizes) != specified_ndims: + raise ValueError(f"expected {specified_ndims} sizes but found {len(sizes)}") + + # Create dimlists + if specified_ndims == 1: + name = genobject(0) + return _create_dimlist(name, sizes[0] if sizes is not None else None) + + result = [] + for i in range(specified_ndims): + name = genobject(i) + size = sizes[i] if sizes is not None else None + result.append(_create_dimlist(name, size)) + + return tuple(result) + + finally: + del frame + + +class DimensionMismatchError(Exception): + pass + + +class DimensionBindError(Exception): + pass + + +from . import op_properties + + +def _safe_print(*args: Any, **kwargs: Any) -> None: + """Safe print that avoids recursive torch function dispatches.""" + import sys + + # Convert any torch objects to basic representations + safe_args = [] + for arg in args: + if hasattr(arg, "__class__") and "torch" in str(type(arg)): + safe_args.append(f"<{type(arg).__name__}>") + else: + safe_args.append(str(arg)) + + print(*safe_args, **kwargs, file=sys.stderr) + + +class _Tensor: + def _get_levels(self) -> list[Any]: + raise NotImplementedError("_get_levels must be implemented by subclass") + + def _get_tensor(self) -> Optional[torch.Tensor]: + raise NotImplementedError("_get_tensor must be implemented by subclass") + + @property + def ndim(self) -> int: + raise NotImplementedError("ndim must be implemented by subclass") + + @property + def dims(self) -> tuple[Any, ...]: + return tuple(l.dim() for l in self._get_levels() if not l.is_positional()) + + def dim(self) -> int: + return self.ndim + + @classmethod + def __torch_function__( + cls, + func: Callable, + types: tuple, + args: tuple = (), + kwargs: Optional[dict] = None, + ) -> Any: + if kwargs is None: + kwargs = {} + + if DOT_OPTIMIZED and func is torch.Tensor.__mul__: + # Check conditions: 2 args, both are tensor-like, both 0-dimensional + if ( + len(args) == 2 + and not kwargs + and isinstance(args[0], (_Tensor, torch.Tensor)) + and isinstance(args[1], (_Tensor, torch.Tensor)) + ): + # Get tensor info for both operands + lhs_info = TensorInfo.create( + args[0], ensure_batched=False, ensure_present=False + ) + rhs_info = TensorInfo.create( + args[1], ensure_batched=False, ensure_present=False + ) + + if ( + lhs_info + and rhs_info + and lhs_info.tensor is not None + and rhs_info.tensor is not None + and lhs_info.tensor.dim() == 0 + and rhs_info.tensor.dim() == 0 + ): + if ( + lhs_info.tensor.is_floating_point() + and rhs_info.tensor.is_floating_point() + ): + # Collect all unique levels and has_device + has_device = lhs_info.has_device or rhs_info.has_device + levels = [] + + for level in lhs_info.levels: + if level not in levels: + levels.append(level) + for level in rhs_info.levels: + if level not in levels: + levels.append(level) + + # Debug print + # print(f"DEBUG: Creating delayed mul, levels: {levels}, has_device: {has_device}") + + # Create delayed tensor + return Tensor.create_delayed(func, args, levels, has_device) + + if func is torch.Tensor.__getitem__: + from functorch.dim._getsetitem import getitem + + return getitem(cls, func, types, args, kwargs) + + if func is torch.Tensor.__setitem__: + from functorch.dim._getsetitem import setitem + + # args should be (tensor, index, value) + if len(args) == 3: + setitem(args[0], args[1], args[2]) + return None + else: + raise ValueError(f"Expected 3 args for __setitem__, got {len(args)}") + + # Fast-path for len; mostly to avoid infinite loop in TestMinFunctorchOnly.test_softmax_split + if func is torch.Tensor.__len__: + return args[0].size(0) + + # Special handling for torch.softmax - use the pre-wrapped version + if func is torch.softmax: + return softmax(*args, **kwargs) + + # Special handling for torch.stack - use the custom stack function + if func is torch.stack: + return stack(*args, **kwargs) + + if ( + func is torch.Tensor.split + or func is torch._VF.split # type: ignore[attr-defined] + or func is torch._VF.split_with_sizes # type: ignore[attr-defined] + or func is torch.split + ): + return split(*args, **kwargs) + + return _Tensor._torch_function_fallback(func, types, args, kwargs) + + @staticmethod + def _torch_function_fallback( + func: Callable, types: tuple, args: tuple, kwargs: dict + ) -> Any: + """Fallback torch function implementation for non-special-cased functions.""" + is_pointwise = POINTWISE_OPTIMIZE and func in op_properties.pointwise + # TODO: optimize pytree here + flat_args, spec = tree_flatten((args, kwargs)) + device_holding_tensor = None + + infos: list[TensorInfo] = [] + result_levels: list[DimEntry] = [] + + for f in flat_args: + info = TensorInfo.create(f, not is_pointwise, False) + infos.append(info) + if info: + assert is_pointwise or info.batchedtensor is not None + if device_holding_tensor is None and info.has_device: + device_holding_tensor = info.tensor + # Collect all unique levels + for level in info.levels: + assert isinstance(level, DimEntry) + if level not in result_levels: + result_levels.append(level) + + if is_pointwise: + # Pointwise operation: match all tensors to common levels + for i, info in enumerate(infos): + if info and info.tensor is not None: + tensor = info.tensor + if device_holding_tensor is not None and not info.has_device: + tensor = tensor.to(device_holding_tensor.device) + ml = _match_levels(tensor, info.levels, result_levels) + flat_args[i] = handle_from_tensor(ml) + + unflat_args, unflat_kwargs = tree_unflatten(flat_args, spec) + result = func(*unflat_args, **unflat_kwargs) + + # Wrap tensor results + def wrap_tensor(obj: Any) -> Any: + if isinstance(obj, torch.Tensor): + return Tensor.from_positional( + obj, result_levels, device_holding_tensor is not None + ) + return obj + + # Small fastpath + if isinstance(result, torch.Tensor): + return wrap_tensor(result) + else: + return tree_map(wrap_tensor, result) + + # Non-pointwise operation: use functorch vmap layers + with EnableAllLayers(result_levels) as guard: + # Update arguments with batched tensors + for i, info in enumerate(infos): + if info and info.batchedtensor is not None: + batched = info.batchedtensor + if device_holding_tensor is not None and not info.has_device: + batched = batched.to(device_holding_tensor.device) + guard.inplace_update_layers(batched, info.levels) + flat_args[i] = handle_from_tensor(batched) + + unflat_args, unflat_kwargs = tree_unflatten(flat_args, spec) + result = func(*unflat_args, **unflat_kwargs) + + # Unwrap results from functorch layers + def unwrap_tensor(obj: Any) -> Any: + if isinstance(obj, torch.Tensor): + return guard.from_batched(obj, device_holding_tensor is not None) + return obj + + if isinstance(result, torch.Tensor): + return unwrap_tensor(result) + else: + return tree_map(unwrap_tensor, result) + + def __setitem__(self, index: Any, value: Any) -> None: + """Set values in tensor using first-class dimensions.""" + from functorch.dim._getsetitem import setitem + + return setitem(self, index, value) + + # expand and index are OK to be methods because they don't have torch.* + # versions, but if they did they need the stack/cat treatment + + def expand(self, *args: Dim) -> _Tensor: + """ + Expand tensor by adding new dimensions or expanding existing dimensions. + + If all arguments are Dim objects, adds new named dimensions. + Otherwise, falls back to regular tensor expansion behavior. + + Args: + args: Either Dim objects for new dimensions or sizes for regular expansion + + Returns: + New tensor with expanded dimensions + + Example: + >>> i, j = dims() + >>> t = torch.randn(3, 4) + >>> expanded = t[i].expand(j, k) # Add j, k dimensions + >>> expanded2 = t[i].expand(2, 4) # Regular expand with sizes + """ + info = TensorInfo.create(self, ensure_batched=False, ensure_present=False) + + for arg in args: + if not isinstance(arg, Dim): + # Not all args are Dims, fallback to regular expand + if isinstance(self, torch.Tensor) and not isinstance(self, _Tensor): + return torch.Tensor.expand(self, *args) + else: + return self.__torch_function__( + torch.Tensor.expand, (type(self),), (self,) + args + ) + + # All args are Dim objects - proceed with first-class dimension expansion + if not info: + # No tensor info available, fallback + return self.__torch_function__( + torch.Tensor.expand, (type(self),), (self,) + args + ) + + # First-class dimension expansion - all args are Dim objects + data = info.tensor + if data is None: + # No tensor data available, fallback + return self.__torch_function__( + torch.Tensor.expand, (type(self),), (self,) + args + ) + + levels = info.levels + + new_levels: list[DimEntry] = [] + new_sizes = [] + new_strides = [] + + for d in args: + # Check if dimension already exists in current levels or new_levels + for level in levels: + if not level.is_positional() and level.dim() is d: + raise DimensionBindError( + f"expanding dimension {d} already exists in tensor with dims" + ) + for new_level in new_levels: + if not new_level.is_positional() and new_level.dim() is d: + raise DimensionBindError( + f"expanding dimension {d} already exists in tensor with dims" + ) + + new_levels.append(DimEntry(d)) + new_sizes.append(d.size) + new_strides.append(0) + + # Add existing levels + new_levels.extend(levels) + + # Add existing sizes and strides + orig_sizes = list(data.size()) + orig_strides = list(data.stride()) + new_sizes.extend(orig_sizes) + new_strides.extend(orig_strides) + + # Create expanded tensor using as_strided + expanded_data = data.as_strided(new_sizes, new_strides, data.storage_offset()) + + # Return new tensor with expanded dimensions + result = Tensor.from_positional(expanded_data, new_levels, info.has_device) + return result # type: ignore[return-value] # Tensor and torch.Tensor are interchangeable + + def index( + self, + dims: Union[int, Dim, tuple[Union[int, Dim], ...], list[Union[int, Dim]]], + indices: Union[ + int, + slice, + torch.Tensor, + tuple[Union[int, slice, torch.Tensor], ...], + list[Union[int, slice, torch.Tensor]], + ], + ) -> _Tensor: + """ + Index tensor using first-class dimensions. + """ + from ._dim_entry import _match_levels + from ._getsetitem import getsetitem_flat, invoke_getitem + from ._wrap import _wrap_dim + + # Helper to check if obj is a dimpack (tuple/list) and extract items + def maybe_dimpack(obj: Any, check_first: bool = False) -> tuple[Any, bool]: + if isinstance(obj, (tuple, list)): + return list(obj), True + return None, False + + def parse_dim_entry(s: Any) -> Any: + d = _wrap_dim(s, self.ndim, False) + if d.is_none(): + raise TypeError(f"expected a dimension specifyer but found {repr(s)}") + return d + + # Helper for dimension not present errors + def dim_not_present(d: Any) -> None: + if d.is_positional(): + raise TypeError( + f"dimension {d.position() + self.ndim} not in tensor of {self.ndim} dimensions" + ) + else: + raise TypeError(f"dimension {repr(d.dim())} not in tensor") + + dims_list: list[Union[int, Dim]] = [] + indices_list: list[Union[int, slice, torch.Tensor]] = [] + + lhs_list = isinstance(dims, (tuple, list)) + rhs_list = isinstance(indices, (tuple, list)) + + if lhs_list and rhs_list: + # Type narrowing: we know dims and indices are sequences here + dims_seq = dims # type: ignore[assignment] + indices_seq = indices # type: ignore[assignment] + if len(dims_seq) != len(indices_seq): # type: ignore[arg-type] + raise TypeError( + f"dims ({len(dims_seq)}) and indices ({len(indices_seq)}) must have the same length" # type: ignore[arg-type] + ) + dims_list.extend(dims_seq) # type: ignore[arg-type] + indices_list.extend(indices_seq) # type: ignore[arg-type] + else: + dims_list.append(dims) # type: ignore[arg-type] + indices_list.append(indices) # type: ignore[arg-type] + + # Create tensor info + self_info = TensorInfo.create(self, False, False) + + new_levels: list[Any] = [] + to_flatten: list[Any] = [] + dims_list_flat = [] + + # Process each dim specification + for i in range(len(dims_list)): + m, is_dimpack = maybe_dimpack(dims_list[i], check_first=False) + if is_dimpack: + if len(m) == 0: + dims_list_flat.append(DimEntry()) # Empty dimpack + continue + + first = parse_dim_entry(m[0]) + dims_list_flat.append(first) + + if len(m) == 1: + continue + + # Multi-element dimpack requires flattening + if len(to_flatten) == 0: + new_levels.extend(self_info.levels) + + rest = [] + for j in range(1, len(m)): + d = parse_dim_entry(m[j]) + removed = False + for k in range(len(new_levels)): + if new_levels[k] == d: + new_levels.pop(k) + removed = True + break + if not removed: + dim_not_present(d) + rest.append(d) + + # Find first in new_levels + first_idx = None + for k in range(len(new_levels)): + if new_levels[k] == first: + first_idx = k + break + if first_idx is None: + dim_not_present(first) + continue # Skip this iteration if dimension not found + + for j, r in enumerate(rest): + new_levels.insert(first_idx + 1 + j, r) + to_flatten.extend(rest) + else: + dims_list_flat.append(parse_dim_entry(dims_list[i])) + + # Handle dimension flattening if needed + if len(to_flatten) > 0: + assert self_info.tensor is not None, ( + "Cannot perform dimension flattening on None tensor" + ) + rearranged = _match_levels(self_info.tensor, self_info.levels, new_levels) + sizes = rearranged.size() + new_sizes: list[Any] = [] + reshape_levels = [] + + for i in range(len(new_levels)): + if new_levels[i] in to_flatten: + if len(new_sizes) == 0: + new_sizes.append(sizes[i]) + else: + new_sizes[-1] *= sizes[i] + else: + new_sizes.append(sizes[i]) + reshape_levels.append(new_levels[i]) + + self_info.tensor = rearranged.reshape(new_sizes) + self_info.levels = reshape_levels + + # Check for dimpacks in indices + has_dimpacks = False + for idx in indices_list: + if isinstance(idx, (tuple, list)): + has_dimpacks = True + break + + # Call getsetitem_flat with correct parameters + info = getsetitem_flat( + self_info, + [], # empty input_list + dims_list_flat, # keys + indices_list, # values + has_dimpacks, + ) + + return invoke_getitem(info) + + def __repr__(self) -> str: + tensor, levels, ndim = self._get_tensor(), self._get_levels(), self.ndim + dims_repr = [] + for l in levels: + if hasattr(l, "is_positional") and l.is_positional(): + # Convert negative positional to positive: -1 -> ndim-1, -2 -> ndim-2, etc. + dims_repr.append(l.position() + ndim) + elif hasattr(l, "dim"): + dims_repr.append(l.dim()) + elif hasattr(l, "data"): + dims_repr.append(l.data) + else: + dims_repr.append(l) + return f"{tensor}\nwith dims={tuple(dims_repr)} sizes={tuple(tensor.size())}" # type: ignore[union-attr] + + +TensorLike = (_Tensor, torch.Tensor) + + +class Dim(_Tensor): + _level: int + _name: str + _size: int + _range: Optional[torch.Tensor] + _batchtensor: Optional[torch.Tensor] + + def __init__(self, name: str, s: int = -1) -> None: + global _n_dims_created + self._name = name + self._size = s + self._level = _n_dims_created + _n_dims_created += 1 + self._range = None + self._batchtensor = None + + @property + def ndim(self) -> int: + return 1 + + @classmethod + def check_exact(cls, obj: Any) -> bool: + return type(obj) is cls + + @property + def size(self) -> int: + if self._size == -1: + raise ValueError(f"dimension {self._name} is unbound") + return self._size + + @size.setter + def size(self, v: int) -> None: + if self._size == -1: + self._size = v + elif self._size != v: + raise DimensionBindError( + f"Dim '{repr(self)}' previously bound to a dimension of size {self._size} " + f"cannot bind to a dimension of size {v}" + ) + + @property + def is_bound(self) -> bool: + """Return True if this dimension is bound to a size.""" + return self._size != -1 + + def _get_range(self) -> torch.Tensor: + """ + Get a tensor representing the range [0, size) for this dimension. + + Returns: + A 1D tensor with values [0, 1, 2, ..., size-1] + """ + if self._range is None: + self._range = torch.arange(self.size) + return self._range + + def _get_batchtensor(self) -> torch.Tensor: + """ + Get a batched tensor representation of this dimension. + + Returns: + A batched tensor created from the range tensor + """ + if self._batchtensor is None: + self._batchtensor = torch._C._functorch._add_batch_dim( + self._get_range(), 0, self._level + ) + return self._batchtensor + + def __repr__(self) -> str: + """String representation of a Dim object.""" + return self._name + + # note that Dim comes before tensor because we want the Dim API for things like size to take precedence. + # Tensor defines format, but we want to print Dims with special formatting + __format__ = object.__format__ + + +# Somewhat confusingly, an FCD tensor is also called Tensor. This confusion +# is somewhat intentional, as FCD tensors are intended to be substitutable +# with regular Tensor (just with some positional dims hidden). +class Tensor(_Tensor): + _tensor: Optional[torch.Tensor] + _batchtensor: Optional[torch.Tensor] + _levels: list[DimEntry] + _has_device: bool + _delayed: Optional[Callable[[], torch.Tensor]] + _delayed_orig: Optional[Callable] + _delayed_args: Optional[tuple] + + @property + def ndim(self) -> int: + return sum(1 if l.is_positional() else 0 for l in self._levels) + + @classmethod + def check_exact(cls, other: Any) -> bool: + return type(other) is cls + + @classmethod + def from_positional( + cls, tensor: torch.Tensor, levels: list[DimEntry], has_device: bool + ) -> Union[_Tensor, torch.Tensor]: + """ + Create a functorch Tensor from a regular PyTorch tensor with specified dimension levels. + + This is the primary way to create Tensor objects with first-class dimensions. + + Args: + tensor: The underlying PyTorch tensor + levels: List of DimEntry objects specifying the dimension structure + has_device: Whether the tensor is on a device (not CPU) + + Returns: + A new Tensor instance with the specified dimensions, or a regular torch.Tensor + if there are no named dimensions + """ + seen_dims = 0 + last = 0 + + for i, l in enumerate(levels): + if l.is_positional(): + # Validate consecutive positional dimensions + assert last == 0 or last + 1 == l.position(), ( + f"Positional dimensions must be consecutive, got {last} then {l.position()}" + ) + last = l.position() + else: + # This is a named dimension + seen_dims += 1 + + # Validate final positional dimension + assert last == 0 or last == -1, ( + f"Final positional dimension must be 0 or -1, got {last}" + ) + + if not seen_dims: + return tensor + + # Create Tensor object with proper level management + result = cls() + result._tensor = tensor + result._levels = levels + result._has_device = has_device + result._batchtensor = None # Will be created lazily if needed + result._delayed = None + result._delayed_orig = None + result._delayed_args = None + + # Validate tensor dimensionality matches levels + assert tensor.dim() == len(levels), ( + f"Tensor has {tensor.dim()} dimensions but {len(levels)} levels provided" + ) + + return result + + @classmethod + def create_delayed( + cls, orig: Callable, args: tuple, levels: list[DimEntry], has_device: bool + ) -> _Tensor: + """ + Create a delayed tensor that defers the operation until later. + """ + result = cls() + result._tensor = None # Will be computed when needed + result._levels = levels + result._has_device = has_device + result._batchtensor = None + result._delayed_orig = orig + result._delayed_args = args + + # Create delayed evaluation function that unwraps Tensor objects + def evaluate_delayed() -> torch.Tensor: + unwrapped_args = [] + for arg in args: + if hasattr(arg, "_get_tensor"): + unwrapped_args.append(arg._get_tensor()) + else: + unwrapped_args.append(arg) + return orig(*unwrapped_args) + + result._delayed = evaluate_delayed + + return result + + def _get_tensor(self) -> Optional[torch.Tensor]: + """Get the underlying tensor, handling delayed operations if needed.""" + if ( + hasattr(self, "_delayed") + and self._delayed is not None + and self._tensor is None + ): + # Execute the delayed operation + self._tensor = self._delayed() + # Clear delayed operation to avoid re-execution + self._delayed = None + self._delayed_orig = None + self._delayed_args = None + return self._tensor + + def _get_levels(self) -> list[Any]: + """Get the dimension levels.""" + return self._levels + + def _get_has_device(self) -> bool: + """Get whether this tensor has device information.""" + return self._has_device + + def _get_batchtensor(self) -> Optional[torch.Tensor]: + """Get the batched tensor representation, creating it lazily if needed.""" + if self._batchtensor is None: + self._batchtensor = self._add_batch_dims( + self._get_tensor(), self._get_levels() + ) + return self._batchtensor + + def _add_batch_dims( + self, t: Optional[torch.Tensor], levels_: list[Any] + ) -> Optional[torch.Tensor]: + levels = list(levels_) + + while True: + min_real_index = -1 + min_index = -1 + min_value = float("inf") # INT_MAX equivalent + i = 0 + r = 0 + + for r, l in enumerate(levels): + if not l.is_none(): + if not l.is_positional() and l.dim()._level < min_value: + min_value = l.dim()._level + min_index = i + min_real_index = r + i += 1 + + if min_index == -1: + return t + + assert t is not None + t = torch._C._functorch._add_batch_dim(t, min_index, int(min_value)) + + levels[min_real_index] = DimEntry() + return None + + def order(self, *dims: Any) -> _Tensor: + """Reorder the dimensions of this tensor.""" + from ._order import order + + result = order(self, *dims) + return result # type: ignore[return-value] # Tensor and torch.Tensor are interchangeable + + +def stack(tensors: Any, new_dim: Any, dim: int = 0) -> _Tensor: + """ + Stack tensors along a new dimension. + + Args: + tensors: Sequence of tensors to stack + new_dim: The new Dim to create for stacking + dim: The dimension position to insert the new dimension (default: 0) + + Returns: + Stacked tensor with the new dimension + """ + if not tensors: + raise ValueError("stack expects a non-empty sequence of tensors") + + # Check if new_dim is a Dim object + if not isinstance(new_dim, Dim): + # Fall back to regular torch.stack + result = torch.stack(tensors, dim=dim) + return result # type: ignore[return-value] + + # Collect all result_levels from input tensors + result_levels = [] + infos = [] + + for t in tensors: + info = TensorInfo.create(t, ensure_batched=False, ensure_present=False) + infos.append(info) + for level in info.levels: + if level not in result_levels: + result_levels.append(level) + + # Set the new_dim size to match number of tensors + new_dim.size = len(tensors) + + # Match all tensors to the common level structure using _match_levels + inputs = [] + for info in infos: + assert info.tensor is not None, "Cannot stack tensors with None tensor data" + matched_tensor = _match_levels(info.tensor, info.levels, result_levels) + inputs.append(matched_tensor) + + # Calculate ndim and resolve the dim parameter + ndim = ndim_of_levels(result_levels) + rawdim = 0 + if dim is not None and not (isinstance(dim, int) and dim == 0): + from ._wrap import _wrap_dim + + d = _wrap_dim(dim, ndim, False) + try: + idx = result_levels.index(d) + except ValueError: + raise TypeError(f"Dimension {dim} does not exist in inputs") from None + rawdim = idx + + # Stack tensors at the resolved dimension + result = torch.stack(inputs, rawdim) + + # Insert new dimension entry at the correct position + result_levels.insert(rawdim, DimEntry(new_dim)) + + # Return as a first-class tensor + tensor_result = Tensor.from_positional( + result, result_levels, infos[0].has_device if infos else True + ) + return tensor_result # type: ignore[return-value] + + +def split(tensor: Any, split_size_or_sections: Any, dim: Any = None) -> tuple: + """ + Split tensor along a dimension. + + Can handle both regular integer sizes and Dim objects for split sizes. + When Dim objects are used, they get bound to the resulting tensor dimensions. + """ + from ._wrap import _wrap_dim + + # Check if dim is a Dim object + dim_is_object = isinstance(dim, Dim) + + # Parse split_size_or_sections + if isinstance(split_size_or_sections, int): + # Single integer - use regular split + if dim_is_object: + raise TypeError( + "when dim is specified as a Dim object, split sizes must also be dimensions." + ) + return _Tensor._torch_function_fallback( + torch.Tensor.split, + (type(tensor),), + (tensor, split_size_or_sections), + {"dim": dim}, + ) + + # Check if it's a sequence + sizes = [] + all_dims = True + all_ints = True + + for item in split_size_or_sections: + sizes.append(item) + if isinstance(item, Dim): + all_ints = False + else: + all_dims = False + + if all_ints: + # All integers - use regular split + if dim_is_object: + raise TypeError( + "when dim is specified as a Dim object, split sizes must also be dimensions." + ) + return _Tensor._torch_function_fallback( + torch.Tensor.split, + (type(tensor),), + (tensor, split_size_or_sections), + {"dim": dim}, + ) + + if not all_dims: + raise TypeError("split list must be ints or dims but got a mix") + + # All are Dim objects - handle first-class dimension split + self_info = TensorInfo.create(tensor, ensure_batched=False, ensure_present=False) + ndim = self_info.ndim() + + if not dim_is_object and ndim == 0: + raise TypeError("split expects at least a 1-dimension tensor") + + # Wrap the dimension + dim_l = _wrap_dim(dim, ndim, False) if dim is not None else DimEntry(-ndim) + + # Find the index of the dimension in levels + idx = None + for i, level in enumerate(self_info.levels): + if level == dim_l: + idx = i + break + + if idx is None: + if dim is None: + dim = 0 + raise TypeError(f"tensor does not contain dimension {dim}") + + # Calculate split indices + indices = [] + total_size = 0 + unbound = [] + + for i, size_dim in enumerate(sizes): + if size_dim.is_bound: + indices.append(size_dim.size) + total_size += indices[-1] + else: + indices.append(0) + unbound.append(i) + + assert self_info.tensor is not None, "Cannot get tensor size on None tensor" + tensor_size = self_info.tensor.size(idx) + + # Handle unbound dimensions + if unbound: + if total_size > tensor_size: + raise TypeError( + f"sizes of target dimensions add up to more ({total_size}) than source dim ({tensor_size})" + ) + remaining_size = tensor_size - total_size + chunk_size = (remaining_size + len(unbound) - 1) // len(unbound) + for u in unbound: + sz = min(chunk_size, remaining_size) + sizes[u].size = sz + indices[u] = sz + remaining_size -= sz + elif tensor_size != total_size: + raise TypeError( + f"sum of sizes of target dimensions ({total_size}) do not match the source dim ({tensor_size})" + ) + + # Perform the split + result_tensors = self_info.tensor.split_with_sizes(indices, idx) + + # Create result with new levels + result = [] + new_levels = list(self_info.levels) + + for i, (result_tensor, size_dim) in enumerate(zip(result_tensors, sizes)): + new_levels[idx] = DimEntry(size_dim) + result.append( + Tensor.from_positional( + result_tensor, list(new_levels), self_info.has_device + ) + ) + + return tuple(result) + + +def cat(tensors: Any, dim: Any, new_dim: Any) -> _Tensor: + n = dims(1) # Get single Dim instead of tuple + return stack(tensors, n, dim).index([n, dim], new_dim) # type: ignore[list-item] + + +class DotPart: + """ + Helper class for organizing dimensions in dot products. + """ + + def __init__(self) -> None: + self.dims: list[DimEntry] = [] + self.total_size = 1 + + def append(self, dim_entry: Any) -> None: + """Add a dimension entry to this part.""" + self.dims.append(dim_entry) + if not dim_entry.is_positional(): + self.total_size *= dim_entry.dim().size + + +def dot_prepare(parts: list[DotPart], tensor_info: TensorInfo) -> torch.Tensor: + """ + Prepare tensor for dot product by matching levels and reshaping. + """ + new_levels = [] + needs_reshape = False + + for part in parts: + if len(part.dims) != 1: + needs_reshape = True + new_levels.extend(part.dims) + + if tensor_info.tensor is None: + raise RuntimeError("Cannot perform dot product on None tensor") + result = _match_levels(tensor_info.tensor, tensor_info.levels, new_levels) + + if not needs_reshape: + return result + + # Reshape for matrix operations + view = [part.total_size for part in parts] + return result.reshape(view) + + +def dot_finish(parts: list[DotPart], result_tensor: torch.Tensor) -> Tensor: + """ + Finish dot product by reshaping result and creating Tensor. + """ + result_levels = [] + needs_reshape = False + + for part in parts: + if len(part.dims) != 1: + needs_reshape = True + result_levels.extend(part.dims) + + if needs_reshape: + new_size = [] + for level in result_levels: + new_size.append(level.dim().size) + result_tensor = result_tensor.reshape(new_size) + + tensor_result = Tensor.from_positional(result_tensor, result_levels, True) + return tensor_result # type: ignore[return-value] + + +def dot(lhs: Any, rhs: Any, sum_dims: Any) -> Union[_Tensor, torch.Tensor]: + """ + Perform dot product between two tensors along specified dimensions. + + Args: + lhs: Left-hand side tensor + rhs: Right-hand side tensor + sum_dims: Dimensions to sum over (contract) + + Returns: + Result of dot product + """ + # Get tensor info + lhs_info = TensorInfo.create(lhs, ensure_batched=False, ensure_present=False) + rhs_info = TensorInfo.create(rhs, ensure_batched=False, ensure_present=False) + + if not (lhs_info and rhs_info): + # Fall back to regular operations + return torch.matmul(lhs, rhs) + + assert lhs_info.tensor is not None and rhs_info.tensor is not None, ( + "Cannot perform dot product on None tensors" + ) + + lhs_strides = lhs_info.tensor.stride() + rhs_strides = rhs_info.tensor.stride() + + # Create dot parts for different dimension categories + lro_dims = DotPart() # Left-right-output (batch dims) + lo_dims = DotPart() # Left-output only + ro_dims = DotPart() # Right-output only + lr_dims = DotPart() # Left-right (contracted dims) + + def insert_dim(d: Any, lhs_idx: Any, rhs_idx: Any) -> None: + """Insert dimension into appropriate part based on stride pattern.""" + reduced = d in sum_dims + lhs_stride = lhs_strides[lhs_idx] if lhs_idx is not None else 0 + rhs_stride = rhs_strides[rhs_idx] if rhs_idx is not None else 0 + + if reduced: + lr_dims.append(d) + else: + if (lhs_stride == 0) == (rhs_stride == 0): + lro_dims.append(d) # Both have or both lack this dim + elif lhs_stride != 0: + lo_dims.append(d) # Only lhs has this dim + else: + ro_dims.append(d) # Only rhs has this dim + + # Track which rhs dimensions we've seen + rhs_seen = [False] * len(rhs_info.levels) + + # Process lhs dimensions + for i, lhs_level in enumerate(lhs_info.levels): + rhs_idx = None + for j, rhs_level in enumerate(rhs_info.levels): + if lhs_level == rhs_level: + rhs_idx = j + rhs_seen[j] = True + break + + insert_dim(lhs_level, i, rhs_idx) + + # Process remaining rhs dimensions + for i, rhs_level in enumerate(rhs_info.levels): + if not rhs_seen[i]: + insert_dim(rhs_level, None, i) + + # Validate sum dimensions exist + if len(lr_dims.dims) != len(sum_dims): + for d in sum_dims: + if d not in lhs_info.levels and d not in rhs_info.levels: + raise ValueError(f"summing over non-existent dimension {d}") + + # Prepare tensors and perform matrix multiplication + if len(lro_dims.dims) != 0: + # Batched matrix multiply + lhs_tensor = dot_prepare([lro_dims, lo_dims, lr_dims], lhs_info) + rhs_tensor = dot_prepare([lro_dims, lr_dims, ro_dims], rhs_info) + result = torch.bmm(lhs_tensor, rhs_tensor) + return dot_finish([lro_dims, lo_dims, ro_dims], result) + else: + # Regular matrix multiply + lhs_tensor = dot_prepare([lo_dims, lr_dims], lhs_info) + rhs_tensor = dot_prepare([lr_dims, ro_dims], rhs_info) + result = torch.mm(lhs_tensor, rhs_tensor) + return dot_finish([lo_dims, ro_dims], result) + + +from functorch.dim._wrap import _wrap +from functorch.dim.wrap_type import wrap_type + + +wrap_type(_Tensor, torch.Tensor, _Tensor.__torch_function__) +del _Tensor.ndim + + +def index(self: Any, positions: Any, dims: Any) -> _Tensor: + """ + Index a regular tensor by binding specified positions to dims. + + This converts a regular tensor to a first-class tensor by binding + the specified positional dimensions to Dim objects. + + Args: + positions: Tuple of dimension positions to bind + dims: Dim objects or tuple of Dim objects to bind to + + Returns: + First-class tensor with specified dimensions bound + """ + # If this is already a first-class tensor (_Tensor), call its index method directly + if isinstance(self, _Tensor): + return _Tensor.index(self, positions, dims) + + # Convert regular tensor to first-class tensor + info = TensorInfo.create(self, ensure_batched=False, ensure_present=False) + + # Create the first-class tensor + assert info.tensor is not None, "Cannot index None tensor" + result = Tensor.from_positional(info.tensor, info.levels, info.has_device) + + # Now call the index method on the first-class tensor + # Cast result to _Tensor for the method call + return _Tensor.index(result, positions, dims) # type: ignore[arg-type] + + +def _def(name: str, *args: Any, **kwargs: Any) -> None: + orig = getattr(torch.Tensor, name) + setattr(_Tensor, name, _wrap(orig, *args, **kwargs)) + + +_def("mean") +_def("sum") +_def("all") +_def("amax") +_def("amin") +_def("aminmax") +_def("any") +_def("count_nonzero") +_def("logsumexp") +_def("nanmean") +_def("nansum") +_def("prod") +_def("std", keepdim_offset=2) +_def("var", keepdim_offset=2) +_def("max", single_dim=True) +_def("min", single_dim=True) +_def("argmax", single_dim=True) +_def("argmin", single_dim=True) +_def("kthvalue", single_dim=True) +_def("median", single_dim=True) +_def("nanmedian", single_dim=True) +_def("mode", single_dim=True) +_def("sort", reduce=False) +_def("argsort", reduce=False) +_def("unbind", single_dim=True) +_def("chunk", dim_offset=1, reduce=False) +_def("cummax", single_dim=True, reduce=False) +_def("cummin", single_dim=True, reduce=False) +_def("cumprod", single_dim=True, reduce=False) +_def("cumprod_", single_dim=True, reduce=False) +_def("cumsum", single_dim=True, reduce=False) +_def("cumsum_", single_dim=True, reduce=False) +_def("logcumsumexp", single_dim=True, reduce=False) +_def("renorm", dim_offset=1, single_dim=True, reduce=False) +_def("softmax", single_dim=True, reduce=False) +softmax = _wrap(torch.nn.functional.softmax, single_dim=True, reduce=False) + +# stuff to handle in the future, because they require special +# binding logic for dims +# cross +# diag_embed +# diagonal +# diagonal_scatter +# diff +# nanquantile +# quantile +# roll +# rot90 +# topk (new dimes on output) +# should these all be subsumed by inplace indexing? +# index_add_ +# index_add +# index_copy +# index_copy_ +# index_fill +# index_fill_ +# index_select +# scatter +# scatter_ +# scatter_add +# scatter_add_ +# scatter_reduce diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1843ad1c30d614b60652405d74ff408a3b15102f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/_dim_entry.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/_dim_entry.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9a8f68d3d7c37f1cb2c92029f7d58d71228ed458 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/_dim_entry.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/_enable_all_layers.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/_enable_all_layers.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..92f9e6ec4f47ba9f560eb69a84daab9e7865221a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/_enable_all_layers.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/_getsetitem.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/_getsetitem.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..756a335c0825c421f15a9b560cf91c4fa399033e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/_getsetitem.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/_order.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/_order.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ede59b7f08514a275bc3ddd3449d597250749430 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/_order.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/_py_inst_decoder.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/_py_inst_decoder.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b29fed0d4c5270ad445ea6206498abbb9d38155c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/_py_inst_decoder.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/_tensor_info.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/_tensor_info.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7fb355df74280d6683339efe4ea6546400622038 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/_tensor_info.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/_wrap.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/_wrap.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e36d75cf9e86aad8376e288ff48c17635da3fa45 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/_wrap.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/magic_trace.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/magic_trace.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f882450a60c6b732e2cae01b617dabf3ddc624a3 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/magic_trace.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/op_properties.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/op_properties.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3281f74136931522879ea4394c7d028e06457f68 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/op_properties.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/wrap_type.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/wrap_type.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..faa2fa1e87efa0ab66be96d77a4167e05f4ea21e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/__pycache__/wrap_type.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/_dim_entry.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/_dim_entry.py new file mode 100644 index 0000000000000000000000000000000000000000..c067a7ad0ce4028450f194744f1c4bb07b0f6358 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/_dim_entry.py @@ -0,0 +1,127 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING, Union + + +if TYPE_CHECKING: + from collections.abc import Sequence + + from . import Dim + +import torch # noqa: TC002 + + +# NB: The old code represented dimension was from as negative number, so we +# follow this convention even though it shouldn't be necessary now +class DimEntry: + # The dimension this is from the rhs, or a FCD + data: Union[Dim, int] + + def __init__(self, data: Union[Dim, int, None] = None) -> None: + from . import Dim + + if type(data) is int: + assert data < 0 + elif data is None: + data = 0 + else: + assert isinstance(data, Dim) + self.data = data + + def __eq__(self, other: object) -> bool: + if not isinstance(other, DimEntry): + return False + # Use 'is' for Dim objects to avoid triggering __torch_function__ + # Use '==' only for positional (int) comparisons + if self.is_positional() and other.is_positional(): + # Both are positional (ints) + return self.data == other.data + elif not self.is_positional() and not other.is_positional(): + # Both are Dim objects - use 'is' to avoid __eq__ + return self.data is other.data + else: + # One is positional, one is Dim - they can't be equal + return False + + def is_positional(self) -> bool: + return type(self.data) is int and self.data < 0 + + def is_none(self) -> bool: + # Use isinstance to check for Dim objects, avoid triggering __torch_function__ + from . import Dim + + if isinstance(self.data, Dim): + # This is a Dim object, it can't be "none" (which is represented by 0) + return False + else: + # This is an int or other type + return self.data == 0 + + def position(self) -> int: + assert isinstance(self.data, int) + return self.data + + def dim(self) -> Dim: + assert not isinstance(self.data, int) + return self.data + + def __repr__(self) -> str: + return repr(self.data) + + +def ndim_of_levels(levels: Sequence[DimEntry]) -> int: + r = 0 + for l in levels: + if l.is_positional(): + r += 1 + return r + + +def _match_levels( + tensor: torch.Tensor, + from_levels: list[DimEntry], + to_levels: list[DimEntry], + drop_levels: bool = False, +) -> torch.Tensor: + """ + Reshape a tensor to match target levels using as_strided. + + Args: + tensor: Input tensor to reshape + from_levels: Current levels of the tensor + to_levels: Target levels to match + drop_levels: If True, missing dimensions are assumed to have stride 0 + + Returns: + Reshaped tensor + """ + if from_levels == to_levels: + return tensor + + sizes = tensor.size() + strides = tensor.stride() + + if not drop_levels: + assert len(from_levels) <= len(to_levels), ( + "Cannot expand dimensions without drop_levels" + ) + + new_sizes = [] + new_strides = [] + + for level in to_levels: + # Find index of this level in from_levels + try: + idx = from_levels.index(level) + except ValueError: + # Level not found in from_levels + if level.is_positional(): + new_sizes.append(1) + else: + new_sizes.append(level.dim().size) + new_strides.append(0) + else: + new_sizes.append(sizes[idx]) + new_strides.append(strides[idx]) + + return tensor.as_strided(new_sizes, new_strides, tensor.storage_offset()) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/_enable_all_layers.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/_enable_all_layers.py new file mode 100644 index 0000000000000000000000000000000000000000..b05c58b2c843965d7f16be22233427f50c137481 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/_enable_all_layers.py @@ -0,0 +1,139 @@ +from __future__ import annotations + +from typing import Any, TYPE_CHECKING + +import torch + +from ._dim_entry import DimEntry + + +if TYPE_CHECKING: + from . import Dim, Tensor + + +class EnableAllLayers: + """ + RAII-style context manager for enabling functorch vmap layers. + It manages the creation and cleanup of functorch dynamic layers. + + This is probably one of the more algorithmically important parts of first + class dims. Intuitively, FCD can be thought of as another way of using + vmap, where you don't actually have to vmap at the top level, instead the + vmaps are implicitly determined by inspecting the bound dimensions on the + FCD tensors involved in a compute (this is similar to our concept of + non-lexical modes that we spent a long time talking about years ago). But + under the hood you still need to actually enable the vmap mode. So once + FCD has determined all of the dims we are batching over, it needs to + enable all those layers so functorch can actually apply the batching + rules. Therefore enable all layers! + """ + + levels_start: int + levels_to_dim: list[Dim] + + def __init__(self, levels: list[DimEntry]): + """ + Initialize and push dynamic layers for all first-class dimensions. + + Args: + levels: List of dimension entries to create layers for + """ + + from . import Dim + + self.levels_start = 0 + self.levels_to_dim = [] + + for l in levels: + if not l.is_positional(): + d = l.dim() + assert isinstance(d, Dim) + self.levels_to_dim.append(d) + + # Sort by level for stable ordering + self.levels_to_dim.sort(key=lambda d: d._level) + + def __enter__(self) -> EnableAllLayers: # noqa: PYI034 + # Create functorch dynamic layers + for i, dim in enumerate(self.levels_to_dim): + batch_size = dim.size + level = torch._C._functorch._vmap_increment_nesting(batch_size, "different") + if i == 0: + self.levels_start = level + return self + + def __exit__(self, exc_type: Any, exc_val: Any, exc_tb: Any) -> None: + """Clean up dynamic layers in reverse order.""" + to_remove = self.levels_start + len(self.levels_to_dim) - 1 + for i in range(len(self.levels_to_dim)): + popped = torch._C._functorch._vmap_decrement_nesting() + assert popped == to_remove - i, ( + f"Expected layer {to_remove - i}, got {popped}" + ) + + def from_batched(self, batchedtensor: torch.Tensor, has_device: bool) -> Tensor: + """ + Create a Tensor from a batched tensor by unwrapping functorch layers. + + Args: + batchedtensor: Batched tensor from functorch operation + has_device: Whether tensor has device info + + Returns: + Tensor with appropriate levels + """ + # Create positional levels for base dimensions + levels: list[DimEntry] = [] + for i in range(-batchedtensor.dim(), 0): + levels.append(DimEntry(i)) + + tensor = batchedtensor + + while torch._C._functorch.is_batchedtensor(tensor): + level = torch._C._functorch.maybe_get_level(tensor) + assert level is not None + assert level >= self.levels_start and level < self.levels_start + len( + self.levels_to_dim + ) + dim = DimEntry(self.levels_to_dim[level - self.levels_start]) + bdim = torch._C._functorch.maybe_get_bdim(tensor) + assert bdim is not None + levels.insert(bdim, dim) + tensor = torch._C._functorch.get_unwrapped(tensor) + + from . import Tensor + + result = Tensor() + result._tensor = tensor + result._batchtensor = batchedtensor + result._has_device = has_device + result._levels = levels + return result + + def inplace_update_layers( + self, batchtensor: torch.Tensor, levels: list[DimEntry] + ) -> None: + """ + Update the levels of a batched tensor in place. + + This requires the _maybe_unsafe_set_level binding that we'll add to functorch. + + Args: + batchtensor: Batched tensor to update + levels: New levels to set + """ + # Check if tensor is batched + if not torch._C._functorch.is_batchedtensor(batchtensor): + return + + impl = batchtensor + + for i in reversed(range(len(self.levels_to_dim))): + if impl is None: + break + + if any(l == DimEntry(self.levels_to_dim[i]) for l in levels): + # This is very interesting! The level on batch tensor is + # meaningless! We set it RIGHT before we go into vmap + torch._C._functorch._maybe_unsafe_set_level(impl, self.levels_start + i) + impl = torch._C._functorch.get_unwrapped(impl) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/_getsetitem.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/_getsetitem.py new file mode 100644 index 0000000000000000000000000000000000000000..59e2f3c61e0b15294ab0f0271cee2968c273256d --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/_getsetitem.py @@ -0,0 +1,561 @@ +from __future__ import annotations + +from dataclasses import dataclass, field +from typing import Any, Optional, TYPE_CHECKING, Union + +import torch + +from ._dim_entry import _match_levels, DimEntry +from ._tensor_info import TensorInfo + + +if TYPE_CHECKING: + from . import Dim + + +def _safe_index(lst: list, item: Any) -> Optional[int]: + """ + Helper function to find index of item in list. + + For DimEntry objects, uses __eq__ comparison which properly handles + both positional and Dim entries. + + Returns the index if found, None if not found. + """ + for i, list_item in enumerate(lst): + # Use == for DimEntry objects as they have proper __eq__ implementation + if isinstance(item, DimEntry) and isinstance(list_item, DimEntry): + if list_item == item: + return i + elif list_item is item: + return i + return None + + +@dataclass +class IndexingInfo: + can_call_original: bool = False + advanced_indexing: bool = False + self_tensor: Optional[torch.Tensor] = None + flat_inputs: list[Any] = field(default_factory=list) + result_levels: list[DimEntry] = field(default_factory=list) + has_device: bool = False + + +def has_dims(obj: Any) -> bool: + """ + Check if an object has first-class dimensions. + + This function checks if the object is either a Dim or a functorch Tensor + that has first-class dimensions, using the proper check_exact methods. + """ + from . import Dim, Tensor + + return Dim.check_exact(obj) or Tensor.check_exact(obj) + + +def _bind_dims_to_size(sz: int, sd: int, dims: list, nsz: list, nsd: list) -> None: + """ + Bind dimensions to size and calculate proper strides for dim packs. + """ + from . import DimensionBindError + + rhs_prod = 1 + for i, dim in enumerate(dims): + if not dim.is_bound: + # Check for multiple unbound dimensions + for j in range(i + 1, len(dims)): + if not dims[j].is_bound: + raise DimensionBindError( + f"cannot infer the sizes of two dimensions at once {dim!r} and {dims[j]!r}" + ) + rhs_prod *= dims[j].size + + # Calculate the size for this unbound dimension + if sz % rhs_prod != 0: + tup = tuple(dim.size if dim.is_bound else "?" for dim in dims) + raise DimensionBindError( + f"inferred dimension does not evenly fit into larger dimension: {sz} vs {tup}" + ) + + inferred_size = sz // rhs_prod + dim.size = inferred_size + rhs_prod = sz + break + else: + rhs_prod *= dim.size + + # Final validation that dimensions match + if rhs_prod != sz: + tup = tuple(dims) + raise DimensionBindError( + f"Dimension sizes to do not match ({sz} != {rhs_prod}) when matching dimension pack {tup}" + ) + + # Calculate new sizes and strides for each dimension in the pack + # First calculate all strides by iterating in reverse + new_strides = [0] * len(dims) + current_stride = sd + for i in reversed(range(len(dims))): + new_strides[i] = current_stride + current_stride *= dims[i].size + + # Then append sizes and strides in forward order + for i in range(len(dims)): + nsz.append(dims[i].size) + nsd.append(new_strides[i]) + + +def slice_to_tuple(flat_inputs: list) -> tuple: + return tuple(flat_inputs) + + +def extractIndices(index: Any, indices: list) -> bool: + if isinstance(index, tuple): # mpy::tuple_view::check + indices.extend(index) + return True + elif isinstance(index, torch.Tensor): # THPVariable_Check + indices.append(index) + return False + elif not hasattr(index, "__iter__") or isinstance( + index, (str, bytes) + ): # !mpy::is_sequence + indices.append(index) + return False + + # Handle sequence case (list) + if isinstance(index, list): + if len(index) >= 32: + indices.extend(index) + return True + + # Check each item in the sequence + for item in index: + if ( + isinstance(item, (torch.Tensor, slice)) + or hasattr(item, "__iter__") + or item is ... + or item is None + or has_dims(item) + ): + indices.extend(index) + return True + + # If we got here, treat as single index + indices.append(index) + return False + + # Default case + indices.append(index) + return False + + +def getitem(cls: Any, func: Any, types: Any, args: Any, kwargs: Any) -> Any: + self = args[0] + index = args[1] + + iinfo = getsetitem(self, index, has_dims(self)) + if iinfo.can_call_original: + # Call original tensor __getitem__ directly, bypassing __torch_function__ + return torch.Tensor.__getitem__(self, index) + + return invoke_getitem(iinfo) + + +def setitem(self: Any, index: Any, rhs: Any) -> None: + """Set values in tensor using first-class dimensions.""" + from . import DimensionBindError, TensorInfo + + iinfo = getsetitem(self, index, has_dims(self) or has_dims(rhs)) + + if iinfo.can_call_original: + # Call original tensor __setitem__ directly, bypassing __torch_function__ + torch._C.TensorBase.__setitem__(self, index, rhs) + return + + # Handle RHS tensor with dimensions + rhs_info = TensorInfo.create(rhs, False, False) + + if rhs_info: + # Check that rhs dimensions are compatible with result dimensions + for l in rhs_info.levels: + if not l.is_positional(): + # Find this dimension in result levels + found = False + for result_level in iinfo.result_levels: + if ( + not result_level.is_positional() + and result_level.dim() is l.dim() + ): + found = True + break + + if not found: + # Create tuple representation of result levels for error message + result_dims: list[Union[int, Dim]] = [] + for rl in iinfo.result_levels: + if rl.is_positional(): + result_dims.append(rl.position()) + else: + result_dims.append(rl.dim()) + + raise DimensionBindError( + f"rhs of setitem contains dimension {l.dim()!r} which is not in the dimension on the left " + f"({tuple(result_dims)!r})" + ) + + # Match RHS tensor to result levels + assert rhs_info.tensor is not None, "Cannot match levels on None tensor" + matched_rhs = _match_levels( + rhs_info.tensor, rhs_info.levels, iinfo.result_levels + ) + else: + matched_rhs = rhs + + # For advanced indexing with dimensions, we need special handling + if iinfo.advanced_indexing: + # Use advanced indexing - the flat_inputs already contain matched tensors + tup = slice_to_tuple(iinfo.flat_inputs) + if iinfo.self_tensor is None: + raise RuntimeError("Cannot setitem on None tensor") + torch._C.TensorBase.__setitem__(iinfo.self_tensor, tup, matched_rhs) + else: + # Simple copy operation + if iinfo.self_tensor is None: + raise RuntimeError("Cannot copy to None tensor") + iinfo.self_tensor.copy_(matched_rhs) + + +def invoke_getitem(iinfo: IndexingInfo) -> Any: + if iinfo.advanced_indexing: + self_tensor = iinfo.self_tensor + tup = slice_to_tuple(iinfo.flat_inputs) + if self_tensor is None: + raise RuntimeError("Cannot getitem on None tensor") + rtensor = self_tensor[tup] + else: + rtensor = iinfo.self_tensor # type: ignore[assignment] + if rtensor is None: + raise RuntimeError("Cannot getitem on None tensor") + # rtensor is now guaranteed to be not None + + # Create a Tensor with the proper dimensions using the class method + from . import Tensor + + return Tensor.from_positional(rtensor, iinfo.result_levels, iinfo.has_device) + + +def getsetitem(self: Any, index: Any, tensors_have_dims: bool) -> IndexingInfo: + from . import DimList # Import DimList for type checking + + can_call_original_getitem = not tensors_have_dims + + input_list = [] + if has_dims(index): + input_list.append(index) + else: + is_sequence = extractIndices(index, input_list) + # nothing about first class dims here, fallback to getitem + if can_call_original_getitem and not is_sequence: + return IndexingInfo(can_call_original=True) + + # Calculate how many dimensions have been indexed in order to compute the + # size of ... or expand a potentially unbound dimension list. + dims_indexed = 0 + expanding_object = -1 + unbound_dim_list = None + dimlists = [] # Track DimList positions for later processing + + def check_expanding(i: int) -> None: + nonlocal expanding_object + if expanding_object != -1: + from . import DimensionBindError + + raise DimensionBindError( + f"at most one ... or unbound dimension list can exist in indexing list but found 2 at offsets " + f"{expanding_object} and {i}" + ) + expanding_object = i + + def is_dimpack(s: Any) -> bool: + from . import Dim + + return ( + isinstance(s, (tuple, list)) + and len(s) > 0 + and all(Dim.check_exact(item) for item in s) + ) + + has_dimpacks_or_none = False + for i, s in enumerate(input_list): + if has_dims(s): + can_call_original_getitem = False + dims_indexed += 1 + elif s is ...: + check_expanding(i) + elif isinstance(s, DimList): + can_call_original_getitem = False + if not s.is_bound: + check_expanding(i) + unbound_dim_list = s + else: + dims_indexed += len(s._dims) + dimlists.append(i) + elif s is None: + has_dimpacks_or_none = True + elif is_dimpack(s): + can_call_original_getitem = False + has_dimpacks_or_none = True + dims_indexed += 1 + else: + dims_indexed += 1 + + # Early return if we can use original getitem + if can_call_original_getitem: + return IndexingInfo(can_call_original=True) + + self_info = TensorInfo.create(self, False, True) + total_dims = len(self_info.levels) # Total dimensions (positional + named) + if dims_indexed > total_dims: + raise ValueError( + f"at least {dims_indexed} indices were supplied but the tensor only has {total_dims} dimensions" + ) + + # Expand any unbound dimension list, or expand ... into individual : slices. + expanding_dims = total_dims - dims_indexed + if expanding_object != -1: + if unbound_dim_list is not None: + # Bind unbound dimension list to the expanding dimensions + unbound_dim_list.bind_len(expanding_dims) + else: + # Expand ... into slice(None) objects + no_slices = [slice(None)] * expanding_dims + input_list = ( + input_list[:expanding_object] + + no_slices + + input_list[expanding_object + 1 :] + ) + + # Flatten out any dimensions stored in dimlist elements directly into the inputs + # Process in reverse order to maintain indices + for i in range(len(dimlists) - 1, -1, -1): + idx = dimlists[i] + + # We added more elements to input because of ... + # so we need to also adjust the index to get back to where the + # dimlist existed + if ( + unbound_dim_list is None + and expanding_object != -1 + and idx > expanding_object + ): + idx += expanding_dims + + dl = input_list[idx] + + # PRIVATE here naughty + input_list = input_list[:idx] + dl._dims + input_list[idx + 1 :] + + return getsetitem_flat(self_info, input_list, [], [], has_dimpacks_or_none) + + +def getsetitem_flat( + self_info: TensorInfo, + input_list: list, + keys: list[DimEntry], + values: list, + has_dimpacks_or_none: bool, +) -> IndexingInfo: + from . import Dim + + # Track dimension usage + seen_dims: list[Any] = [] + seen_dims_nuses: list[int] = [] + + def add_dim(dim: Any) -> None: + # Use safe indexing to avoid triggering __torch_function__ on Dim objects + idx = _safe_index(seen_dims, dim) + if idx is not None: + seen_dims_nuses[idx] += 1 + else: + seen_dims.append(dim) + seen_dims_nuses.append(1) + + flat_inputs = [] + tensor_inputs: list[Any] = [] + device_holding_tensor = None + + def append_flat_handle(handle: Any) -> None: + flat_inputs.append(handle) + tensor_inputs.append(None) + + def append_tensor_input(ti: TensorInfo) -> None: + flat_inputs.append(None) + tensor_inputs.append(ti) + nonlocal device_holding_tensor + if ti.has_device and device_holding_tensor is None: + device_holding_tensor = ti.tensor + + nsz = [] + nsd = [] + if self_info.tensor is None: + raise RuntimeError("Cannot get size/stride on None tensor") + sz = self_info.tensor.size() + sd = self_info.tensor.stride() + + def append_size(i: int) -> None: + if has_dimpacks_or_none: + nsz.append(sz[i]) + nsd.append(sd[i]) + + input_it = input_list[:] + + def parse_nones() -> None: + nonlocal input_it + while input_it and input_it[0] is None: + append_flat_handle(slice(None)) + nsz.append(1) + nsd.append(0) + input_it = input_it[1:] + + def append_item(i: int, arg: Any) -> None: + if Dim.check_exact(arg): + d = arg + if d._size == -1: + d.size = sz[i] + add_dim(d) + append_size(i) + append_flat_handle(arg) + return + + info = TensorInfo.create(arg, False, False) + if info: + append_size(i) + append_tensor_input(info) + for level in info.levels: + if not level.is_positional(): + add_dim(level.dim()) + return + + if has_dimpacks_or_none: + if isinstance(arg, (tuple, list)) and all(Dim.check_exact(d) for d in arg): + # dim pack + dim_pack = list(arg) + for d in dim_pack: + add_dim(d) + append_flat_handle(d) + _bind_dims_to_size(sz[i], sd[i], dim_pack, nsz, nsd) + return + + append_size(i) + append_flat_handle(arg) + + # Match indexing expressions with tensor dimensions + for i, level in enumerate(self_info.levels): + # Use safe indexing to avoid triggering __torch_function__ on DimEntry comparisons + idx = _safe_index(keys, level) + if idx is not None: + append_item(i, values[idx]) + else: + if level.is_positional(): + parse_nones() + if not input_it: + append_flat_handle(slice(None)) + append_size(i) + else: + arg = input_it[0] + input_it = input_it[1:] + append_item(i, arg) + else: + add_dim(level.dim()) + append_flat_handle(level.dim()) + append_size(i) + + parse_nones() + + # Restride tensor if needed + if has_dimpacks_or_none and nsz: + if self_info.tensor is None: + raise RuntimeError("Cannot restride None tensor") + self_tensor = self_info.tensor.as_strided( + nsz, nsd, self_info.tensor.storage_offset() + ) + else: + self_tensor = self_info.tensor + + # Determine result shape and indexing requirements + result_levels: list[Any] = [] + index_levels = [] + tensor_insert_point = -1 + requires_getindex = False + + def mark_tensor_index() -> None: + nonlocal tensor_insert_point + if tensor_insert_point == -1: + tensor_insert_point = len(result_levels) + elif tensor_insert_point != len(result_levels): + tensor_insert_point = 0 + + for i, inp in enumerate(flat_inputs): + if tensor_inputs[i] is not None: + requires_getindex = True + mark_tensor_index() + for level in tensor_inputs[i].levels: + if level not in index_levels: + index_levels.append(level) + elif Dim.check_exact(inp): + d = inp + # Use safe indexing to avoid triggering __torch_function__ + dim_idx = _safe_index(seen_dims, d) + assert dim_idx is not None, f"Dim {d} not found in seen_dims" + if seen_dims_nuses[dim_idx] == 1: + flat_inputs[i] = slice(None) + result_levels.append(DimEntry(d)) + else: + requires_getindex = True + flat_inputs[i] = None + tensor_inputs[i] = TensorInfo( + d._get_range(), [DimEntry(d)], False, None + ) + if DimEntry(d) not in index_levels: + index_levels.append(DimEntry(d)) + mark_tensor_index() + else: + if inp != slice(None): + requires_getindex = True + if not isinstance(inp, int): + result_levels.append(DimEntry(-1)) + + # Insert indexing dimensions at first tensor use point + if tensor_insert_point != -1: + for level in reversed(index_levels): + result_levels.insert(tensor_insert_point, level) + + # Match tensors to indexing shape + if requires_getindex: + for i in range(len(flat_inputs)): + if tensor_inputs[i] is not None: + t = tensor_inputs[i].tensor + assert t is not None, "TensorInfo should have valid tensor data" + if ( + not tensor_inputs[i].has_device + and device_holding_tensor is not None + ): + t = t.to(device_holding_tensor.device) + flat_inputs[i] = _match_levels(t, tensor_inputs[i].levels, index_levels) + + # Number positional dimensions correctly + seen_positionals = 0 + for i in reversed(range(len(result_levels))): + if result_levels[i].is_positional(): + seen_positionals += 1 + result_levels[i] = DimEntry(-seen_positionals) + + return IndexingInfo( + can_call_original=False, + advanced_indexing=requires_getindex, + self_tensor=self_tensor, + flat_inputs=flat_inputs, + result_levels=result_levels, + has_device=self_info.has_device, + ) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/_order.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/_order.py new file mode 100644 index 0000000000000000000000000000000000000000..baa0f82e4b2a2f89dbb9c27fe32d6ab1bcce42ab --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/_order.py @@ -0,0 +1,214 @@ +from __future__ import annotations + +from typing import Any, TYPE_CHECKING, Union + + +if TYPE_CHECKING: + from collections.abc import Sequence + +import torch # noqa: TC002 + +from ._dim_entry import _match_levels, DimEntry, ndim_of_levels + + +def _wrap_dim(arg: Any, orig_ndim: int, allow_none: bool = True) -> DimEntry: + """ + Convert various dimension representations to DimEntry. + + Args: + arg: The argument to convert (Dim, int, or other) + orig_ndim: Original number of dimensions + allow_none: Whether to allow None values + + Returns: + DimEntry representation of the dimension + """ + from . import Dim + + if arg is None and allow_none: + return DimEntry() # None entry + elif isinstance(arg, Dim): + return DimEntry(arg) + elif isinstance(arg, int): + if arg < 0: + pos = arg + else: + pos = arg - orig_ndim + return DimEntry(pos) + else: + return DimEntry() + + +def order( + tensor_or_dim: Union[torch.Tensor, Any], *dims: Union[Any, Sequence[Any]] +) -> torch.Tensor: + """ + Reorder the dimensions of a tensor or create a tensor from a dimension. + + It allows reordering tensor dimensions using first-class dimensions and + positional indices. + + Args: + tensor_or_dim: Input tensor with first-class dimensions, or a Dim object + *dims: Dimensions or sequences of dimensions specifying the new order + + Returns: + Tensor with reordered dimensions + + Examples: + >>> import torch + >>> from functorch.dim import dims + >>> batch, channel, height, width = dims(4) + >>> x = torch.randn(2, 3, 4, 5)[batch, channel, height, width] + >>> # Reorder to [height, width, batch, channel] + >>> y = order(x, height, width, batch, channel) + """ + from . import Dim, DimList, Tensor + + # Handle first argument - tensor or dimension + if isinstance(tensor_or_dim, Tensor): + # First-class tensor + orig_levels = tensor_or_dim._levels[:] + data = tensor_or_dim._tensor + has_device = tensor_or_dim._has_device + elif isinstance(tensor_or_dim, Dim): + # Single dimension - create range tensor + orig_levels = [DimEntry(tensor_or_dim)] + data = tensor_or_dim._get_range() + has_device = False + else: + raise ValueError("First argument must be a Tensor or Dim object") + + flat_positional_dims = [] + to_flatten = [] # List of (start_index, length) pairs for flattening + levels = orig_levels[:] + + orig_ndim = ndim_of_levels(levels) + + def append_dim(d: DimEntry) -> None: + """Add a dimension to the reordering, removing it from available levels.""" + try: + idx = levels.index(d) + except ValueError: + idx = None + if idx is None: + if d.is_positional(): + raise ValueError( + f"tensor has {orig_ndim} positional dimensions, but {d.position() + orig_ndim} specified, " + f"or it was specified twice" + ) + else: + raise ValueError( + f"tensor does not contain dim {d.dim()} or it was specified twice" + ) + + levels[idx] = DimEntry() + flat_positional_dims.append(d) + + n_new_positional = 0 + + # Process each dimension argument + for arg in dims: + entry = _wrap_dim(arg, orig_ndim, False) + if not entry.is_none(): + append_dim(entry) + n_new_positional += 1 + elif isinstance(arg, DimList): + # Handle DimList + for dim in arg._dims: + append_dim(DimEntry(dim)) + n_new_positional += 1 + else: + # Handle sequences of dimensions for flattening + n_new_positional += 1 + if not hasattr(arg, "__iter__"): + raise ValueError("expected a Dim, List[Dim], or Sequence[Dim]") + + # Convert to list to get length + seq = list(arg) + to_flatten.append((len(flat_positional_dims), len(seq))) + + for item in seq: + entry = _wrap_dim(item, orig_ndim, False) + if entry.is_none(): + raise ValueError("expected a Dim or int") + append_dim(entry) + + # Build new level ordering + insert_point = -1 + new_levels: list[DimEntry] = [] + + # Add remaining (non-reordered) levels, finding insertion point for new dimensions + for level in levels: + if level.is_none(): + continue + if level.is_positional(): + if insert_point == -1: + insert_point = len(new_levels) + new_levels.extend(flat_positional_dims) + new_levels.append(level) + + # If no positional dimensions found, append new dims at the end + if insert_point == -1: + insert_point = len(new_levels) + new_levels.extend(flat_positional_dims) + + # Match tensor to new level structure + assert data is not None, "Cannot reorder None tensor" + ndata = _match_levels(data, orig_levels, new_levels) + + # Handle dimension flattening if requested + if to_flatten: + # Now build the reshape target + view_shape = [] + sizes = ndata.size() + + # Add dimensions before the reordered ones + for i in range(insert_point): + view_shape.append(sizes[i]) + + # Process flattening groups + i = 0 + for start_idx, length in to_flatten: + # Add individual dims before this flattening group + while i < start_idx: + view_shape.append(sizes[insert_point + i]) + i += 1 + + # Flatten the group + new_size = 1 + for j in range(length): + new_size *= sizes[insert_point + i + j] + view_shape.append(new_size) + i += length + + # Add remaining individual dims + while i < len(flat_positional_dims): + view_shape.append(sizes[insert_point + i]) + i += 1 + + # Add dimensions after the reordered ones + for i in range(insert_point + len(flat_positional_dims), len(levels)): + view_shape.append(sizes[i]) + + # Update levels by removing flattened dimensions + n_to_remove = len(flat_positional_dims) - n_new_positional + if n_to_remove > 0: + # Remove flattened levels + new_levels = ( + new_levels[:insert_point] + new_levels[insert_point + n_to_remove :] + ) + + ndata = ndata.reshape(view_shape) + + # Renumber positional dimensions (negative indexing from the right) + seen = 0 + for i in range(len(new_levels) - 1, -1, -1): + if new_levels[i].is_positional() or ( + i >= insert_point and i < insert_point + n_new_positional + ): + seen -= 1 + new_levels[i] = DimEntry(seen) + + result = Tensor.from_positional(ndata, new_levels, has_device) + return result # type: ignore[return-value] diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/_py_inst_decoder.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/_py_inst_decoder.py new file mode 100644 index 0000000000000000000000000000000000000000..7f08ebb8557fb456e66eb2e2b8cf788d51098c20 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/_py_inst_decoder.py @@ -0,0 +1,67 @@ +import dis +from typing import Any, Optional + + +class _PyInstDecoder: + """ + Decodes Python bytecode instructions to extract variable names + """ + + def __init__(self, code_object: Any, lasti: int) -> None: + self.code_object = code_object + self.instructions = list(dis.get_instructions(code_object)) + self.offset = self._find_instruction_index(lasti) + + def _find_instruction_index(self, lasti: int) -> int: + """Find instruction index corresponding to lasti (byte offset).""" + # Find the instruction at or before lasti + # This should find the CALL instruction, not the next one + best_idx = 0 + for i, instr in enumerate(self.instructions): + if instr.offset <= lasti: + best_idx = i + else: + break + return best_idx + + def next(self) -> None: + """Advance to the next instruction.""" + self.offset += 1 + + def opcode(self) -> Optional[str]: + """Get the opcode name of the current instruction.""" + if self.offset < len(self.instructions): + return self.instructions[self.offset].opname + return None + + def oparg(self) -> int: + """Get the argument of the current instruction.""" + if self.offset < len(self.instructions): + return self.instructions[self.offset].arg or 0 + return 0 + + def name(self) -> Optional[str]: + """ + Extract variable name from current instruction. + """ + opname = self.opcode() + if not opname: + return None + + names = None + if opname in ("STORE_NAME", "STORE_GLOBAL"): + names = self.code_object.co_names + elif opname == "STORE_FAST": + names = self.code_object.co_varnames + elif opname == "STORE_DEREF": + names = self.code_object.co_cellvars + if not names: + names = self.code_object.co_freevars + else: + return None + + arg = self.oparg() + if names and 0 <= arg < len(names): + return names[arg] + + return None diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/_tensor_info.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/_tensor_info.py new file mode 100644 index 0000000000000000000000000000000000000000..1e2513e36c05882452a6b83ca9e8d67234bf82d1 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/_tensor_info.py @@ -0,0 +1,68 @@ +from __future__ import annotations + +from dataclasses import dataclass +from typing import Any, Optional, TYPE_CHECKING + +import torch + + +if TYPE_CHECKING: + from ._dim_entry import DimEntry + + +@dataclass +class TensorInfo: + tensor: Optional[torch.Tensor] + levels: list[DimEntry] + has_device: bool + batchedtensor: Optional[torch.Tensor] + + def __post_init__(self) -> None: + from ._dim_entry import DimEntry + + assert all(isinstance(l, DimEntry) for l in self.levels) + + def ndim(self) -> int: + from ._dim_entry import ndim_of_levels + + return ndim_of_levels(self.levels) + + def __bool__(self) -> bool: + return self.tensor is not None + + @staticmethod + def create( + h: Any, ensure_batched: bool = True, ensure_present: bool = True + ) -> TensorInfo: + from . import Dim, DimEntry, Tensor + + if Tensor.check_exact(h): + # functorch Tensor with first-class dimensions + return TensorInfo( + h._get_tensor(), + h._get_levels(), + h._get_has_device(), + h._get_batchtensor() if ensure_batched else None, + ) + elif Dim.check_exact(h): + # For Dim objects, only get range/batchtensor if needed and dimension is bound + tensor = h._get_range() if h.is_bound else None + batchtensor = ( + h._get_batchtensor() if ensure_batched and h.is_bound else None + ) + return TensorInfo( + tensor, + [DimEntry(h)], + False, + batchtensor, + ) + elif isinstance(h, torch.Tensor): + # Plain torch tensor - create positional levels + levels = [] + for i in range(-h.dim(), 0): + levels.append(DimEntry(i)) + return TensorInfo(h, levels, True, h) + else: + if ensure_present: + raise ValueError("expected a tensor object") + return TensorInfo(None, [], False, None) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/_wrap.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/_wrap.py new file mode 100644 index 0000000000000000000000000000000000000000..3c3a12b54cebc815f733e3400768528a2a9fd419 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/_wrap.py @@ -0,0 +1,267 @@ +""" +Python implementation of function wrapping functionality for functorch.dim. +""" + +from __future__ import annotations + +import functools +from typing import Any, Optional, TYPE_CHECKING + +import torch +from torch.utils._pytree import tree_map + +from ._dim_entry import DimEntry +from ._enable_all_layers import EnableAllLayers +from ._tensor_info import TensorInfo + + +if TYPE_CHECKING: + from collections.abc import Callable + + +def handle_from_tensor(tensor: torch.Tensor) -> torch.Tensor: + """Handle tensor conversion for torch function integration.""" + return tensor + + +class WrappedOperator: + """ + This class wraps PyTorch operations to support first-class dimensions. + """ + + def __init__( + self, orig: Callable, wrapper_implementation: Callable, dim_name: str = "dim" + ): + self.orig = orig + self.wrapper_implementation = wrapper_implementation + self.name = getattr(orig, "__name__", "") + self.doc = getattr(orig, "__doc__", None) + self.dim_name = dim_name + + self.is_pointwise = False + self.dim_offset = 0 + self.keepdim_offset = 1 + self.single_dim = False + self.reduce = True + + # Update docstring if we have a dim_name + if self.doc and self.dim_name: + self.doc = f"{self.doc}\nArgument '{self.dim_name}' can be either an integer or a torchdim.Dim object.\n" + + def function(self) -> Callable: + """Create a wrapped function that calls our wrapper implementation.""" + + def wrapped_func(*args: Any, **kwargs: Any) -> Any: + return self.wrapper_implementation(self, *args, **kwargs) + + # Copy metadata using functools.update_wrapper for just __name__ and __doc__ + functools.update_wrapper( + wrapped_func, self.orig, assigned=("__name__",), updated=() + ) + wrapped_func.__doc__ = self.doc + + return wrapped_func + + +def _wrap_dim(dim: Any, ndim: int, keepdim: bool = False) -> DimEntry: + """Convert single dimension specification to DimEntry object.""" + from . import Dim + + if isinstance(dim, Dim): + if keepdim: + raise ValueError("cannot preserve first-class dimensions with keepdim=True") + return DimEntry(dim) + elif isinstance(dim, int): + i = dim + while i >= 0: + i -= ndim + return DimEntry(i) + else: + return DimEntry() + + +def _wrap_dims(dim: Any, ndim: int, keepdim: bool = False) -> list[DimEntry]: + """Convert dimension specification to list of DimEntry objects.""" + de = _wrap_dim(dim, ndim, keepdim) + result = [] + if not de.is_none(): + result.append(de) + else: + for d in dim: + result.append(_wrap_dim(d, ndim, keepdim)) + return result + + +def patched_dim_method(wrapper: WrappedOperator, *args: Any, **kwargs: Any) -> Any: + """ + This is the core method that handles dimension-aware operations. + """ + if not args: + raise ValueError("Expected at least one argument (self)") + + # Get dimension argument + dim_arg = kwargs.get(wrapper.dim_name) + if dim_arg is None and wrapper.dim_offset < len(args): + # Try to get dim from positional args (accounting for self at index 0) + dim_idx = wrapper.dim_offset + 1 + if dim_idx < len(args): + dim_arg = args[dim_idx] + + # If no dimension argument provided, fall back to standard functorch handling + if dim_arg is None: + info = TensorInfo.create(args[0], ensure_batched=True, ensure_present=False) + if not info: + return wrapper.orig(*args, **kwargs) + + with EnableAllLayers(info.levels) as guard: + assert info.batchedtensor is not None + guard.inplace_update_layers(info.batchedtensor, info.levels) + new_args = list(args) + new_args[0] = handle_from_tensor(info.batchedtensor) + result = wrapper.orig(*new_args, **kwargs) + return guard.from_batched(result, info.has_device) + + # Handle dimension-aware operation + info = TensorInfo.create(args[0]) + if not info: + return wrapper.orig(*args, **kwargs) + + # Check for keepdim parameter + keepdim = False + if wrapper.reduce: + keepdim_arg = kwargs.get("keepdim") + if keepdim_arg is None and wrapper.keepdim_offset < len(args): + keepdim_idx = wrapper.keepdim_offset + 1 + if keepdim_idx < len(args): + keepdim_arg = args[keepdim_idx] + if keepdim_arg is not None: + keepdim = bool(keepdim_arg) + + # Wrap dimensions + ndim = info.ndim() + dims = _wrap_dims(dim_arg, ndim, keepdim) + + # Convert dimensions to indices and validate + dim_indices: list[int] = [] + seen = [False] * len(info.levels) + + for d in dims: + midx = None + for i, level in enumerate(info.levels): + if level == d: + midx = i + break + + if midx is None: + # Try to match by position/name more flexibly + for i, level in enumerate(info.levels): + if hasattr(level, "matches") and level.matches(d): + midx = i + break + + if midx is None: + level_strs = [str(level) for level in info.levels] + raise ValueError( + f"Tensor with dimensions {level_strs} does not contain {d}" + ) + + seen[midx] = True + dim_indices.append(midx) + + # Determine new levels after reduction + new_levels = [] + if wrapper.reduce and not keepdim: + for i, level in enumerate(info.levels): + if not seen[i]: + new_levels.append(level) + else: + new_levels = info.levels[:] + + # Create dimension indices for the original function + if len(dim_indices) == 1: + py_indices: Any = dim_indices[0] + else: + py_indices = tuple(dim_indices) + + # Update arguments + new_args = list(args) + new_kwargs = kwargs.copy() + assert info.tensor is not None + new_args[0] = handle_from_tensor(info.tensor) + + # Update dimension argument + if wrapper.dim_name in new_kwargs: + new_kwargs[wrapper.dim_name] = py_indices + else: + dim_idx = wrapper.dim_offset + 1 + if dim_idx < len(new_args): + new_args = list(new_args) + new_args[dim_idx] = py_indices + + # Call original function + result = wrapper.orig(*new_args, **new_kwargs) + + # Wrap results + def wrap_result(obj: Any) -> Any: + if isinstance(obj, torch.Tensor): + from . import Tensor + + return Tensor.from_positional(obj, new_levels, info.has_device) + return obj + + return tree_map(wrap_result, result) + + +def _wrap( + orig: Callable, + dim_offset: Optional[int] = None, + keepdim_offset: Optional[int] = None, + dim_name: Optional[str] = None, + single_dim: Optional[bool] = None, + reduce: Optional[bool] = None, +) -> Callable: + """ + Wrap a PyTorch function to support first-class dimensions. + + Args: + orig: Original function to wrap + dim_offset: Offset for dimension argument (default: 0) + keepdim_offset: Offset for keepdim argument (default: 1) + dim_name: Name of dimension parameter (default: "dim") + single_dim: Whether function takes single dimension (default: False) + reduce: Whether function reduces dimensions (default: True) + """ + dim_name = dim_name or "dim" + + wrapper = WrappedOperator(orig, patched_dim_method, dim_name) + + if dim_offset is not None: + wrapper.dim_offset = dim_offset + if keepdim_offset is not None: + wrapper.keepdim_offset = keepdim_offset + if single_dim is not None: + wrapper.single_dim = single_dim + if reduce is not None: + wrapper.reduce = reduce + + return wrapper.function() + + +def call_torch_function( + wrapper: WrappedOperator, + func: Callable, + types: tuple, + args: tuple = (), + kwargs: Optional[dict] = None, +) -> Any: + """ + Handle __torch_function__ calls for wrapped operators. + """ + if kwargs is None: + kwargs = {} + + # Import here to avoid circular imports + from . import _Tensor + + # Use the torch function mechanism from _Tensor + return _Tensor.__torch_function__(func, types, args, kwargs) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/magic_trace.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/magic_trace.py new file mode 100644 index 0000000000000000000000000000000000000000..d3be42cd5514c587b31ab8009e55d5e363bbd6c5 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/magic_trace.py @@ -0,0 +1,47 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# All rights reserved. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. +import os +import signal +import subprocess +from collections.abc import Generator +from contextlib import contextmanager + + +@contextmanager +def magic_trace( + output: str = "trace.fxt", magic_trace_cache: str = "/tmp/magic-trace" +) -> Generator[None, None, None]: + pid = os.getpid() + if not os.path.exists(magic_trace_cache): + print(f"Downloading magic_trace to: {magic_trace_cache}") + subprocess.run( + [ + "wget", + "-O", + magic_trace_cache, + "-q", + "https://github.com/janestreet/magic-trace/releases/download/v1.0.2/magic-trace", + ] + ) + subprocess.run(["chmod", "+x", magic_trace_cache]) + args = [magic_trace_cache, "attach", "-pid", str(pid), "-o", output] + p = subprocess.Popen(args, stderr=subprocess.PIPE, encoding="utf-8") + assert p.stderr is not None + while True: + x = p.stderr.readline() + print(x) + if "Attached" in x: + break + try: + yield + finally: + p.send_signal(signal.SIGINT) + r = p.wait() + if p.stderr is not None: + print(p.stderr.read()) + p.stderr.close() + if r != 0: + raise ValueError(f"magic_trace exited abnormally: {r}") diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/op_properties.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/op_properties.py new file mode 100644 index 0000000000000000000000000000000000000000..01313f71f030d58ce76c15c7f8516c4a0bdcf48a --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/op_properties.py @@ -0,0 +1,312 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# All rights reserved. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. +import torch + + +# pointwise operators can go through a faster pathway + +tensor_magic_methods = ["add", ""] +pointwise_magic_methods_with_reverse = ( + "add", + "sub", + "mul", + "floordiv", + "div", + "truediv", + "mod", + "pow", + "lshift", + "rshift", + "and", + "or", + "xor", +) +pointwise_magic_methods = ( + *(x for m in pointwise_magic_methods_with_reverse for x in (m, "r" + m)), + "eq", + "gt", + "le", + "lt", + "ge", + "gt", + "ne", + "neg", + "pos", + "abs", + "invert", + "iadd", + "isub", + "imul", + "ifloordiv", + "idiv", + "itruediv", + "imod", + "ipow", + "ilshift", + "irshift", + "iand", + "ior", + "ixor", + "int", + "long", + "float", + "complex", +) + +pointwise_methods = (*(f"__{m}__" for m in pointwise_magic_methods),) + +pointwise = ( + *(getattr(torch.Tensor, m) for m in pointwise_methods), + torch.nn.functional.dropout, + torch.where, + torch.Tensor.abs, + torch.abs, + torch.Tensor.acos, + torch.acos, + torch.Tensor.acosh, + torch.acosh, + torch.Tensor.add, + torch.add, + torch.Tensor.addcdiv, + torch.addcdiv, + torch.Tensor.addcmul, + torch.addcmul, + torch.Tensor.addr, + torch.addr, + torch.Tensor.angle, + torch.angle, + torch.Tensor.asin, + torch.asin, + torch.Tensor.asinh, + torch.asinh, + torch.Tensor.atan, + torch.atan, + torch.Tensor.atan2, + torch.atan2, + torch.Tensor.atanh, + torch.atanh, + torch.Tensor.bitwise_and, + torch.bitwise_and, + torch.Tensor.bitwise_left_shift, + torch.bitwise_left_shift, + torch.Tensor.bitwise_not, + torch.bitwise_not, + torch.Tensor.bitwise_or, + torch.bitwise_or, + torch.Tensor.bitwise_right_shift, + torch.bitwise_right_shift, + torch.Tensor.bitwise_xor, + torch.bitwise_xor, + torch.Tensor.ceil, + torch.ceil, + torch.celu, + torch.nn.functional.celu, + torch.Tensor.clamp, + torch.clamp, + torch.Tensor.clamp_max, + torch.clamp_max, + torch.Tensor.clamp_min, + torch.clamp_min, + torch.Tensor.copysign, + torch.copysign, + torch.Tensor.cos, + torch.cos, + torch.Tensor.cosh, + torch.cosh, + torch.Tensor.deg2rad, + torch.deg2rad, + torch.Tensor.digamma, + torch.digamma, + torch.Tensor.div, + torch.div, + torch.dropout, + torch.nn.functional.dropout, + torch.nn.functional.elu, + torch.Tensor.eq, + torch.eq, + torch.Tensor.erf, + torch.erf, + torch.Tensor.erfc, + torch.erfc, + torch.Tensor.erfinv, + torch.erfinv, + torch.Tensor.exp, + torch.exp, + torch.Tensor.exp2, + torch.exp2, + torch.Tensor.expm1, + torch.expm1, + torch.feature_dropout, + torch.Tensor.float_power, + torch.float_power, + torch.Tensor.floor, + torch.floor, + torch.Tensor.floor_divide, + torch.floor_divide, + torch.Tensor.fmod, + torch.fmod, + torch.Tensor.frac, + torch.frac, + torch.Tensor.frexp, + torch.frexp, + torch.Tensor.gcd, + torch.gcd, + torch.Tensor.ge, + torch.ge, + torch.nn.functional.gelu, + torch.nn.functional.glu, + torch.Tensor.gt, + torch.gt, + torch.Tensor.hardshrink, + torch.hardshrink, + torch.nn.functional.hardshrink, + torch.nn.functional.hardsigmoid, + torch.nn.functional.hardswish, + torch.nn.functional.hardtanh, + torch.Tensor.heaviside, + torch.heaviside, + torch.Tensor.hypot, + torch.hypot, + torch.Tensor.i0, + torch.i0, + torch.Tensor.igamma, + torch.igamma, + torch.Tensor.igammac, + torch.igammac, + torch.Tensor.isclose, + torch.isclose, + torch.Tensor.isfinite, + torch.isfinite, + torch.Tensor.isinf, + torch.isinf, + torch.Tensor.isnan, + torch.isnan, + torch.Tensor.isneginf, + torch.isneginf, + torch.Tensor.isposinf, + torch.isposinf, + torch.Tensor.isreal, + torch.isreal, + torch.Tensor.kron, + torch.kron, + torch.Tensor.lcm, + torch.lcm, + torch.Tensor.ldexp, + torch.ldexp, + torch.Tensor.le, + torch.le, + torch.nn.functional.leaky_relu, + torch.Tensor.lerp, + torch.lerp, + torch.Tensor.lgamma, + torch.lgamma, + torch.Tensor.log, + torch.log, + torch.Tensor.log10, + torch.log10, + torch.Tensor.log1p, + torch.log1p, + torch.Tensor.log2, + torch.log2, + torch.nn.functional.logsigmoid, + torch.Tensor.logical_and, + torch.logical_and, + torch.Tensor.logical_not, + torch.logical_not, + torch.Tensor.logical_or, + torch.logical_or, + torch.Tensor.logical_xor, + torch.logical_xor, + torch.Tensor.logit, + torch.logit, + torch.Tensor.lt, + torch.lt, + torch.Tensor.maximum, + torch.maximum, + torch.Tensor.minimum, + torch.minimum, + torch.nn.functional.mish, + torch.Tensor.mvlgamma, + torch.mvlgamma, + torch.Tensor.nan_to_num, + torch.nan_to_num, + torch.Tensor.ne, + torch.ne, + torch.Tensor.neg, + torch.neg, + torch.Tensor.nextafter, + torch.nextafter, + torch.Tensor.outer, + torch.outer, + torch.polar, + torch.Tensor.polygamma, + torch.polygamma, + torch.Tensor.positive, + torch.positive, + torch.Tensor.pow, + torch.pow, + torch.Tensor.prelu, + torch.prelu, + torch.nn.functional.prelu, + torch.Tensor.rad2deg, + torch.rad2deg, + torch.Tensor.reciprocal, + torch.reciprocal, + torch.Tensor.relu, + torch.relu, + torch.nn.functional.relu, + torch.nn.functional.relu6, + torch.Tensor.remainder, + torch.remainder, + torch.Tensor.round, + torch.round, + torch.rrelu, + torch.nn.functional.rrelu, + torch.Tensor.rsqrt, + torch.rsqrt, + torch.rsub, + torch.selu, + torch.nn.functional.selu, + torch.Tensor.sgn, + torch.sgn, + torch.Tensor.sigmoid, + torch.sigmoid, + torch.nn.functional.sigmoid, + torch.Tensor.sign, + torch.sign, + torch.Tensor.signbit, + torch.signbit, + torch.nn.functional.silu, + torch.Tensor.sin, + torch.sin, + torch.Tensor.sinc, + torch.sinc, + torch.Tensor.sinh, + torch.sinh, + torch.nn.functional.softplus, + torch.nn.functional.softshrink, + torch.Tensor.sqrt, + torch.sqrt, + torch.Tensor.square, + torch.square, + torch.Tensor.sub, + torch.sub, + torch.Tensor.tan, + torch.tan, + torch.Tensor.tanh, + torch.tanh, + torch.nn.functional.tanh, + torch.threshold, + torch.nn.functional.threshold, + torch.trapz, + torch.Tensor.true_divide, + torch.true_divide, + torch.Tensor.trunc, + torch.trunc, + torch.Tensor.xlogy, + torch.xlogy, + torch.rand_like, +) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/wrap_type.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/wrap_type.py new file mode 100644 index 0000000000000000000000000000000000000000..5020e756ce6c68ee78aeb43ae787739a46125cc6 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/dim/wrap_type.py @@ -0,0 +1,71 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# All rights reserved. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +import functools +from collections.abc import Callable +from types import ( + BuiltinMethodType, + FunctionType, + GetSetDescriptorType, + MethodDescriptorType, + WrapperDescriptorType, +) +from typing import Any + + +FUNC_TYPES = ( + FunctionType, + MethodDescriptorType, + BuiltinMethodType, + WrapperDescriptorType, +) +PROPERTY_TYPES = (GetSetDescriptorType, property) + + +def _py_wrap_method(orig: Callable, __torch_function__: Callable) -> Callable: + def impl(*args: Any, **kwargs: Any) -> Any: + return __torch_function__(orig, None, args, kwargs) + + # Copy metadata using functools.update_wrapper for just __name__ and __doc__ + functools.update_wrapper(impl, orig, assigned=("__name__", "__doc__"), updated=()) + + return impl + + +def wrap_type(to_patch: Any, pattern: type, __torch_function__: Callable) -> None: + wrap_method = _py_wrap_method + + all: dict[str, Any] = {} + for t in reversed(pattern.mro()[:-1]): # skip object + all.update(t.__dict__) + + def wrap_attr(orig: Any) -> property: + return property(wrap_method(orig.__get__, __torch_function__)) + + for name, obj in all.items(): + if name in ( + "__dict__", + "__new__", + "__init__", + "__repr__", + "__weakref__", + "__doc__", + "__module__", + "__dir__", + ): + continue + + # skip things that have been overloaded + # things that come from object like `__eq__` still need to be patched, however. + if hasattr(to_patch, name) and getattr(to_patch, name) is not getattr( + object, name, None + ): + continue + + if isinstance(obj, FUNC_TYPES): + setattr(to_patch, name, wrap_method(obj, __torch_function__)) + elif isinstance(obj, PROPERTY_TYPES): + setattr(to_patch, name, wrap_attr(obj)) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/einops/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/einops/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..d7ac34f7a3722010fc0fde97fd1cd72e76fa88b7 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/einops/__init__.py @@ -0,0 +1,4 @@ +from .rearrange import rearrange + + +__all__ = ["rearrange"] diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/einops/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/einops/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..35db0e10f0677f5829d340a87f27c4cf9cd022c7 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/einops/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/einops/__pycache__/_parsing.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/einops/__pycache__/_parsing.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2cd64be247fd60834debfb7c2564266148c74d4a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/einops/__pycache__/_parsing.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/einops/__pycache__/rearrange.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/einops/__pycache__/rearrange.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ab3f42fc18a9a6b506b12066653027312aeb48ba Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/einops/__pycache__/rearrange.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/einops/_parsing.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/einops/_parsing.py new file mode 100644 index 0000000000000000000000000000000000000000..2352ea932426271fdc16f660abb4308ea9b3c924 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/einops/_parsing.py @@ -0,0 +1,308 @@ +"""Adapted from https://github.com/arogozhnikov/einops/blob/36c7bb16e57d6e57f8f3050f9e07abdf3f00469f/einops/parsing.py. + +MIT License + +Copyright (c) 2018 Alex Rogozhnikov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +""" + +from __future__ import annotations + +import keyword +import warnings +from typing import Optional, TYPE_CHECKING, Union + + +if TYPE_CHECKING: + from collections.abc import Collection, Mapping + + +_ellipsis: str = "\u2026" # NB, this is a single unicode symbol. String is used as it is not a list, but can be iterated + + +class AnonymousAxis: + """Used by `ParsedExpression` to represent an axis with a size (> 1), but no associated identifier. + + Note: Different instances of this class are not equal to each other, even if they have the same value. + """ + + def __init__(self, value: str) -> None: + self.value = int(value) + if self.value < 1: + raise ValueError( + f"Anonymous axis should have positive length, not {self.value}" + ) + + def __repr__(self) -> str: + return f"{self.value}-axis" + + +class ParsedExpression: + """Structure containing information about one side of an `einops`-style pattern (e.g. 'b c (h w)').""" + + def __init__( + self, + expression: str, + *, + allow_underscore: bool = False, + allow_duplicates: bool = False, + ) -> None: + """Parse the expression and store relevant metadata. + + Args: + expression (str): the `einops`-pattern to parse + allow_underscore (bool): whether to allow axis identifier names to begin with an underscore + allow_duplicates (bool): whether to allow an identifier to appear more than once in the expression + """ + self.has_ellipsis: bool = False + self.has_ellipsis_parenthesized: Optional[bool] = None + self.identifiers: set[Union[str, AnonymousAxis]] = set() + # that's axes like 2, 3, 4 or 5. Axes with size 1 are exceptional and replaced with empty composition + self.has_non_unitary_anonymous_axes: bool = False + # composition keeps structure of composite axes, see how different corner cases are handled in tests + self.composition: list[Union[list[Union[str, AnonymousAxis]], str]] = [] + if "." in expression: + if "..." not in expression: + raise ValueError( + "Expression may contain dots only inside ellipsis (...)" + ) + if str.count(expression, "...") != 1 or str.count(expression, ".") != 3: + raise ValueError( + "Expression may contain dots only inside ellipsis (...); only one ellipsis for tensor " + ) + expression = expression.replace("...", _ellipsis) + self.has_ellipsis = True + + bracket_group: Optional[list[Union[str, AnonymousAxis]]] = None + + def add_axis_name(x: str) -> None: + if x in self.identifiers: + if not (allow_underscore and x == "_") and not allow_duplicates: + raise ValueError( + f"Indexing expression contains duplicate dimension '{x}'" + ) + if x == _ellipsis: + self.identifiers.add(_ellipsis) + if bracket_group is None: + self.composition.append(_ellipsis) + self.has_ellipsis_parenthesized = False + else: + bracket_group.append(_ellipsis) + self.has_ellipsis_parenthesized = True + else: + is_number = str.isdecimal(x) + if is_number and int(x) == 1: + # handling the case of anonymous axis of length 1 + if bracket_group is None: + self.composition.append([]) + else: + pass # no need to think about 1s inside parenthesis + return + is_axis_name, reason = self.check_axis_name_return_reason( + x, allow_underscore=allow_underscore + ) + if not (is_number or is_axis_name): + raise ValueError(f"Invalid axis identifier: {x}\n{reason}") + axis_name: Union[str, AnonymousAxis] = ( + AnonymousAxis(x) if is_number else x + ) + self.identifiers.add(axis_name) + if is_number: + self.has_non_unitary_anonymous_axes = True + if bracket_group is None: + self.composition.append([axis_name]) + else: + bracket_group.append(axis_name) + + current_identifier = None + for char in expression: + if char in "() ": + if current_identifier is not None: + add_axis_name(current_identifier) + current_identifier = None + if char == "(": + if bracket_group is not None: + raise ValueError( + "Axis composition is one-level (brackets inside brackets not allowed)" + ) + bracket_group = [] + elif char == ")": + if bracket_group is None: + raise ValueError("Brackets are not balanced") + self.composition.append(bracket_group) + bracket_group = None + elif str.isalnum(char) or char in ["_", _ellipsis]: + if current_identifier is None: + current_identifier = char + else: + current_identifier += char + else: + raise ValueError(f"Unknown character '{char}'") + + if bracket_group is not None: + raise ValueError(f"Imbalanced parentheses in expression: '{expression}'") + if current_identifier is not None: + add_axis_name(current_identifier) + + @staticmethod + def check_axis_name_return_reason( + name: str, allow_underscore: bool = False + ) -> tuple[bool, str]: + """Check if the given axis name is valid, and a message explaining why if not. + + Valid axes names are python identifiers except keywords, and should not start or end with an underscore. + + Args: + name (str): the axis name to check + allow_underscore (bool): whether axis names are allowed to start with an underscore + + Returns: + tuple[bool, str]: whether the axis name is valid, a message explaining why if not + """ + if not str.isidentifier(name): + return False, "not a valid python identifier" + elif name[0] == "_" or name[-1] == "_": + if name == "_" and allow_underscore: + return True, "" + return False, "axis name should should not start or end with underscore" + else: + if keyword.iskeyword(name): + warnings.warn( + f"It is discouraged to use axes names that are keywords: {name}", + RuntimeWarning, + ) + if name in ["axis"]: + warnings.warn( + "It is discouraged to use 'axis' as an axis name and will raise an error in future", + FutureWarning, + ) + return True, "" + + @staticmethod + def check_axis_name(name: str) -> bool: + """Check if the name is a valid axis name. + + Args: + name (str): the axis name to check + + Returns: + bool: whether the axis name is valid + """ + is_valid, _ = ParsedExpression.check_axis_name_return_reason(name) + return is_valid + + +def parse_pattern( + pattern: str, axes_lengths: Mapping[str, int] +) -> tuple[ParsedExpression, ParsedExpression]: + """Parse an `einops`-style pattern into a left-hand side and right-hand side `ParsedExpression` object. + + Args: + pattern (str): the `einops`-style rearrangement pattern + axes_lengths (Mapping[str, int]): any additional length specifications for dimensions + + Returns: + tuple[ParsedExpression, ParsedExpression]: a tuple containing the left-hand side and right-hand side expressions + """ + # adapted from einops.einops._prepare_transformation_recipe + # https://github.com/arogozhnikov/einops/blob/230ac1526c1f42c9e1f7373912c7f8047496df11/einops/einops.py + try: + left_str, right_str = pattern.split("->") + except ValueError: + raise ValueError("Pattern must contain a single '->' separator") from None + + if _ellipsis in axes_lengths: + raise ValueError(f"'{_ellipsis}' is not an allowed axis identifier") + + left = ParsedExpression(left_str) + right = ParsedExpression(right_str) + + if not left.has_ellipsis and right.has_ellipsis: + raise ValueError( + f"Ellipsis found in right side, but not left side of a pattern {pattern}" + ) + if left.has_ellipsis and left.has_ellipsis_parenthesized: + raise ValueError( + f"Ellipsis is parenthesis in the left side is not allowed: {pattern}" + ) + + return left, right + + +def validate_rearrange_expressions( + left: ParsedExpression, right: ParsedExpression, axes_lengths: Mapping[str, int] +) -> None: + """Perform expression validations that are specific to the `rearrange` operation. + + Args: + left (ParsedExpression): left-hand side expression + right (ParsedExpression): right-hand side expression + axes_lengths (Mapping[str, int]): any additional length specifications for dimensions + """ + for length in axes_lengths.values(): + if (length_type := type(length)) is not int: + raise TypeError( + f"rearrange axis lengths must be integers, got: {length_type}" + ) + + if left.has_non_unitary_anonymous_axes or right.has_non_unitary_anonymous_axes: + raise ValueError("rearrange only supports unnamed axes of size 1") + + difference = set.symmetric_difference(left.identifiers, right.identifiers) + if len(difference) > 0: + raise ValueError( + f"Identifiers only on one side of rearrange expression (should be on both): {difference}" + ) + + unmatched_axes = axes_lengths.keys() - left.identifiers + if len(unmatched_axes) > 0: + raise ValueError( + f"Identifiers not found in rearrange expression: {unmatched_axes}" + ) + + +def comma_separate(collection: Collection[Union[str, Collection[str]]]) -> str: + """Convert a collection of strings representing first class dims into a comma-separated string. + + Args: + collection (Collection[Union[str, Collection[str]]]): the collection of strings to convert + + Returns: + str: the comma-separated string + + Examples: + >>> comma_separate(("d0",)) + 'd0' + + >>> comma_separate(("d0", "d1", "d2", "d3")) + 'd0, d1, d2, d3' + + >>> comma_separate([("d1", "d4")]) + '(d1, d4)' + + >>> comma_separate([("d0",), (), ("d1",), ("d2",), ("d3", "d4")]) + '(d0,), (), (d1,), (d2,), (d3, d4)' + """ + return ", ".join( + item + if isinstance(item, str) + else f"({comma_separate(item)}{',' if len(item) == 1 else ''})" + for item in collection + ) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/einops/rearrange.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/einops/rearrange.py new file mode 100644 index 0000000000000000000000000000000000000000..21e3bfaad4d8351053d29883a228b837947d1924 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/einops/rearrange.py @@ -0,0 +1,209 @@ +from __future__ import annotations + +import functools +from typing import TYPE_CHECKING, Union + +import torch +from functorch.dim import dims # noqa: F401 + +from ._parsing import ( + _ellipsis, + AnonymousAxis, + comma_separate, + parse_pattern, + validate_rearrange_expressions, +) + + +if TYPE_CHECKING: + from collections.abc import Callable, Sequence + +__all__ = ["rearrange"] + + +@functools.lru_cache(256) +def _create_rearrange_callable( + tensor_ndim: int, pattern: str, **axes_lengths: int +) -> Callable[[torch.Tensor], torch.Tensor]: + r"""Translate an `einops`-style pattern into a callable that performs the rearrange using first-class dimensions. + + Since the an equivalent result is computed for tensors with the same number of dimensions, with the same pattern and + specified axes lengths, this function can be memoized. + + Args: + tensor_ndim (int): the number of dimensions in the tensor to rearrange + pattern (str): the `einops`-style rearrangement pattern + axes_lengths (int): any additional length specifications for dimensions + + Returns: + Callable[[torch.Tensor], torch.Tensor]: a callable that performs the rearrangement + """ + left, right = parse_pattern(pattern, axes_lengths) + validate_rearrange_expressions(left, right, axes_lengths) + + n_anon_dims = sum(not dim for dim in left.composition) + if left.has_ellipsis: + n_ellipsis_dims = tensor_ndim - (len(left.composition) - 1) + n_named_dims = len(left.identifiers) - 1 + + if (pattern_ndim := n_anon_dims + n_named_dims) > tensor_ndim: + raise ValueError( + f"Number of dimensions in pattern ({pattern_ndim}) must be less than or equal to the number of " + f"dimensions in the tensor ({tensor_ndim})" + ) + else: + n_ellipsis_dims = 0 + n_named_dims = len(left.identifiers) + + if (pattern_ndim := len(left.composition)) != tensor_ndim: + raise ValueError( + f"Number of dimensions in pattern ({pattern_ndim}) must be equal to the number of dimensions in " + f"the tensor ({tensor_ndim})" + ) + n_dims = n_named_dims + n_ellipsis_dims + n_anon_dims + + if n_dims == 0: + # an identity rearrangement on a 0-dimension tensor + return lambda tensor: tensor + + first_class_dims: tuple[str, ...] = tuple(f"d{i}" for i in range(n_dims)) + identifier_dim_map: dict[Union[str, AnonymousAxis], tuple[str, ...]] = {} + anon_axes: list[AnonymousAxis] = [] + + # map the left-hand side identifiers to strings representing first class dims + dims_i = 0 + for dimension in left.composition: + if isinstance(dimension, list): + for identifier in dimension: + # non-unitary anon axes are not allowed in rearrange & unitary anon axes are represented as empty lists + assert isinstance(identifier, str) + identifier_dim_map[identifier] = (first_class_dims[dims_i],) + dims_i += 1 + if not dimension: + # unitary anonymous axis + anon_axis = AnonymousAxis("1") + identifier_dim_map[anon_axis] = (first_class_dims[dims_i],) + anon_axes.append(anon_axis) + dimension.append(anon_axis) + dims_i += 1 + elif dimension == _ellipsis: + identifier = _ellipsis + identifier_dim_map[identifier] = tuple( + first_class_dims[dims_i + j] for j in range(n_ellipsis_dims) + ) + dims_i += n_ellipsis_dims + else: + raise ValueError(f"Unexpected dimension: {dimension}") + + def composition_to_dims( + composition: Sequence[Union[list[Union[str, AnonymousAxis]], str]], + ) -> list[Union[str, tuple[str, ...]]]: + """Convert a `ParsedExpression.composition` into a `Tensor.__getitem__` index of strings representing first + class dims.""" + dim_composition: list[Union[str, tuple[str, ...]]] = [] + for dimension in composition: + if isinstance(dimension, list): + dim_composition.append( + tuple( + dim + for identifier in dimension + for dim in identifier_dim_map[identifier] + ) + ) + elif dimension == _ellipsis: + dim_composition.extend(identifier_dim_map[_ellipsis]) + else: + raise ValueError(f"Unexpected dimension: {dimension}") + return dim_composition + + left_dims = composition_to_dims(left.composition) + right_dims = composition_to_dims(right.composition) + anon_dims = tuple(identifier_dim_map[axis][0] for axis in anon_axes) + specified_lengths = tuple( + (identifier_dim_map[axis][0], length) for axis, length in axes_lengths.items() + ) + + custom_rearrange_callable_name = "do_rearrange" + custom_rearrange_callable_code = ( + ( + f"def {custom_rearrange_callable_name}(tensor):\n" + f" {comma_separate(first_class_dims)} = dims({n_dims})\n" + ) + + ( + "".join( + f" {dim}.size = {length}\n" for (dim, length) in specified_lengths + ) + if specified_lengths + else "" + ) + + f" tensor = tensor[{comma_separate(left_dims)}].order({comma_separate(right_dims)})\n" + + ( + f" return tensor.sum({comma_separate([anon_dims])}, keepdim=False)\n" + if anon_dims + else " return tensor\n" + ) + ) + + exec(custom_rearrange_callable_code) + return locals()[custom_rearrange_callable_name] + + +def rearrange( + tensor: Union[torch.Tensor, list[torch.Tensor], tuple[torch.Tensor, ...]], + pattern: str, + **axes_lengths: int, +) -> torch.Tensor: + r"""A native implementation of `einops.rearrange`, a reader-friendly smart element reordering for multidimensional + tensors. This operation includes functionality of transpose (axes permutation), reshape (view), squeeze, unsqueeze, + stack, concatenate and other operations. + + See: https://einops.rocks/api/rearrange/ + + Args: + tensor (Tensor or sequence of Tensor): the tensor(s) to rearrange + pattern (str): the rearrangement pattern + axes_lengths (int): any additional length specifications for dimensions + + Returns: + Tensor: the rearranged tensor + + Examples: + >>> # suppose we have a set of 32 images in "h w c" format (height-width-channel) + >>> images = torch.randn((32, 30, 40, 3)) + + >>> # stack along first (batch) axis, output is a single array + >>> rearrange(images, "b h w c -> b h w c").shape + torch.Size([32, 30, 40, 3]) + + >>> # concatenate images along height (vertical axis), 960 = 32 * 30 + >>> rearrange(images, "b h w c -> (b h) w c").shape + torch.Size([960, 40, 3]) + + >>> # concatenated images along horizontal axis, 1280 = 32 * 40 + >>> rearrange(images, "b h w c -> h (b w) c").shape + torch.Size([30, 1280, 3]) + + >>> # reordered axes to "b c h w" format for deep learning + >>> rearrange(images, "b h w c -> b c h w").shape + torch.Size([32, 3, 30, 40]) + + >>> # flattened each image into a vector, 3600 = 30 * 40 * 3 + >>> rearrange(images, "b h w c -> b (c h w)").shape + torch.Size([32, 3600]) + + >>> # split each image into 4 smaller (top-left, top-right, bottom-left, bottom-right), 128 = 32 * 2 * 2 + >>> rearrange(images, "b (h1 h) (w1 w) c -> (b h1 w1) h w c", h1=2, w1=2).shape + torch.Size([128, 15, 20, 3]) + + >>> # space-to-depth operation + >>> rearrange(images, "b (h h1) (w w1) c -> b h w (c h1 w1)", h1=2, w1=2).shape + torch.Size([32, 15, 20, 12]) + """ + if not isinstance(tensor, torch.Tensor): + tensor = torch.stack(tensor) + + rearrange_callable = _create_rearrange_callable( + tensor.ndim, pattern, **axes_lengths + ) + + return rearrange_callable(tensor) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/experimental/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/experimental/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..0500fc2c29d35fc0edd0c106337fdc4d6845f2e4 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/experimental/__init__.py @@ -0,0 +1,5 @@ +# PyTorch forward-mode is not mature yet +from torch._functorch.apis import chunk_vmap +from torch._functorch.batch_norm_replacement import replace_all_batch_norm_modules_ +from torch._functorch.eager_transforms import hessian, jacfwd, jvp +from torch.func import functionalize diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/experimental/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/experimental/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..08cfeae2dd602c646541efd317f02bbc5342a91c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/experimental/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/experimental/__pycache__/control_flow.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/experimental/__pycache__/control_flow.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..787cf71f879e051db79ee088b82528e3a95426e6 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/experimental/__pycache__/control_flow.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/experimental/__pycache__/ops.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/experimental/__pycache__/ops.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5383a7fbd459b13b12475fa26e0511abf45f07fa Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/experimental/__pycache__/ops.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/experimental/control_flow.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/experimental/control_flow.py new file mode 100644 index 0000000000000000000000000000000000000000..c2b4d52271e7f8c5851b5ef961ea7e90d8a01408 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/experimental/control_flow.py @@ -0,0 +1,6 @@ +from torch import cond # noqa: F401 +from torch._higher_order_ops.map import ( # noqa: F401 + _stack_pytree, + _unstack_pytree, + map, +) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/experimental/ops.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/experimental/ops.py new file mode 100644 index 0000000000000000000000000000000000000000..7a502ef2b002cd824e7b67d08fccac872b313110 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/functorch/experimental/ops.py @@ -0,0 +1 @@ +from torch._ops import HigherOrderOperator # noqa: F401 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/markupsafe/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/markupsafe/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..271f639bc8558424b99bc6f4a24505b784bc49cb Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/markupsafe/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/markupsafe/__pycache__/_native.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/markupsafe/__pycache__/_native.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e78460b1280f0c9677030399fb98c6da0610e287 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/markupsafe/__pycache__/_native.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/asteroidal.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/asteroidal.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f13dd45825c98374b348de412e6696a1187892ab Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/asteroidal.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/bridges.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/bridges.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..015b06b4a2c55c73c09088bfdf1cec391ed4549c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/bridges.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/chordal.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/chordal.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2c81265c31503db9e14e8b08308276b0b9b492c1 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/chordal.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/cluster.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/cluster.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7459d52198aea409346202f410d2a059ea23113c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/cluster.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/cycles.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/cycles.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4a9b06414d7436fba76db56039b52202f989f0d0 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/cycles.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/distance_measures.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/distance_measures.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9968d511d2601c9673ac37b7b9506b81a9006d5e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/distance_measures.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/dominating.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/dominating.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ced007d97052f135e85ae0f0ecc3bd75ab6f9b0e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/dominating.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/graph_hashing.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/graph_hashing.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bfae1063bf02c775d7afd5c6e53f42bc2763ba1a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/graph_hashing.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/isolate.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/isolate.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..94a27b371e5f4d015fea4404887da5f310dfafe9 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/isolate.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/link_prediction.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/link_prediction.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fdc2cfda3c3ae3bcb2bcbd7d605eae79a094fe25 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/link_prediction.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/mis.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/mis.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9cf3de9e72a3f224c13fc5853d4005c2c45c70f3 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/mis.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/planar_drawing.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/planar_drawing.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fecd8b90da1940fb3d4d5c0b668aa587aee3900b Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/planar_drawing.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/smallworld.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/smallworld.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1f3e2f285c057b28220931e1bccd8a0e9aabbfb7 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/smallworld.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/smetric.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/smetric.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2d830f72be3b3adbba42ef9f7b52c627a5d56776 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/smetric.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/swap.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/swap.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f819f5ff0950ad05a0053a31d231e7cf5f5d8ae3 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/swap.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/time_dependent.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/time_dependent.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bb00c68cfa32cccc899e6dfff5ace68802f91668 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/time_dependent.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/triads.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/triads.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d2ff321d234f9593d3c3c20a3a36706ab8274f03 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/__pycache__/triads.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..b0b401583eb2a31ca600efd9cfdf43839e098a28 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/__init__.py @@ -0,0 +1,26 @@ +"""Approximations of graph properties and Heuristic methods for optimization. + +The functions in this class are not imported into the top-level ``networkx`` +namespace so the easiest way to use them is with:: + + >>> from networkx.algorithms import approximation + +Another option is to import the specific function with +``from networkx.algorithms.approximation import function_name``. + +""" + +from networkx.algorithms.approximation.clustering_coefficient import * +from networkx.algorithms.approximation.clique import * +from networkx.algorithms.approximation.connectivity import * +from networkx.algorithms.approximation.distance_measures import * +from networkx.algorithms.approximation.dominating_set import * +from networkx.algorithms.approximation.kcomponents import * +from networkx.algorithms.approximation.matching import * +from networkx.algorithms.approximation.ramsey import * +from networkx.algorithms.approximation.steinertree import * +from networkx.algorithms.approximation.traveling_salesman import * +from networkx.algorithms.approximation.treewidth import * +from networkx.algorithms.approximation.vertex_cover import * +from networkx.algorithms.approximation.maxcut import * +from networkx.algorithms.approximation.density import * diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/clique.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/clique.py new file mode 100644 index 0000000000000000000000000000000000000000..ed0f3506369046c749d118c4264afeb4f054f2cd --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/clique.py @@ -0,0 +1,259 @@ +"""Functions for computing large cliques and maximum independent sets.""" + +import networkx as nx +from networkx.algorithms.approximation import ramsey +from networkx.utils import not_implemented_for + +__all__ = [ + "clique_removal", + "max_clique", + "large_clique_size", + "maximum_independent_set", +] + + +@not_implemented_for("directed") +@not_implemented_for("multigraph") +@nx._dispatchable +def maximum_independent_set(G): + """Returns an approximate maximum independent set. + + Independent set or stable set is a set of vertices in a graph, no two of + which are adjacent. That is, it is a set I of vertices such that for every + two vertices in I, there is no edge connecting the two. Equivalently, each + edge in the graph has at most one endpoint in I. The size of an independent + set is the number of vertices it contains [1]_. + + A maximum independent set is a largest independent set for a given graph G + and its size is denoted $\\alpha(G)$. The problem of finding such a set is called + the maximum independent set problem and is an NP-hard optimization problem. + As such, it is unlikely that there exists an efficient algorithm for finding + a maximum independent set of a graph. + + The Independent Set algorithm is based on [2]_. + + Parameters + ---------- + G : NetworkX graph + Undirected graph + + Returns + ------- + iset : Set + The apx-maximum independent set + + Examples + -------- + >>> G = nx.path_graph(10) + >>> nx.approximation.maximum_independent_set(G) + {0, 2, 4, 6, 9} + + Raises + ------ + NetworkXNotImplemented + If the graph is directed or is a multigraph. + + Notes + ----- + Finds the $O(|V|/(log|V|)^2)$ apx of independent set in the worst case. + + References + ---------- + .. [1] `Wikipedia: Independent set + `_ + .. [2] Boppana, R., & Halldórsson, M. M. (1992). + Approximating maximum independent sets by excluding subgraphs. + BIT Numerical Mathematics, 32(2), 180–196. Springer. + """ + iset, _ = clique_removal(G) + return iset + + +@not_implemented_for("directed") +@not_implemented_for("multigraph") +@nx._dispatchable +def max_clique(G): + r"""Find the Maximum Clique + + Finds the $O(|V|/(log|V|)^2)$ apx of maximum clique/independent set + in the worst case. + + Parameters + ---------- + G : NetworkX graph + Undirected graph + + Returns + ------- + clique : set + The apx-maximum clique of the graph + + Examples + -------- + >>> G = nx.path_graph(10) + >>> nx.approximation.max_clique(G) + {8, 9} + + Raises + ------ + NetworkXNotImplemented + If the graph is directed or is a multigraph. + + Notes + ----- + A clique in an undirected graph G = (V, E) is a subset of the vertex set + `C \subseteq V` such that for every two vertices in C there exists an edge + connecting the two. This is equivalent to saying that the subgraph + induced by C is complete (in some cases, the term clique may also refer + to the subgraph). + + A maximum clique is a clique of the largest possible size in a given graph. + The clique number `\omega(G)` of a graph G is the number of + vertices in a maximum clique in G. The intersection number of + G is the smallest number of cliques that together cover all edges of G. + + https://en.wikipedia.org/wiki/Maximum_clique + + References + ---------- + .. [1] Boppana, R., & Halldórsson, M. M. (1992). + Approximating maximum independent sets by excluding subgraphs. + BIT Numerical Mathematics, 32(2), 180–196. Springer. + doi:10.1007/BF01994876 + """ + # finding the maximum clique in a graph is equivalent to finding + # the independent set in the complementary graph + cgraph = nx.complement(G) + iset, _ = clique_removal(cgraph) + return iset + + +@not_implemented_for("directed") +@not_implemented_for("multigraph") +@nx._dispatchable +def clique_removal(G): + r"""Repeatedly remove cliques from the graph. + + Results in a $O(|V|/(\log |V|)^2)$ approximation of maximum clique + and independent set. Returns the largest independent set found, along + with found maximal cliques. + + Parameters + ---------- + G : NetworkX graph + Undirected graph + + Returns + ------- + max_ind_cliques : (set, list) tuple + 2-tuple of Maximal Independent Set and list of maximal cliques (sets). + + Examples + -------- + >>> G = nx.path_graph(10) + >>> nx.approximation.clique_removal(G) + ({0, 2, 4, 6, 9}, [{0, 1}, {2, 3}, {4, 5}, {6, 7}, {8, 9}]) + + Raises + ------ + NetworkXNotImplemented + If the graph is directed or is a multigraph. + + References + ---------- + .. [1] Boppana, R., & Halldórsson, M. M. (1992). + Approximating maximum independent sets by excluding subgraphs. + BIT Numerical Mathematics, 32(2), 180–196. Springer. + """ + graph = G.copy() + c_i, i_i = ramsey.ramsey_R2(graph) + cliques = [c_i] + isets = [i_i] + while graph: + graph.remove_nodes_from(c_i) + c_i, i_i = ramsey.ramsey_R2(graph) + if c_i: + cliques.append(c_i) + if i_i: + isets.append(i_i) + # Determine the largest independent set as measured by cardinality. + maxiset = max(isets, key=len) + return maxiset, cliques + + +@not_implemented_for("directed") +@not_implemented_for("multigraph") +@nx._dispatchable +def large_clique_size(G): + """Find the size of a large clique in a graph. + + A *clique* is a subset of nodes in which each pair of nodes is + adjacent. This function is a heuristic for finding the size of a + large clique in the graph. + + Parameters + ---------- + G : NetworkX graph + + Returns + ------- + k: integer + The size of a large clique in the graph. + + Examples + -------- + >>> G = nx.path_graph(10) + >>> nx.approximation.large_clique_size(G) + 2 + + Raises + ------ + NetworkXNotImplemented + If the graph is directed or is a multigraph. + + Notes + ----- + This implementation is from [1]_. Its worst case time complexity is + :math:`O(n d^2)`, where *n* is the number of nodes in the graph and + *d* is the maximum degree. + + This function is a heuristic, which means it may work well in + practice, but there is no rigorous mathematical guarantee on the + ratio between the returned number and the actual largest clique size + in the graph. + + References + ---------- + .. [1] Pattabiraman, Bharath, et al. + "Fast Algorithms for the Maximum Clique Problem on Massive Graphs + with Applications to Overlapping Community Detection." + *Internet Mathematics* 11.4-5 (2015): 421--448. + + + See also + -------- + + :func:`networkx.algorithms.approximation.clique.max_clique` + A function that returns an approximate maximum clique with a + guarantee on the approximation ratio. + + :mod:`networkx.algorithms.clique` + Functions for finding the exact maximum clique in a graph. + + """ + degrees = G.degree + + def _clique_heuristic(G, U, size, best_size): + if not U: + return max(best_size, size) + u = max(U, key=degrees) + U.remove(u) + N_prime = {v for v in G[u] if degrees[v] >= best_size} + return _clique_heuristic(G, U & N_prime, size + 1, best_size) + + best_size = 0 + nodes = (u for u in G if degrees[u] >= best_size) + for u in nodes: + neighbors = {v for v in G[u] if degrees[v] >= best_size} + best_size = _clique_heuristic(G, neighbors, 1, best_size) + return best_size diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/clustering_coefficient.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/clustering_coefficient.py new file mode 100644 index 0000000000000000000000000000000000000000..545fc65533b8d8f44b35498aa7129c97efc0bc52 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/clustering_coefficient.py @@ -0,0 +1,71 @@ +import networkx as nx +from networkx.utils import not_implemented_for, py_random_state + +__all__ = ["average_clustering"] + + +@not_implemented_for("directed") +@py_random_state(2) +@nx._dispatchable(name="approximate_average_clustering") +def average_clustering(G, trials=1000, seed=None): + r"""Estimates the average clustering coefficient of G. + + The local clustering of each node in `G` is the fraction of triangles + that actually exist over all possible triangles in its neighborhood. + The average clustering coefficient of a graph `G` is the mean of + local clusterings. + + This function finds an approximate average clustering coefficient + for G by repeating `n` times (defined in `trials`) the following + experiment: choose a node at random, choose two of its neighbors + at random, and check if they are connected. The approximate + coefficient is the fraction of triangles found over the number + of trials [1]_. + + Parameters + ---------- + G : NetworkX graph + + trials : integer + Number of trials to perform (default 1000). + + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + + Returns + ------- + c : float + Approximated average clustering coefficient. + + Examples + -------- + >>> from networkx.algorithms import approximation + >>> G = nx.erdos_renyi_graph(10, 0.2, seed=10) + >>> approximation.average_clustering(G, trials=1000, seed=10) + 0.214 + + Raises + ------ + NetworkXNotImplemented + If G is directed. + + References + ---------- + .. [1] Schank, Thomas, and Dorothea Wagner. Approximating clustering + coefficient and transitivity. Universität Karlsruhe, Fakultät für + Informatik, 2004. + https://doi.org/10.5445/IR/1000001239 + + """ + n = len(G) + triangles = 0 + nodes = list(G) + for i in [int(seed.random() * n) for i in range(trials)]: + nbrs = list(G[nodes[i]]) + if len(nbrs) < 2: + continue + u, v = seed.sample(nbrs, 2) + if u in G[v]: + triangles += 1 + return triangles / trials diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/connectivity.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/connectivity.py new file mode 100644 index 0000000000000000000000000000000000000000..0b596fdf782bbb223e5203fc066bbac157a29b24 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/connectivity.py @@ -0,0 +1,412 @@ +"""Fast approximation for node connectivity""" + +import itertools +from operator import itemgetter + +import networkx as nx + +__all__ = [ + "local_node_connectivity", + "node_connectivity", + "all_pairs_node_connectivity", +] + + +@nx._dispatchable(name="approximate_local_node_connectivity") +def local_node_connectivity(G, source, target, cutoff=None): + """Compute node connectivity between source and target. + + Pairwise or local node connectivity between two distinct and nonadjacent + nodes is the minimum number of nodes that must be removed (minimum + separating cutset) to disconnect them. By Menger's theorem, this is equal + to the number of node independent paths (paths that share no nodes other + than source and target). Which is what we compute in this function. + + This algorithm is a fast approximation that gives an strict lower + bound on the actual number of node independent paths between two nodes [1]_. + It works for both directed and undirected graphs. + + Parameters + ---------- + + G : NetworkX graph + + source : node + Starting node for node connectivity + + target : node + Ending node for node connectivity + + cutoff : integer + Maximum node connectivity to consider. If None, the minimum degree + of source or target is used as a cutoff. Default value None. + + Returns + ------- + k: integer + pairwise node connectivity + + Examples + -------- + >>> # Platonic octahedral graph has node connectivity 4 + >>> # for each non adjacent node pair + >>> from networkx.algorithms import approximation as approx + >>> G = nx.octahedral_graph() + >>> approx.local_node_connectivity(G, 0, 5) + 4 + + Notes + ----- + This algorithm [1]_ finds node independents paths between two nodes by + computing their shortest path using BFS, marking the nodes of the path + found as 'used' and then searching other shortest paths excluding the + nodes marked as used until no more paths exist. It is not exact because + a shortest path could use nodes that, if the path were longer, may belong + to two different node independent paths. Thus it only guarantees an + strict lower bound on node connectivity. + + Note that the authors propose a further refinement, losing accuracy and + gaining speed, which is not implemented yet. + + See also + -------- + all_pairs_node_connectivity + node_connectivity + + References + ---------- + .. [1] White, Douglas R., and Mark Newman. 2001 A Fast Algorithm for + Node-Independent Paths. Santa Fe Institute Working Paper #01-07-035 + http://eclectic.ss.uci.edu/~drwhite/working.pdf + + """ + if target == source: + raise nx.NetworkXError("source and target have to be different nodes.") + + # Maximum possible node independent paths + if G.is_directed(): + possible = min(G.out_degree(source), G.in_degree(target)) + else: + possible = min(G.degree(source), G.degree(target)) + + K = 0 + if not possible: + return K + + if cutoff is None: + cutoff = float("inf") + + exclude = set() + for i in range(min(possible, cutoff)): + try: + path = _bidirectional_shortest_path(G, source, target, exclude) + exclude.update(set(path)) + K += 1 + except nx.NetworkXNoPath: + break + + return K + + +@nx._dispatchable(name="approximate_node_connectivity") +def node_connectivity(G, s=None, t=None): + r"""Returns an approximation for node connectivity for a graph or digraph G. + + Node connectivity is equal to the minimum number of nodes that + must be removed to disconnect G or render it trivial. By Menger's theorem, + this is equal to the number of node independent paths (paths that + share no nodes other than source and target). + + If source and target nodes are provided, this function returns the + local node connectivity: the minimum number of nodes that must be + removed to break all paths from source to target in G. + + This algorithm is based on a fast approximation that gives an strict lower + bound on the actual number of node independent paths between two nodes [1]_. + It works for both directed and undirected graphs. + + Parameters + ---------- + G : NetworkX graph + Undirected graph + + s : node + Source node. Optional. Default value: None. + + t : node + Target node. Optional. Default value: None. + + Returns + ------- + K : integer + Node connectivity of G, or local node connectivity if source + and target are provided. + + Examples + -------- + >>> # Platonic octahedral graph is 4-node-connected + >>> from networkx.algorithms import approximation as approx + >>> G = nx.octahedral_graph() + >>> approx.node_connectivity(G) + 4 + + Notes + ----- + This algorithm [1]_ finds node independents paths between two nodes by + computing their shortest path using BFS, marking the nodes of the path + found as 'used' and then searching other shortest paths excluding the + nodes marked as used until no more paths exist. It is not exact because + a shortest path could use nodes that, if the path were longer, may belong + to two different node independent paths. Thus it only guarantees an + strict lower bound on node connectivity. + + See also + -------- + all_pairs_node_connectivity + local_node_connectivity + + References + ---------- + .. [1] White, Douglas R., and Mark Newman. 2001 A Fast Algorithm for + Node-Independent Paths. Santa Fe Institute Working Paper #01-07-035 + http://eclectic.ss.uci.edu/~drwhite/working.pdf + + """ + if (s is not None and t is None) or (s is None and t is not None): + raise nx.NetworkXError("Both source and target must be specified.") + + # Local node connectivity + if s is not None and t is not None: + if s not in G: + raise nx.NetworkXError(f"node {s} not in graph") + if t not in G: + raise nx.NetworkXError(f"node {t} not in graph") + return local_node_connectivity(G, s, t) + + # Global node connectivity + if G.is_directed(): + connected_func = nx.is_weakly_connected + iter_func = itertools.permutations + + def neighbors(v): + return itertools.chain(G.predecessors(v), G.successors(v)) + + else: + connected_func = nx.is_connected + iter_func = itertools.combinations + neighbors = G.neighbors + + if not connected_func(G): + return 0 + + # Choose a node with minimum degree + v, minimum_degree = min(G.degree(), key=itemgetter(1)) + # Node connectivity is bounded by minimum degree + K = minimum_degree + # compute local node connectivity with all non-neighbors nodes + # and store the minimum + for w in set(G) - set(neighbors(v)) - {v}: + K = min(K, local_node_connectivity(G, v, w, cutoff=K)) + # Same for non adjacent pairs of neighbors of v + for x, y in iter_func(neighbors(v), 2): + if y not in G[x] and x != y: + K = min(K, local_node_connectivity(G, x, y, cutoff=K)) + return K + + +@nx._dispatchable(name="approximate_all_pairs_node_connectivity") +def all_pairs_node_connectivity(G, nbunch=None, cutoff=None): + """Compute node connectivity between all pairs of nodes. + + Pairwise or local node connectivity between two distinct and nonadjacent + nodes is the minimum number of nodes that must be removed (minimum + separating cutset) to disconnect them. By Menger's theorem, this is equal + to the number of node independent paths (paths that share no nodes other + than source and target). Which is what we compute in this function. + + This algorithm is a fast approximation that gives an strict lower + bound on the actual number of node independent paths between two nodes [1]_. + It works for both directed and undirected graphs. + + + Parameters + ---------- + G : NetworkX graph + + nbunch: container + Container of nodes. If provided node connectivity will be computed + only over pairs of nodes in nbunch. + + cutoff : integer + Maximum node connectivity to consider. If None, the minimum degree + of source or target is used as a cutoff in each pair of nodes. + Default value None. + + Returns + ------- + K : dictionary + Dictionary, keyed by source and target, of pairwise node connectivity + + Examples + -------- + A 3 node cycle with one extra node attached has connectivity 2 between all + nodes in the cycle and connectivity 1 between the extra node and the rest: + + >>> G = nx.cycle_graph(3) + >>> G.add_edge(2, 3) + >>> import pprint # for nice dictionary formatting + >>> pprint.pprint(nx.all_pairs_node_connectivity(G)) + {0: {1: 2, 2: 2, 3: 1}, + 1: {0: 2, 2: 2, 3: 1}, + 2: {0: 2, 1: 2, 3: 1}, + 3: {0: 1, 1: 1, 2: 1}} + + See Also + -------- + local_node_connectivity + node_connectivity + + References + ---------- + .. [1] White, Douglas R., and Mark Newman. 2001 A Fast Algorithm for + Node-Independent Paths. Santa Fe Institute Working Paper #01-07-035 + http://eclectic.ss.uci.edu/~drwhite/working.pdf + """ + if nbunch is None: + nbunch = G + else: + nbunch = set(nbunch) + + directed = G.is_directed() + if directed: + iter_func = itertools.permutations + else: + iter_func = itertools.combinations + + all_pairs = {n: {} for n in nbunch} + + for u, v in iter_func(nbunch, 2): + k = local_node_connectivity(G, u, v, cutoff=cutoff) + all_pairs[u][v] = k + if not directed: + all_pairs[v][u] = k + + return all_pairs + + +def _bidirectional_shortest_path(G, source, target, exclude): + """Returns shortest path between source and target ignoring nodes in the + container 'exclude'. + + Parameters + ---------- + + G : NetworkX graph + + source : node + Starting node for path + + target : node + Ending node for path + + exclude: container + Container for nodes to exclude from the search for shortest paths + + Returns + ------- + path: list + Shortest path between source and target ignoring nodes in 'exclude' + + Raises + ------ + NetworkXNoPath + If there is no path or if nodes are adjacent and have only one path + between them + + Notes + ----- + This function and its helper are originally from + networkx.algorithms.shortest_paths.unweighted and are modified to + accept the extra parameter 'exclude', which is a container for nodes + already used in other paths that should be ignored. + + References + ---------- + .. [1] White, Douglas R., and Mark Newman. 2001 A Fast Algorithm for + Node-Independent Paths. Santa Fe Institute Working Paper #01-07-035 + http://eclectic.ss.uci.edu/~drwhite/working.pdf + + """ + # call helper to do the real work + results = _bidirectional_pred_succ(G, source, target, exclude) + pred, succ, w = results + + # build path from pred+w+succ + path = [] + # from source to w + while w is not None: + path.append(w) + w = pred[w] + path.reverse() + # from w to target + w = succ[path[-1]] + while w is not None: + path.append(w) + w = succ[w] + + return path + + +def _bidirectional_pred_succ(G, source, target, exclude): + # does BFS from both source and target and meets in the middle + # excludes nodes in the container "exclude" from the search + + # handle either directed or undirected + if G.is_directed(): + Gpred = G.predecessors + Gsucc = G.successors + else: + Gpred = G.neighbors + Gsucc = G.neighbors + + # predecessor and successors in search + pred = {source: None} + succ = {target: None} + + # initialize fringes, start with forward + forward_fringe = [source] + reverse_fringe = [target] + + level = 0 + + while forward_fringe and reverse_fringe: + # Make sure that we iterate one step forward and one step backwards + # thus source and target will only trigger "found path" when they are + # adjacent and then they can be safely included in the container 'exclude' + level += 1 + if level % 2 != 0: + this_level = forward_fringe + forward_fringe = [] + for v in this_level: + for w in Gsucc(v): + if w in exclude: + continue + if w not in pred: + forward_fringe.append(w) + pred[w] = v + if w in succ: + return pred, succ, w # found path + else: + this_level = reverse_fringe + reverse_fringe = [] + for v in this_level: + for w in Gpred(v): + if w in exclude: + continue + if w not in succ: + succ[w] = v + reverse_fringe.append(w) + if w in pred: + return pred, succ, w # found path + + raise nx.NetworkXNoPath(f"No path between {source} and {target}.") diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/density.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/density.py new file mode 100644 index 0000000000000000000000000000000000000000..b722df22cb6dea549f50400e216049fa8afbde36 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/density.py @@ -0,0 +1,396 @@ +"""Fast algorithms for the densest subgraph problem""" + +import math + +import networkx as nx + +__all__ = ["densest_subgraph"] + + +def _greedy_plus_plus(G, iterations): + if G.number_of_edges() == 0: + return 0.0, set() + if iterations < 1: + raise ValueError( + f"The number of iterations must be an integer >= 1. Provided: {iterations}" + ) + + loads = {node: 0 for node in G.nodes} # Load vector for Greedy++. + best_density = 0.0 # Highest density encountered. + best_subgraph = set() # Nodes of the best subgraph found. + + for _ in range(iterations): + # Initialize heap for fast access to minimum weighted degree. + heap = nx.utils.BinaryHeap() + + # Compute initial weighted degrees and add nodes to the heap. + for node, degree in G.degree: + heap.insert(node, loads[node] + degree) + # Set up tracking for current graph state. + remaining_nodes = set(G.nodes) + num_edges = G.number_of_edges() + current_degrees = dict(G.degree) + + while remaining_nodes: + num_nodes = len(remaining_nodes) + + # Current density of the (implicit) graph + current_density = num_edges / num_nodes + + # Update the best density. + if current_density > best_density: + best_density = current_density + best_subgraph = set(remaining_nodes) + + # Pop the node with the smallest weighted degree. + node, _ = heap.pop() + if node not in remaining_nodes: + continue # Skip nodes already removed. + + # Update the load of the popped node. + loads[node] += current_degrees[node] + + # Update neighbors' degrees and the heap. + for neighbor in G.neighbors(node): + if neighbor in remaining_nodes: + current_degrees[neighbor] -= 1 + num_edges -= 1 + heap.insert(neighbor, loads[neighbor] + current_degrees[neighbor]) + + # Remove the node from the remaining nodes. + remaining_nodes.remove(node) + + return best_density, best_subgraph + + +def _fractional_peeling(G, b, x, node_to_idx, edge_to_idx): + """ + Optimized fractional peeling using NumPy arrays. + + Parameters + ---------- + G : networkx.Graph + The input graph. + b : numpy.ndarray + Induced load vector. + x : numpy.ndarray + Fractional edge values. + node_to_idx : dict + Mapping from node to index. + edge_to_idx : dict + Mapping from edge to index. + + Returns + ------- + best_density : float + The best density found. + best_subgraph : set + The subset of nodes defining the densest subgraph. + """ + heap = nx.utils.BinaryHeap() + + remaining_nodes = set(G.nodes) + + # Initialize heap with b values + for idx, node in enumerate(G): + heap.insert(node, b[idx]) + + num_edges = G.number_of_edges() + + best_density = 0.0 + best_subgraph = set() + + while remaining_nodes: + num_nodes = len(remaining_nodes) + current_density = num_edges / num_nodes + + if current_density > best_density: + best_density = current_density + best_subgraph = set(remaining_nodes) + + # Pop the node with the smallest b + node, _ = heap.pop() + while node not in remaining_nodes: + node, _ = heap.pop() # Clean the heap from stale values + + # Update neighbors b values by subtracting fractional x value + for neighbor in G.neighbors(node): + if neighbor in remaining_nodes: + neighbor_idx = node_to_idx[neighbor] + # Take off fractional value + b[neighbor_idx] -= x[edge_to_idx[(neighbor, node)]] + num_edges -= 1 + heap.insert(neighbor, b[neighbor_idx]) + + remaining_nodes.remove(node) # peel off node + + return best_density, best_subgraph + + +def _fista(G, iterations): + if G.number_of_edges() == 0: + return 0.0, set() + if iterations < 1: + raise ValueError( + f"The number of iterations must be an integer >= 1. Provided: {iterations}" + ) + import numpy as np + + # 1. Node Mapping: Assign a unique index to each node and edge + node_to_idx = {node: idx for idx, node in enumerate(G)} + num_nodes = G.number_of_nodes() + num_undirected_edges = G.number_of_edges() + + # 2. Edge Mapping: Assign a unique index to each bidirectional edge + bidirectional_edges = [(u, v) for u, v in G.edges] + [(v, u) for u, v in G.edges] + edge_to_idx = {edge: idx for idx, edge in enumerate(bidirectional_edges)} + + num_edges = len(bidirectional_edges) + + # 3. Reverse Edge Mapping: Map each (bidirectional) edge to its reverse edge index + reverse_edge_idx = np.empty(num_edges, dtype=np.int32) + for idx in range(num_undirected_edges): + reverse_edge_idx[idx] = num_undirected_edges + idx + for idx in range(num_undirected_edges, 2 * num_undirected_edges): + reverse_edge_idx[idx] = idx - num_undirected_edges + + # 4. Initialize Variables as NumPy Arrays + x = np.full(num_edges, 0.5, dtype=np.float32) + y = x.copy() + z = np.zeros(num_edges, dtype=np.float32) + b = np.zeros(num_nodes, dtype=np.float32) # Induced load vector + tk = 1.0 # Momentum term + + # 5. Precompute Edge Source Indices + edge_src_indices = np.array( + [node_to_idx[u] for u, _ in bidirectional_edges], dtype=np.int32 + ) + + # 6. Compute Learning Rate + max_degree = max(deg for _, deg in G.degree) + # 0.9 for floating point errs when max_degree is very large + learning_rate = 0.9 / max_degree + + # 7. Iterative Updates + for _ in range(iterations): + # 7a. Update b: sum y over outgoing edges for each node + b[:] = 0.0 # Reset b to zero + np.add.at(b, edge_src_indices, y) # b_u = \sum_{v : (u,v) \in E(G)} y_{uv} + + # 7b. Compute z, z_{uv} = y_{uv} - 2 * learning_rate * b_u + z = y - 2.0 * learning_rate * b[edge_src_indices] + + # 7c. Update Momentum Term + tknew = (1.0 + math.sqrt(1 + 4.0 * tk**2)) / 2.0 + + # 7d. Update x in a vectorized manner, x_{uv} = (z_{uv} - z_{vu} + 1.0) / 2.0 + new_xuv = (z - z[reverse_edge_idx] + 1.0) / 2.0 + clamped_x = np.clip(new_xuv, 0.0, 1.0) # Clamp x_{uv} between 0 and 1 + + # Update y using the FISTA update formula (similar to gradient descent) + y = ( + clamped_x + + ((tk - 1.0) / tknew) * (clamped_x - x) + + (tk / tknew) * (clamped_x - y) + ) + + # Update x + x = clamped_x + + # Update tk, the momemntum term + tk = tknew + + # Rebalance the b values! Otherwise performance is a bit suboptimal. + b[:] = 0.0 + np.add.at(b, edge_src_indices, x) # b_u = \sum_{v : (u,v) \in E(G)} x_{uv} + + # Extract the actual (approximate) dense subgraph. + return _fractional_peeling(G, b, x, node_to_idx, edge_to_idx) + + +ALGORITHMS = {"greedy++": _greedy_plus_plus, "fista": _fista} + + +@nx.utils.not_implemented_for("directed") +@nx.utils.not_implemented_for("multigraph") +@nx._dispatchable +def densest_subgraph(G, iterations=1, *, method="fista"): + r"""Returns an approximate densest subgraph for a graph `G`. + + This function runs an iterative algorithm to find the densest subgraph, + and returns both the density and the subgraph. For a discussion on the + notion of density used and the different algorithms available on + networkx, please see the Notes section below. + + Parameters + ---------- + G : NetworkX graph + Undirected graph. + + iterations : int, optional (default=1) + Number of iterations to use for the iterative algorithm. Can be + specified positionally or as a keyword argument. + + method : string, optional (default='fista') + The algorithm to use to approximate the densest subgraph. Supported + options: 'greedy++' by Boob et al. [2]_ and 'fista' by Harb et al. [3]_. + Must be specified as a keyword argument. Other inputs produce a + ValueError. + + Returns + ------- + d : float + The density of the approximate subgraph found. + + S : set + The subset of nodes defining the approximate densest subgraph. + + Examples + -------- + >>> G = nx.star_graph(4) + >>> nx.approximation.densest_subgraph(G, iterations=1) + (0.8, {0, 1, 2, 3, 4}) + + Notes + ----- + **Problem Definition:** + The densest subgraph problem (DSG) asks to find the subgraph + $S \subseteq V(G)$ with maximum density. For a subset of the nodes of + $G$, $S \subseteq V(G)$, define $E(S) = \{ (u,v) : (u,v)\in E(G), + u\in S, v\in S \}$ as the set of edges with both endpoints in $S$. + The density of $S$ is defined as $|E(S)|/|S|$, the ratio between the + edges in the subgraph $G[S]$ and the number of nodes in that subgraph. + Note that this is different from the standard graph theoretic definition + of density, defined as $\frac{2|E(S)|}{|S|(|S|-1)}$, for historical + reasons. + + **Exact Algorithms:** + The densest subgraph problem is polynomial time solvable using maximum + flow, commonly referred to as Goldberg's algorithm. However, the + algorithm is quite involved. It first binary searches on the optimal + density, $d^\ast$. For a guess of the density $d$, it sets up a flow + network $G'$ with size $O(m)$. The maximum flow solution either + informs the algorithm that no subgraph with density $d$ exists, or it + provides a subgraph with density at least $d$. However, this is + inherently bottlenecked by the maximum flow algorithm. For example, [2]_ + notes that Goldberg’s algorithm was not feasible on many large graphs + even though they used a highly optimized maximum flow library. + + **Charikar's Greedy Peeling:** + While exact solution algorithms are quite involved, there are several + known approximation algorithms for the densest subgraph problem. + + Charikar [1]_ described a very simple 1/2-approximation algorithm for DSG + known as the greedy "peeling" algorithm. The algorithm creates an + ordering of the nodes as follows. The first node $v_1$ is the one with + the smallest degree in $G$ (ties broken arbitrarily). It selects + $v_2$ to be the smallest degree node in $G \setminus v_1$. Letting + $G_i$ be the graph after removing $v_1, ..., v_i$ (with $G_0=G$), + the algorithm returns the graph among $G_0, ..., G_n$ with the highest + density. + + **Greedy++:** + Boob et al. [2]_ generalized this algorithm into Greedy++, an iterative + algorithm that runs several rounds of "peeling". In fact, Greedy++ with 1 + iteration is precisely Charikar's algorithm. The algorithm converges to a + $(1-\epsilon)$ approximate densest subgraph in $O(\Delta(G)\log + n/\epsilon^2)$ iterations, where $\Delta(G)$ is the maximum degree, + and $n$ is the number of nodes in $G$. The algorithm also has other + desirable properties as shown by [4]_ and [5]_. + + **FISTA Algorithm:** + Harb et al. [3]_ gave a faster and more scalable algorithm using ideas + from quadratic programming for the densest subgraph, which is based on a + fast iterative shrinkage-thresholding algorithm (FISTA) algorithm. It is + known that computing the densest subgraph can be formulated as the + following convex optimization problem: + + Minimize $\sum_{u \in V(G)} b_u^2$ + + Subject to: + + $b_u = \sum_{v: \{u,v\} \in E(G)} x_{uv}$ for all $u \in V(G)$ + + $x_{uv} + x_{vu} = 1.0$ for all $\{u,v\} \in E(G)$ + + $x_{uv} \geq 0, x_{vu} \geq 0$ for all $\{u,v\} \in E(G)$ + + Here, $x_{uv}$ represents the fraction of edge $\{u,v\}$ assigned to + $u$, and $x_{vu}$ to $v$. + + The FISTA algorithm efficiently solves this convex program using gradient + descent with projections. For a learning rate $\alpha$, the algorithm + does: + + 1. **Initialization**: Set $x^{(0)}_{uv} = x^{(0)}_{vu} = 0.5$ for all + edges as a feasible solution. + + 2. **Gradient Update**: For iteration $k\geq 1$, set + $x^{(k+1)}_{uv} = x^{(k)}_{uv} - 2 \alpha \sum_{v: \{u,v\} \in E(G)} + x^{(k)}_{uv}$. However, now $x^{(k+1)}_{uv}$ might be infeasible! + To ensure feasibility, we project $x^{(k+1)}_{uv}$. + + 3. **Projection to the Feasible Set**: Compute + $b^{(k+1)}_u = \sum_{v: \{u,v\} \in E(G)} x^{(k)}_{uv}$ for all + nodes $u$. Define $z^{(k+1)}_{uv} = x^{(k+1)}_{uv} - 2 \alpha + b^{(k+1)}_u$. Update $x^{(k+1)}_{uv} = + CLAMP((z^{(k+1)}_{uv} - z^{(k+1)}_{vu} + 1.0) / 2.0)$, where + $CLAMP(x) = \max(0, \min(1, x))$. + + With a learning rate of $\alpha=1/\Delta(G)$, where $\Delta(G)$ is + the maximum degree, the algorithm converges to the optimum solution of + the convex program. + + **Fractional Peeling:** + To obtain a **discrete** subgraph, we use fractional peeling, an + adaptation of the standard peeling algorithm which peels the minimum + degree vertex in each iteration, and returns the densest subgraph found + along the way. Here, we instead peel the vertex with the smallest + induced load $b_u$: + + 1. Compute $b_u$ and $x_{uv}$. + + 2. Iteratively remove the vertex with the smallest $b_u$, updating its + neighbors' load by $x_{vu}$. + + Fractional peeling transforms the approximately optimal fractional + values $b_u, x_{uv}$ into a discrete subgraph. Unlike traditional + peeling, which removes the lowest-degree node, this method accounts for + fractional edge contributions from the convex program. + + This approach is both scalable and theoretically sound, ensuring a quick + approximation of the densest subgraph while leveraging fractional load + balancing. + + References + ---------- + .. [1] Charikar, Moses. "Greedy approximation algorithms for finding dense + components in a graph." In International workshop on approximation + algorithms for combinatorial optimization, pp. 84-95. Berlin, Heidelberg: + Springer Berlin Heidelberg, 2000. + + .. [2] Boob, Digvijay, Yu Gao, Richard Peng, Saurabh Sawlani, Charalampos + Tsourakakis, Di Wang, and Junxing Wang. "Flowless: Extracting densest + subgraphs without flow computations." In Proceedings of The Web Conference + 2020, pp. 573-583. 2020. + + .. [3] Harb, Elfarouk, Kent Quanrud, and Chandra Chekuri. "Faster and scalable + algorithms for densest subgraph and decomposition." Advances in Neural + Information Processing Systems 35 (2022): 26966-26979. + + .. [4] Harb, Elfarouk, Kent Quanrud, and Chandra Chekuri. "Convergence to + lexicographically optimal base in a (contra) polymatroid and applications + to densest subgraph and tree packing." arXiv preprint arXiv:2305.02987 + (2023). + + .. [5] Chekuri, Chandra, Kent Quanrud, and Manuel R. Torres. "Densest + subgraph: Supermodularity, iterative peeling, and flow." In Proceedings of + the 2022 Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pp. + 1531-1555. Society for Industrial and Applied Mathematics, 2022. + """ + try: + algo = ALGORITHMS[method] + except KeyError as e: + raise ValueError(f"{method} is not a valid choice for an algorithm.") from e + + return algo(G, iterations) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/distance_measures.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/distance_measures.py new file mode 100644 index 0000000000000000000000000000000000000000..d5847e65a2a401cd607436297fe4c1bbc81db3d9 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/distance_measures.py @@ -0,0 +1,150 @@ +"""Distance measures approximated metrics.""" + +import networkx as nx +from networkx.utils.decorators import py_random_state + +__all__ = ["diameter"] + + +@py_random_state(1) +@nx._dispatchable(name="approximate_diameter") +def diameter(G, seed=None): + """Returns a lower bound on the diameter of the graph G. + + The function computes a lower bound on the diameter (i.e., the maximum eccentricity) + of a directed or undirected graph G. The procedure used varies depending on the graph + being directed or not. + + If G is an `undirected` graph, then the function uses the `2-sweep` algorithm [1]_. + The main idea is to pick the farthest node from a random node and return its eccentricity. + + Otherwise, if G is a `directed` graph, the function uses the `2-dSweep` algorithm [2]_, + The procedure starts by selecting a random source node $s$ from which it performs a + forward and a backward BFS. Let $a_1$ and $a_2$ be the farthest nodes in the forward and + backward cases, respectively. Then, it computes the backward eccentricity of $a_1$ using + a backward BFS and the forward eccentricity of $a_2$ using a forward BFS. + Finally, it returns the best lower bound between the two. + + In both cases, the time complexity is linear with respect to the size of G. + + Parameters + ---------- + G : NetworkX graph + + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + + Returns + ------- + d : integer + Lower Bound on the Diameter of G + + Examples + -------- + >>> G = nx.path_graph(10) # undirected graph + >>> nx.diameter(G) + 9 + >>> G = nx.cycle_graph(3, create_using=nx.DiGraph) # directed graph + >>> nx.diameter(G) + 2 + + Raises + ------ + NetworkXError + If the graph is empty or + If the graph is undirected and not connected or + If the graph is directed and not strongly connected. + + See Also + -------- + networkx.algorithms.distance_measures.diameter + + References + ---------- + .. [1] Magnien, Clémence, Matthieu Latapy, and Michel Habib. + *Fast computation of empirically tight bounds for the diameter of massive graphs.* + Journal of Experimental Algorithmics (JEA), 2009. + https://arxiv.org/pdf/0904.2728.pdf + .. [2] Crescenzi, Pierluigi, Roberto Grossi, Leonardo Lanzi, and Andrea Marino. + *On computing the diameter of real-world directed (weighted) graphs.* + International Symposium on Experimental Algorithms. Springer, Berlin, Heidelberg, 2012. + https://courses.cs.ut.ee/MTAT.03.238/2014_fall/uploads/Main/diameter.pdf + """ + # if G is empty + if not G: + raise nx.NetworkXError("Expected non-empty NetworkX graph!") + # if there's only a node + if G.number_of_nodes() == 1: + return 0 + # if G is directed + if G.is_directed(): + return _two_sweep_directed(G, seed) + # else if G is undirected + return _two_sweep_undirected(G, seed) + + +def _two_sweep_undirected(G, seed): + """Helper function for finding a lower bound on the diameter + for undirected Graphs. + + The idea is to pick the farthest node from a random node + and return its eccentricity. + + ``G`` is a NetworkX undirected graph. + + .. note:: + + ``seed`` is a random.Random or numpy.random.RandomState instance + """ + # select a random source node + source = seed.choice(list(G)) + # get the distances to the other nodes + distances = nx.shortest_path_length(G, source) + # if some nodes have not been visited, then the graph is not connected + if len(distances) != len(G): + raise nx.NetworkXError("Graph not connected.") + # take a node that is (one of) the farthest nodes from the source + *_, node = distances + # return the eccentricity of the node + return nx.eccentricity(G, node) + + +def _two_sweep_directed(G, seed): + """Helper function for finding a lower bound on the diameter + for directed Graphs. + + It implements 2-dSweep, the directed version of the 2-sweep algorithm. + The algorithm follows the following steps. + 1. Select a source node $s$ at random. + 2. Perform a forward BFS from $s$ to select a node $a_1$ at the maximum + distance from the source, and compute $LB_1$, the backward eccentricity of $a_1$. + 3. Perform a backward BFS from $s$ to select a node $a_2$ at the maximum + distance from the source, and compute $LB_2$, the forward eccentricity of $a_2$. + 4. Return the maximum between $LB_1$ and $LB_2$. + + ``G`` is a NetworkX directed graph. + + .. note:: + + ``seed`` is a random.Random or numpy.random.RandomState instance + """ + # get a new digraph G' with the edges reversed in the opposite direction + G_reversed = G.reverse() + # select a random source node + source = seed.choice(list(G)) + # compute forward distances from source + forward_distances = nx.shortest_path_length(G, source) + # compute backward distances from source + backward_distances = nx.shortest_path_length(G_reversed, source) + # if either the source can't reach every node or not every node + # can reach the source, then the graph is not strongly connected + n = len(G) + if len(forward_distances) != n or len(backward_distances) != n: + raise nx.NetworkXError("DiGraph not strongly connected.") + # take a node a_1 at the maximum distance from the source in G + *_, a_1 = forward_distances + # take a node a_2 at the maximum distance from the source in G_reversed + *_, a_2 = backward_distances + # return the max between the backward eccentricity of a_1 and the forward eccentricity of a_2 + return max(nx.eccentricity(G_reversed, a_1), nx.eccentricity(G, a_2)) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/dominating_set.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/dominating_set.py new file mode 100644 index 0000000000000000000000000000000000000000..e568a827ff99dad5390e8d7feb886cf92a3a6cad --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/dominating_set.py @@ -0,0 +1,149 @@ +"""Functions for finding node and edge dominating sets. + +A `dominating set`_ for an undirected graph *G* with vertex set *V* +and edge set *E* is a subset *D* of *V* such that every vertex not in +*D* is adjacent to at least one member of *D*. An `edge dominating set`_ +is a subset *F* of *E* such that every edge not in *F* is +incident to an endpoint of at least one edge in *F*. + +.. _dominating set: https://en.wikipedia.org/wiki/Dominating_set +.. _edge dominating set: https://en.wikipedia.org/wiki/Edge_dominating_set + +""" + +import networkx as nx + +from ...utils import not_implemented_for +from ..matching import maximal_matching + +__all__ = ["min_weighted_dominating_set", "min_edge_dominating_set"] + + +# TODO Why doesn't this algorithm work for directed graphs? +@not_implemented_for("directed") +@nx._dispatchable(node_attrs="weight") +def min_weighted_dominating_set(G, weight=None): + r"""Returns a dominating set that approximates the minimum weight node + dominating set. + + Parameters + ---------- + G : NetworkX graph + Undirected graph. + + weight : string + The node attribute storing the weight of an node. If provided, + the node attribute with this key must be a number for each + node. If not provided, each node is assumed to have weight one. + + Returns + ------- + min_weight_dominating_set : set + A set of nodes, the sum of whose weights is no more than `(\log + w(V)) w(V^*)`, where `w(V)` denotes the sum of the weights of + each node in the graph and `w(V^*)` denotes the sum of the + weights of each node in the minimum weight dominating set. + + Examples + -------- + >>> G = nx.Graph([(0, 1), (0, 4), (1, 4), (1, 2), (2, 3), (3, 4), (2, 5)]) + >>> nx.approximation.min_weighted_dominating_set(G) + {1, 2, 4} + + Raises + ------ + NetworkXNotImplemented + If G is directed. + + Notes + ----- + This algorithm computes an approximate minimum weighted dominating + set for the graph `G`. The returned solution has weight `(\log + w(V)) w(V^*)`, where `w(V)` denotes the sum of the weights of each + node in the graph and `w(V^*)` denotes the sum of the weights of + each node in the minimum weight dominating set for the graph. + + This implementation of the algorithm runs in $O(m)$ time, where $m$ + is the number of edges in the graph. + + References + ---------- + .. [1] Vazirani, Vijay V. + *Approximation Algorithms*. + Springer Science & Business Media, 2001. + + """ + # The unique dominating set for the null graph is the empty set. + if len(G) == 0: + return set() + + # This is the dominating set that will eventually be returned. + dom_set = set() + + def _cost(node_and_neighborhood): + """Returns the cost-effectiveness of greedily choosing the given + node. + + `node_and_neighborhood` is a two-tuple comprising a node and its + closed neighborhood. + + """ + v, neighborhood = node_and_neighborhood + return G.nodes[v].get(weight, 1) / len(neighborhood - dom_set) + + # This is a set of all vertices not already covered by the + # dominating set. + vertices = set(G) + # This is a dictionary mapping each node to the closed neighborhood + # of that node. + neighborhoods = {v: {v} | set(G[v]) for v in G} + + # Continue until all vertices are adjacent to some node in the + # dominating set. + while vertices: + # Find the most cost-effective node to add, along with its + # closed neighborhood. + dom_node, min_set = min(neighborhoods.items(), key=_cost) + # Add the node to the dominating set and reduce the remaining + # set of nodes to cover. + dom_set.add(dom_node) + del neighborhoods[dom_node] + vertices -= min_set + + return dom_set + + +@nx._dispatchable +def min_edge_dominating_set(G): + r"""Returns minimum cardinality edge dominating set. + + Parameters + ---------- + G : NetworkX graph + Undirected graph + + Returns + ------- + min_edge_dominating_set : set + Returns a set of dominating edges whose size is no more than 2 * OPT. + + Examples + -------- + >>> G = nx.petersen_graph() + >>> nx.approximation.min_edge_dominating_set(G) + {(0, 1), (4, 9), (6, 8), (5, 7), (2, 3)} + + Raises + ------ + ValueError + If the input graph `G` is empty. + + Notes + ----- + The algorithm computes an approximate solution to the edge dominating set + problem. The result is no more than 2 * OPT in terms of size of the set. + Runtime of the algorithm is $O(|E|)$. + """ + if not G: + raise ValueError("Expected non-empty NetworkX graph!") + return maximal_matching(G) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/kcomponents.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/kcomponents.py new file mode 100644 index 0000000000000000000000000000000000000000..f726a4e686103b2d30d443f21de326685c615bf4 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/kcomponents.py @@ -0,0 +1,369 @@ +"""Fast approximation for k-component structure""" + +import itertools +from collections import defaultdict +from collections.abc import Mapping +from functools import cached_property + +import networkx as nx +from networkx.algorithms.approximation import local_node_connectivity +from networkx.exception import NetworkXError +from networkx.utils import not_implemented_for + +__all__ = ["k_components"] + + +@not_implemented_for("directed") +@nx._dispatchable(name="approximate_k_components") +def k_components(G, min_density=0.95): + r"""Returns the approximate k-component structure of a graph G. + + A `k`-component is a maximal subgraph of a graph G that has, at least, + node connectivity `k`: we need to remove at least `k` nodes to break it + into more components. `k`-components have an inherent hierarchical + structure because they are nested in terms of connectivity: a connected + graph can contain several 2-components, each of which can contain + one or more 3-components, and so forth. + + This implementation is based on the fast heuristics to approximate + the `k`-component structure of a graph [1]_. Which, in turn, it is based on + a fast approximation algorithm for finding good lower bounds of the number + of node independent paths between two nodes [2]_. + + Parameters + ---------- + G : NetworkX graph + Undirected graph + + min_density : Float + Density relaxation threshold. Default value 0.95 + + Returns + ------- + k_components : dict + Dictionary with connectivity level `k` as key and a list of + sets of nodes that form a k-component of level `k` as values. + + Raises + ------ + NetworkXNotImplemented + If G is directed. + + Examples + -------- + >>> # Petersen graph has 10 nodes and it is triconnected, thus all + >>> # nodes are in a single component on all three connectivity levels + >>> from networkx.algorithms import approximation as apxa + >>> G = nx.petersen_graph() + >>> k_components = apxa.k_components(G) + + Notes + ----- + The logic of the approximation algorithm for computing the `k`-component + structure [1]_ is based on repeatedly applying simple and fast algorithms + for `k`-cores and biconnected components in order to narrow down the + number of pairs of nodes over which we have to compute White and Newman's + approximation algorithm for finding node independent paths [2]_. More + formally, this algorithm is based on Whitney's theorem, which states + an inclusion relation among node connectivity, edge connectivity, and + minimum degree for any graph G. This theorem implies that every + `k`-component is nested inside a `k`-edge-component, which in turn, + is contained in a `k`-core. Thus, this algorithm computes node independent + paths among pairs of nodes in each biconnected part of each `k`-core, + and repeats this procedure for each `k` from 3 to the maximal core number + of a node in the input graph. + + Because, in practice, many nodes of the core of level `k` inside a + bicomponent actually are part of a component of level k, the auxiliary + graph needed for the algorithm is likely to be very dense. Thus, we use + a complement graph data structure (see `AntiGraph`) to save memory. + AntiGraph only stores information of the edges that are *not* present + in the actual auxiliary graph. When applying algorithms to this + complement graph data structure, it behaves as if it were the dense + version. + + See also + -------- + k_components + + References + ---------- + .. [1] Torrents, J. and F. Ferraro (2015) Structural Cohesion: + Visualization and Heuristics for Fast Computation. + https://arxiv.org/pdf/1503.04476v1 + + .. [2] White, Douglas R., and Mark Newman (2001) A Fast Algorithm for + Node-Independent Paths. Santa Fe Institute Working Paper #01-07-035 + https://www.santafe.edu/research/results/working-papers/fast-approximation-algorithms-for-finding-node-ind + + .. [3] Moody, J. and D. White (2003). Social cohesion and embeddedness: + A hierarchical conception of social groups. + American Sociological Review 68(1), 103--28. + https://doi.org/10.2307/3088904 + + """ + # Dictionary with connectivity level (k) as keys and a list of + # sets of nodes that form a k-component as values + k_components = defaultdict(list) + # make a few functions local for speed + node_connectivity = local_node_connectivity + k_core = nx.k_core + core_number = nx.core_number + biconnected_components = nx.biconnected_components + combinations = itertools.combinations + # Exact solution for k = {1,2} + # There is a linear time algorithm for triconnectivity, if we had an + # implementation available we could start from k = 4. + for component in nx.connected_components(G): + # isolated nodes have connectivity 0 + comp = set(component) + if len(comp) > 1: + k_components[1].append(comp) + for bicomponent in nx.biconnected_components(G): + # avoid considering dyads as bicomponents + bicomp = set(bicomponent) + if len(bicomp) > 2: + k_components[2].append(bicomp) + # There is no k-component of k > maximum core number + # \kappa(G) <= \lambda(G) <= \delta(G) + g_cnumber = core_number(G) + max_core = max(g_cnumber.values()) + for k in range(3, max_core + 1): + C = k_core(G, k, core_number=g_cnumber) + for nodes in biconnected_components(C): + # Build a subgraph SG induced by the nodes that are part of + # each biconnected component of the k-core subgraph C. + if len(nodes) < k: + continue + SG = G.subgraph(nodes) + # Build auxiliary graph + H = _AntiGraph() + H.add_nodes_from(SG.nodes()) + for u, v in combinations(SG, 2): + K = node_connectivity(SG, u, v, cutoff=k) + if k > K: + H.add_edge(u, v) + for h_nodes in biconnected_components(H): + if len(h_nodes) <= k: + continue + SH = H.subgraph(h_nodes) + for Gc in _cliques_heuristic(SG, SH, k, min_density): + for k_nodes in biconnected_components(Gc): + Gk = nx.k_core(SG.subgraph(k_nodes), k) + if len(Gk) <= k: + continue + k_components[k].append(set(Gk)) + return k_components + + +def _cliques_heuristic(G, H, k, min_density): + h_cnumber = nx.core_number(H) + for i, c_value in enumerate(sorted(set(h_cnumber.values()), reverse=True)): + cands = {n for n, c in h_cnumber.items() if c == c_value} + # Skip checking for overlap for the highest core value + if i == 0: + overlap = False + else: + overlap = set.intersection( + *[{x for x in H[n] if x not in cands} for n in cands] + ) + if overlap and len(overlap) < k: + SH = H.subgraph(cands | overlap) + else: + SH = H.subgraph(cands) + sh_cnumber = nx.core_number(SH) + SG = nx.k_core(G.subgraph(SH), k) + while not (_same(sh_cnumber) and nx.density(SH) >= min_density): + # This subgraph must be writable => .copy() + SH = H.subgraph(SG).copy() + if len(SH) <= k: + break + sh_cnumber = nx.core_number(SH) + sh_deg = dict(SH.degree()) + min_deg = min(sh_deg.values()) + SH.remove_nodes_from(n for n, d in sh_deg.items() if d == min_deg) + SG = nx.k_core(G.subgraph(SH), k) + else: + yield SG + + +def _same(measure, tol=0): + vals = set(measure.values()) + if (max(vals) - min(vals)) <= tol: + return True + return False + + +class _AntiGraph(nx.Graph): + """ + Class for complement graphs. + + The main goal is to be able to work with big and dense graphs with + a low memory footprint. + + In this class you add the edges that *do not exist* in the dense graph, + the report methods of the class return the neighbors, the edges and + the degree as if it was the dense graph. Thus it's possible to use + an instance of this class with some of NetworkX functions. In this + case we only use k-core, connected_components, and biconnected_components. + """ + + all_edge_dict = {"weight": 1} + + def single_edge_dict(self): + return self.all_edge_dict + + edge_attr_dict_factory = single_edge_dict # type: ignore[assignment] + + def __getitem__(self, n): + """Returns a dict of neighbors of node n in the dense graph. + + Parameters + ---------- + n : node + A node in the graph. + + Returns + ------- + adj_dict : dictionary + The adjacency dictionary for nodes connected to n. + + """ + all_edge_dict = self.all_edge_dict + return { + node: all_edge_dict for node in set(self._adj) - set(self._adj[n]) - {n} + } + + def neighbors(self, n): + """Returns an iterator over all neighbors of node n in the + dense graph. + """ + try: + return iter(set(self._adj) - set(self._adj[n]) - {n}) + except KeyError as err: + raise NetworkXError(f"The node {n} is not in the graph.") from err + + class AntiAtlasView(Mapping): + """An adjacency inner dict for AntiGraph""" + + def __init__(self, graph, node): + self._graph = graph + self._atlas = graph._adj[node] + self._node = node + + def __len__(self): + return len(self._graph) - len(self._atlas) - 1 + + def __iter__(self): + return (n for n in self._graph if n not in self._atlas and n != self._node) + + def __getitem__(self, nbr): + nbrs = set(self._graph._adj) - set(self._atlas) - {self._node} + if nbr in nbrs: + return self._graph.all_edge_dict + raise KeyError(nbr) + + class AntiAdjacencyView(AntiAtlasView): + """An adjacency outer dict for AntiGraph""" + + def __init__(self, graph): + self._graph = graph + self._atlas = graph._adj + + def __len__(self): + return len(self._atlas) + + def __iter__(self): + return iter(self._graph) + + def __getitem__(self, node): + if node not in self._graph: + raise KeyError(node) + return self._graph.AntiAtlasView(self._graph, node) + + @cached_property + def adj(self): + return self.AntiAdjacencyView(self) + + def subgraph(self, nodes): + """This subgraph method returns a full AntiGraph. Not a View""" + nodes = set(nodes) + G = _AntiGraph() + G.add_nodes_from(nodes) + for n in G: + Gnbrs = G.adjlist_inner_dict_factory() + G._adj[n] = Gnbrs + for nbr, d in self._adj[n].items(): + if nbr in G._adj: + Gnbrs[nbr] = d + G._adj[nbr][n] = d + G.graph = self.graph + return G + + class AntiDegreeView(nx.reportviews.DegreeView): + def __iter__(self): + all_nodes = set(self._succ) + for n in self._nodes: + nbrs = all_nodes - set(self._succ[n]) - {n} + yield (n, len(nbrs)) + + def __getitem__(self, n): + nbrs = set(self._succ) - set(self._succ[n]) - {n} + # AntiGraph is a ThinGraph so all edges have weight 1 + return len(nbrs) + (n in nbrs) + + @cached_property + def degree(self): + """Returns an iterator for (node, degree) and degree for single node. + + The node degree is the number of edges adjacent to the node. + + Parameters + ---------- + nbunch : iterable container, optional (default=all nodes) + A container of nodes. The container will be iterated + through once. + + weight : string or None, optional (default=None) + The edge attribute that holds the numerical value used + as a weight. If None, then each edge has weight 1. + The degree is the sum of the edge weights adjacent to the node. + + Returns + ------- + deg: + Degree of the node, if a single node is passed as argument. + nd_iter : an iterator + The iterator returns two-tuples of (node, degree). + + See Also + -------- + degree + + Examples + -------- + >>> G = nx.path_graph(4) + >>> G.degree(0) # node 0 with degree 1 + 1 + >>> list(G.degree([0, 1])) + [(0, 1), (1, 2)] + + """ + return self.AntiDegreeView(self) + + def adjacency(self): + """Returns an iterator of (node, adjacency set) tuples for all nodes + in the dense graph. + + This is the fastest way to look at every edge. + For directed graphs, only outgoing adjacencies are included. + + Returns + ------- + adj_iter : iterator + An iterator of (node, adjacency set) for all nodes in + the graph. + + """ + for n in self._adj: + yield (n, set(self._adj) - set(self._adj[n]) - {n}) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/matching.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/matching.py new file mode 100644 index 0000000000000000000000000000000000000000..dc0891947cb88c38930e9f8c5479d397e3aa923b --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/matching.py @@ -0,0 +1,44 @@ +""" +************** +Graph Matching +************** + +Given a graph G = (V,E), a matching M in G is a set of pairwise non-adjacent +edges; that is, no two edges share a common vertex. + +`Wikipedia: Matching `_ +""" + +import networkx as nx + +__all__ = ["min_maximal_matching"] + + +@nx._dispatchable +def min_maximal_matching(G): + r"""Returns the minimum maximal matching of G. That is, out of all maximal + matchings of the graph G, the smallest is returned. + + Parameters + ---------- + G : NetworkX graph + Undirected graph + + Returns + ------- + min_maximal_matching : set + Returns a set of edges such that no two edges share a common endpoint + and every edge not in the set shares some common endpoint in the set. + Cardinality will be 2*OPT in the worst case. + + Notes + ----- + The algorithm computes an approximate solution for the minimum maximal + cardinality matching problem. The solution is no more than 2 * OPT in size. + Runtime is $O(|E|)$. + + References + ---------- + .. [1] Vazirani, Vijay Approximation Algorithms (2001) + """ + return nx.maximal_matching(G) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/maxcut.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/maxcut.py new file mode 100644 index 0000000000000000000000000000000000000000..f4e1da87c35ab821f4b3d0851bba19d599d8fa6a --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/maxcut.py @@ -0,0 +1,143 @@ +import networkx as nx +from networkx.utils.decorators import not_implemented_for, py_random_state + +__all__ = ["randomized_partitioning", "one_exchange"] + + +@not_implemented_for("directed") +@not_implemented_for("multigraph") +@py_random_state(1) +@nx._dispatchable(edge_attrs="weight") +def randomized_partitioning(G, seed=None, p=0.5, weight=None): + """Compute a random partitioning of the graph nodes and its cut value. + + A partitioning is calculated by observing each node + and deciding to add it to the partition with probability `p`, + returning a random cut and its corresponding value (the + sum of weights of edges connecting different partitions). + + Parameters + ---------- + G : NetworkX graph + + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + + p : scalar + Probability for each node to be part of the first partition. + Should be in [0,1] + + weight : object + Edge attribute key to use as weight. If not specified, edges + have weight one. + + Returns + ------- + cut_size : scalar + Value of the minimum cut. + + partition : pair of node sets + A partitioning of the nodes that defines a minimum cut. + + Examples + -------- + >>> G = nx.complete_graph(5) + >>> cut_size, partition = nx.approximation.randomized_partitioning(G, seed=1) + >>> cut_size + 6 + >>> partition + ({0, 3, 4}, {1, 2}) + + Raises + ------ + NetworkXNotImplemented + If the graph is directed or is a multigraph. + """ + cut = {node for node in G.nodes() if seed.random() < p} + cut_size = nx.algorithms.cut_size(G, cut, weight=weight) + partition = (cut, G.nodes - cut) + return cut_size, partition + + +def _swap_node_partition(cut, node): + return cut - {node} if node in cut else cut.union({node}) + + +@not_implemented_for("directed") +@not_implemented_for("multigraph") +@py_random_state(2) +@nx._dispatchable(edge_attrs="weight") +def one_exchange(G, initial_cut=None, seed=None, weight=None): + """Compute a partitioning of the graphs nodes and the corresponding cut value. + + Use a greedy one exchange strategy to find a locally maximal cut + and its value, it works by finding the best node (one that gives + the highest gain to the cut value) to add to the current cut + and repeats this process until no improvement can be made. + + Parameters + ---------- + G : networkx Graph + Graph to find a maximum cut for. + + initial_cut : set + Cut to use as a starting point. If not supplied the algorithm + starts with an empty cut. + + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + + weight : object + Edge attribute key to use as weight. If not specified, edges + have weight one. + + Returns + ------- + cut_value : scalar + Value of the maximum cut. + + partition : pair of node sets + A partitioning of the nodes that defines a maximum cut. + + Examples + -------- + >>> G = nx.complete_graph(5) + >>> curr_cut_size, partition = nx.approximation.one_exchange(G, seed=1) + >>> curr_cut_size + 6 + >>> partition + ({0, 2}, {1, 3, 4}) + + Raises + ------ + NetworkXNotImplemented + If the graph is directed or is a multigraph. + """ + if initial_cut is None: + initial_cut = set() + cut = set(initial_cut) + current_cut_size = nx.algorithms.cut_size(G, cut, weight=weight) + while True: + nodes = list(G.nodes()) + # Shuffling the nodes ensures random tie-breaks in the following call to max + seed.shuffle(nodes) + best_node_to_swap = max( + nodes, + key=lambda v: nx.algorithms.cut_size( + G, _swap_node_partition(cut, v), weight=weight + ), + default=None, + ) + potential_cut = _swap_node_partition(cut, best_node_to_swap) + potential_cut_size = nx.algorithms.cut_size(G, potential_cut, weight=weight) + + if potential_cut_size > current_cut_size: + cut = potential_cut + current_cut_size = potential_cut_size + else: + break + + partition = (cut, G.nodes - cut) + return current_cut_size, partition diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/ramsey.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/ramsey.py new file mode 100644 index 0000000000000000000000000000000000000000..0552e4a942c9c99fbf132300d7288595307052ff --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/ramsey.py @@ -0,0 +1,53 @@ +""" +Ramsey numbers. +""" + +import networkx as nx +from networkx.utils import not_implemented_for + +from ...utils import arbitrary_element + +__all__ = ["ramsey_R2"] + + +@not_implemented_for("directed") +@not_implemented_for("multigraph") +@nx._dispatchable +def ramsey_R2(G): + r"""Compute the largest clique and largest independent set in `G`. + + This can be used to estimate bounds for the 2-color + Ramsey number `R(2;s,t)` for `G`. + + This is a recursive implementation which could run into trouble + for large recursions. Note that self-loop edges are ignored. + + Parameters + ---------- + G : NetworkX graph + Undirected graph + + Returns + ------- + max_pair : (set, set) tuple + Maximum clique, Maximum independent set. + + Raises + ------ + NetworkXNotImplemented + If the graph is directed or is a multigraph. + """ + if not G: + return set(), set() + + node = arbitrary_element(G) + nbrs = (nbr for nbr in nx.all_neighbors(G, node) if nbr != node) + nnbrs = nx.non_neighbors(G, node) + c_1, i_1 = ramsey_R2(G.subgraph(nbrs).copy()) + c_2, i_2 = ramsey_R2(G.subgraph(nnbrs).copy()) + + c_1.add(node) + i_2.add(node) + # Choose the larger of the two cliques and the larger of the two + # independent sets, according to cardinality. + return max(c_1, c_2, key=len), max(i_1, i_2, key=len) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/steinertree.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/steinertree.py new file mode 100644 index 0000000000000000000000000000000000000000..2f9632488fa306223910c58e1c760157e77ee6e0 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/steinertree.py @@ -0,0 +1,265 @@ +from itertools import chain + +import networkx as nx +from networkx.utils import not_implemented_for, pairwise + +__all__ = ["metric_closure", "steiner_tree"] + + +@not_implemented_for("directed") +@nx._dispatchable(edge_attrs="weight", returns_graph=True) +def metric_closure(G, weight="weight"): + """Return the metric closure of a graph. + + The metric closure of a graph *G* is the complete graph in which each edge + is weighted by the shortest path distance between the nodes in *G* . + + Parameters + ---------- + G : NetworkX graph + + Returns + ------- + NetworkX graph + Metric closure of the graph `G`. + + Notes + ----- + .. deprecated:: 3.6 + `metric_closure` is deprecated and will be removed in NetworkX 3.8. + Use :func:`networkx.all_pairs_shortest_path_length` instead. + + """ + import warnings + + warnings.warn( + "metric_closure is deprecated and will be removed in NetworkX 3.8.\n" + "Use nx.all_pairs_shortest_path_length instead.", + category=DeprecationWarning, + stacklevel=5, + ) + + M = nx.Graph() + + Gnodes = set(G) + + # check for connected graph while processing first node + all_paths_iter = nx.all_pairs_dijkstra(G, weight=weight) + u, (distance, path) = next(all_paths_iter) + if len(G) != len(distance): + msg = "G is not a connected graph. metric_closure is not defined." + raise nx.NetworkXError(msg) + Gnodes.remove(u) + for v in Gnodes: + M.add_edge(u, v, distance=distance[v], path=path[v]) + + # first node done -- now process the rest + for u, (distance, path) in all_paths_iter: + Gnodes.remove(u) + for v in Gnodes: + M.add_edge(u, v, distance=distance[v], path=path[v]) + + return M + + +def _mehlhorn_steiner_tree(G, terminal_nodes, weight): + distances, paths = nx.multi_source_dijkstra(G, terminal_nodes, weight=weight) + + d_1 = {} + s = {} + for v in G.nodes(): + s[v] = paths[v][0] + d_1[(v, s[v])] = distances[v] + + # G1-G4 names match those from the Mehlhorn 1988 paper. + G_1_prime = nx.Graph() + # iterate over all edges to complete d1 + for u, v, data in G.edges(data=True): + su, sv = s[u], s[v] + weight_here = d_1[(u, su)] + data.get(weight, 1) + d_1[(v, sv)] + if not G_1_prime.has_edge(su, sv): + G_1_prime.add_edge(su, sv, weight_d1=weight_here) + else: + new_weight = min(weight_here, G_1_prime[su][sv]["weight_d1"]) + G_1_prime.add_edge(su, sv, weight_d1=new_weight) + + G_2 = nx.minimum_spanning_edges(G_1_prime, data=True, weight="weight_d1") + + G_3 = nx.Graph() + for u, v, _ in G_2: + path = nx.shortest_path(G, u, v, weight=weight) + for n1, n2 in pairwise(path): + G_3.add_edge(n1, n2, weight=G[n1][n2].get(weight, 1)) + + G_3_mst = list(nx.minimum_spanning_edges(G_3, data=False, weight=weight)) + if G.is_multigraph(): + G_3_mst = ( + (u, v, min(G[u][v], key=lambda k: G[u][v][k].get(weight, 1))) + for u, v in G_3_mst + ) + G_4 = G.edge_subgraph(G_3_mst).copy() + _remove_nonterminal_leaves(G_4, terminal_nodes) + return G_4.edges() + + +def _kou_steiner_tree(G, terminal_nodes, weight): + # Compute the metric closure only for terminal nodes + # Create a complete graph H from the metric edges + H = nx.Graph() + unvisited_terminals = set(terminal_nodes) + + # check for connected graph while processing first node + u = unvisited_terminals.pop() + distances, paths = nx.single_source_dijkstra(G, source=u, weight=weight) + if len(G) != len(distances): + msg = "G is not a connected graph." + raise nx.NetworkXError(msg) + for v in unvisited_terminals: + H.add_edge(u, v, distance=distances[v], path=paths[v]) + + # first node done -- now process the rest + for u in unvisited_terminals.copy(): + distances, paths = nx.single_source_dijkstra(G, source=u, weight=weight) + unvisited_terminals.remove(u) + for v in unvisited_terminals: + H.add_edge(u, v, distance=distances[v], path=paths[v]) + + # Use the 'distance' attribute of each edge provided by H. + mst_edges = nx.minimum_spanning_edges(H, weight="distance", data=True) + + # Create an iterator over each edge in each shortest path; repeats are okay + mst_all_edges = chain.from_iterable(pairwise(d["path"]) for u, v, d in mst_edges) + if G.is_multigraph(): + mst_all_edges = ( + (u, v, min(G[u][v], key=lambda k: G[u][v][k].get(weight, 1))) + for u, v in mst_all_edges + ) + + # Find the MST again, over this new set of edges + G_S = G.edge_subgraph(mst_all_edges) + T_S = nx.minimum_spanning_edges(G_S, weight="weight", data=False) + + # Leaf nodes that are not terminal might still remain; remove them here + T_H = G.edge_subgraph(T_S).copy() + _remove_nonterminal_leaves(T_H, terminal_nodes) + + return T_H.edges() + + +def _remove_nonterminal_leaves(G, terminals): + terminal_set = set(terminals) + leaves = {n for n in G if len(set(G[n]) - {n}) == 1} + nonterminal_leaves = leaves - terminal_set + + while nonterminal_leaves: + # Removing a node may create new non-terminal leaves, so we limit + # search for candidate non-terminal nodes to neighbors of current + # non-terminal nodes + candidate_leaves = set.union(*(set(G[n]) for n in nonterminal_leaves)) + candidate_leaves -= nonterminal_leaves | terminal_set + # Remove current set of non-terminal nodes + G.remove_nodes_from(nonterminal_leaves) + # Find any new non-terminal nodes from the set of candidates + leaves = {n for n in candidate_leaves if len(set(G[n]) - {n}) == 1} + nonterminal_leaves = leaves - terminal_set + + +ALGORITHMS = { + "kou": _kou_steiner_tree, + "mehlhorn": _mehlhorn_steiner_tree, +} + + +@not_implemented_for("directed") +@nx._dispatchable(preserve_all_attrs=True, returns_graph=True) +def steiner_tree(G, terminal_nodes, weight="weight", method=None): + r"""Return an approximation to the minimum Steiner tree of a graph. + + The minimum Steiner tree of `G` w.r.t a set of `terminal_nodes` (also *S*) + is a tree within `G` that spans those nodes and has minimum size (sum of + edge weights) among all such trees. + + The approximation algorithm is specified with the `method` keyword + argument. All three available algorithms produce a tree whose weight is + within a ``(2 - (2 / l))`` factor of the weight of the optimal Steiner tree, + where ``l`` is the minimum number of leaf nodes across all possible Steiner + trees. + + * ``"kou"`` [2]_ (runtime $O(|S| |V|^2)$) computes the minimum spanning tree of + the subgraph of the metric closure of *G* induced by the terminal nodes, + where the metric closure of *G* is the complete graph in which each edge is + weighted by the shortest path distance between the nodes in *G*. + + * ``"mehlhorn"`` [3]_ (runtime $O(|E|+|V|\log|V|)$) modifies Kou et al.'s + algorithm, beginning by finding the closest terminal node for each + non-terminal. This data is used to create a complete graph containing only + the terminal nodes, in which edge is weighted with the shortest path + distance between them. The algorithm then proceeds in the same way as Kou + et al.. + + Parameters + ---------- + G : NetworkX graph + + terminal_nodes : list + A list of terminal nodes for which minimum steiner tree is + to be found. + + weight : string (default = 'weight') + Use the edge attribute specified by this string as the edge weight. + Any edge attribute not present defaults to 1. + + method : string, optional (default = 'mehlhorn') + The algorithm to use to approximate the Steiner tree. + Supported options: 'kou', 'mehlhorn'. + Other inputs produce a ValueError. + + Returns + ------- + NetworkX graph + Approximation to the minimum steiner tree of `G` induced by + `terminal_nodes` . + + Raises + ------ + NetworkXNotImplemented + If `G` is directed. + + ValueError + If the specified `method` is not supported. + + Notes + ----- + For multigraphs, the edge between two nodes with minimum weight is the + edge put into the Steiner tree. + + + References + ---------- + .. [1] Steiner_tree_problem on Wikipedia. + https://en.wikipedia.org/wiki/Steiner_tree_problem + .. [2] Kou, L., G. Markowsky, and L. Berman. 1981. + ‘A Fast Algorithm for Steiner Trees’. + Acta Informatica 15 (2): 141–45. + https://doi.org/10.1007/BF00288961. + .. [3] Mehlhorn, Kurt. 1988. + ‘A Faster Approximation Algorithm for the Steiner Problem in Graphs’. + Information Processing Letters 27 (3): 125–28. + https://doi.org/10.1016/0020-0190(88)90066-X. + """ + if method is None: + method = "mehlhorn" + + try: + algo = ALGORITHMS[method] + except KeyError as e: + raise ValueError(f"{method} is not a valid choice for an algorithm.") from e + + edges = algo(G, terminal_nodes, weight) + # For multigraph we should add the minimal weight edge keys + if G.is_multigraph(): + edges = ( + (u, v, min(G[u][v], key=lambda k: G[u][v][k][weight])) for u, v in edges + ) + T = G.edge_subgraph(edges) + return T diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/tests/__pycache__/test_traveling_salesman.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/tests/__pycache__/test_traveling_salesman.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9b0f02eac5444696047c388f55755c4c41a64f4e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/tests/__pycache__/test_traveling_salesman.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/traveling_salesman.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/traveling_salesman.py new file mode 100644 index 0000000000000000000000000000000000000000..0c6dd52281bc90b7eafbc0fee694771b59a5bfaa --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/traveling_salesman.py @@ -0,0 +1,1508 @@ +""" +================================= +Travelling Salesman Problem (TSP) +================================= + +Implementation of approximate algorithms +for solving and approximating the TSP problem. + +Categories of algorithms which are implemented: + +- Christofides (provides a 3/2-approximation of TSP) +- Greedy +- Simulated Annealing (SA) +- Threshold Accepting (TA) +- Asadpour Asymmetric Traveling Salesman Algorithm + +The Travelling Salesman Problem tries to find, given the weight +(distance) between all points where a salesman has to visit, the +route so that: + +- The total distance (cost) which the salesman travels is minimized. +- The salesman returns to the starting point. +- Note that for a complete graph, the salesman visits each point once. + +The function `travelling_salesman_problem` allows for incomplete +graphs by finding all-pairs shortest paths, effectively converting +the problem to a complete graph problem. It calls one of the +approximate methods on that problem and then converts the result +back to the original graph using the previously found shortest paths. + +TSP is an NP-hard problem in combinatorial optimization, +important in operations research and theoretical computer science. + +http://en.wikipedia.org/wiki/Travelling_salesman_problem +""" + +import math + +import networkx as nx +from networkx.algorithms.tree.mst import random_spanning_tree +from networkx.utils import not_implemented_for, pairwise, py_random_state + +__all__ = [ + "traveling_salesman_problem", + "christofides", + "asadpour_atsp", + "greedy_tsp", + "simulated_annealing_tsp", + "threshold_accepting_tsp", +] + + +def swap_two_nodes(soln, seed): + """Swap two nodes in `soln` to give a neighbor solution. + + Parameters + ---------- + soln : list of nodes + Current cycle of nodes + + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + + Returns + ------- + list + The solution after move is applied. (A neighbor solution.) + + Notes + ----- + This function assumes that the incoming list `soln` is a cycle + (that the first and last element are the same) and also that + we don't want any move to change the first node in the list + (and thus not the last node either). + + The input list is changed as well as returned. Make a copy if needed. + + See Also + -------- + move_one_node + """ + a, b = seed.sample(range(1, len(soln) - 1), k=2) + soln[a], soln[b] = soln[b], soln[a] + return soln + + +def move_one_node(soln, seed): + """Move one node to another position to give a neighbor solution. + + The node to move and the position to move to are chosen randomly. + The first and last nodes are left untouched as soln must be a cycle + starting at that node. + + Parameters + ---------- + soln : list of nodes + Current cycle of nodes + + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + + Returns + ------- + list + The solution after move is applied. (A neighbor solution.) + + Notes + ----- + This function assumes that the incoming list `soln` is a cycle + (that the first and last element are the same) and also that + we don't want any move to change the first node in the list + (and thus not the last node either). + + The input list is changed as well as returned. Make a copy if needed. + + See Also + -------- + swap_two_nodes + """ + a, b = seed.sample(range(1, len(soln) - 1), k=2) + soln.insert(b, soln.pop(a)) + return soln + + +@not_implemented_for("directed") +@nx._dispatchable(edge_attrs="weight") +def christofides(G, weight="weight", tree=None): + """Approximate a solution of the traveling salesman problem + + Compute a 3/2-approximation of the traveling salesman problem + in a complete undirected graph using Christofides [1]_ algorithm. + + Parameters + ---------- + G : Graph + `G` should be a complete weighted undirected graph. + The distance between all pairs of nodes should be included. + + weight : string, optional (default="weight") + Edge data key corresponding to the edge weight. + If any edge does not have this attribute the weight is set to 1. + + tree : NetworkX graph or None (default: None) + A minimum spanning tree of G. Or, if None, the minimum spanning + tree is computed using :func:`networkx.minimum_spanning_tree` + + Returns + ------- + list + List of nodes in `G` along a cycle with a 3/2-approximation of + the minimal Hamiltonian cycle. + + References + ---------- + .. [1] Christofides, Nicos. "Worst-case analysis of a new heuristic for + the travelling salesman problem." No. RR-388. Carnegie-Mellon Univ + Pittsburgh Pa Management Sciences Research Group, 1976. + """ + # Remove selfloops if necessary + loop_nodes = nx.nodes_with_selfloops(G) + try: + node = next(loop_nodes) + except StopIteration: + pass + else: + G = G.copy() + G.remove_edge(node, node) + G.remove_edges_from((n, n) for n in loop_nodes) + # Check that G is a complete graph + N = len(G) - 1 + # This check ignores selfloops which is what we want here. + if any(len(nbrdict) != N for n, nbrdict in G.adj.items()): + raise nx.NetworkXError("G must be a complete graph.") + + if tree is None: + tree = nx.minimum_spanning_tree(G, weight=weight) + L = G.copy() + L.remove_nodes_from([v for v, degree in tree.degree if not (degree % 2)]) + MG = nx.MultiGraph() + MG.add_edges_from(tree.edges) + edges = nx.min_weight_matching(L, weight=weight) + MG.add_edges_from(edges) + return _shortcutting(nx.eulerian_circuit(MG)) + + +def _shortcutting(circuit): + """Remove duplicate nodes in the path""" + nodes = [] + for u, v in circuit: + if v in nodes: + continue + if not nodes: + nodes.append(u) + nodes.append(v) + nodes.append(nodes[0]) + return nodes + + +@nx._dispatchable(edge_attrs="weight") +def traveling_salesman_problem( + G, weight="weight", nodes=None, cycle=True, method=None, **kwargs +): + """Find the shortest path in `G` connecting specified nodes + + This function allows approximate solution to the traveling salesman + problem on networks that are not complete graphs and/or where the + salesman does not need to visit all nodes. + + This function proceeds in two steps. First, it creates a complete + graph using the all-pairs shortest_paths between nodes in `nodes`. + Edge weights in the new graph are the lengths of the paths + between each pair of nodes in the original graph. + Second, an algorithm (default: `christofides` for undirected and + `asadpour_atsp` for directed) is used to approximate the minimal Hamiltonian + cycle on this new graph. The available algorithms are: + + - christofides + - greedy_tsp + - simulated_annealing_tsp + - threshold_accepting_tsp + - asadpour_atsp + + Once the Hamiltonian Cycle is found, this function post-processes to + accommodate the structure of the original graph. If `cycle` is ``False``, + the biggest weight edge is removed to make a Hamiltonian path. + Then each edge on the new complete graph used for that analysis is + replaced by the shortest_path between those nodes on the original graph. + If the input graph `G` includes edges with weights that do not adhere to + the triangle inequality, such as when `G` is not a complete graph (i.e + length of non-existent edges is infinity), then the returned path may + contain some repeating nodes (other than the starting node). + + Parameters + ---------- + G : NetworkX graph + A possibly weighted graph + + nodes : collection of nodes (default=G.nodes) + collection (list, set, etc.) of nodes to visit + + weight : string, optional (default="weight") + Edge data key corresponding to the edge weight. + If any edge does not have this attribute the weight is set to 1. + + cycle : bool (default: True) + Indicates whether a cycle should be returned, or a path. + Note: the cycle is the approximate minimal cycle. + The path simply removes the biggest edge in that cycle. + + method : function (default: None) + A function that returns a cycle on all nodes and approximates + the solution to the traveling salesman problem on a complete + graph. The returned cycle is then used to find a corresponding + solution on `G`. `method` should be callable; take inputs + `G`, and `weight`; and return a list of nodes along the cycle. + + Provided options include :func:`christofides`, :func:`greedy_tsp`, + :func:`simulated_annealing_tsp` and :func:`threshold_accepting_tsp`. + + If `method is None`: use :func:`christofides` for undirected `G` and + :func:`asadpour_atsp` for directed `G`. + + **kwargs : dict + Other keyword arguments to be passed to the `method` function passed in. + + Returns + ------- + list + List of nodes in `G` along a path with an approximation of the minimal + path through `nodes`. + + Raises + ------ + NetworkXError + If `G` is a directed graph it has to be strongly connected or the + complete version cannot be generated. + + Examples + -------- + >>> tsp = nx.approximation.traveling_salesman_problem + >>> G = nx.cycle_graph(9) + >>> G[4][5]["weight"] = 5 # all other weights are 1 + >>> tsp(G, nodes=[3, 6]) + [3, 2, 1, 0, 8, 7, 6, 7, 8, 0, 1, 2, 3] + >>> path = tsp(G, cycle=False) + >>> path in ([4, 3, 2, 1, 0, 8, 7, 6, 5], [5, 6, 7, 8, 0, 1, 2, 3, 4]) + True + + While no longer required, you can still build (curry) your own function + to provide parameter values to the methods. + + >>> SA_tsp = nx.approximation.simulated_annealing_tsp + >>> method = lambda G, weight: SA_tsp(G, "greedy", weight=weight, temp=500) + >>> path = tsp(G, cycle=False, method=method) + >>> path in ([4, 3, 2, 1, 0, 8, 7, 6, 5], [5, 6, 7, 8, 0, 1, 2, 3, 4]) + True + + Otherwise, pass other keyword arguments directly into the tsp function. + + >>> path = tsp( + ... G, + ... cycle=False, + ... method=nx.approximation.simulated_annealing_tsp, + ... init_cycle="greedy", + ... temp=500, + ... ) + >>> path in ([4, 3, 2, 1, 0, 8, 7, 6, 5], [5, 6, 7, 8, 0, 1, 2, 3, 4]) + True + """ + if method is None: + if G.is_directed(): + method = asadpour_atsp + else: + method = christofides + if nodes is None: + nodes = list(G.nodes) + + dist = {} + path = {} + for n, (d, p) in nx.all_pairs_dijkstra(G, weight=weight): + dist[n] = d + path[n] = p + + if G.is_directed(): + # If the graph is not strongly connected, raise an exception + if not nx.is_strongly_connected(G): + raise nx.NetworkXError("G is not strongly connected") + GG = nx.DiGraph() + else: + GG = nx.Graph() + for u in nodes: + for v in nodes: + if u == v: + continue + # Ensure that the weight attribute on GG has the + # same name as the input graph + GG.add_edge(u, v, **{weight: dist[u][v]}) + + best_GG = method(GG, weight=weight, **kwargs) + + if not cycle: + # find and remove the biggest edge + (u, v) = max(pairwise(best_GG), key=lambda x: dist[x[0]][x[1]]) + pos = best_GG.index(u) + 1 + while best_GG[pos] != v: + pos = best_GG[pos:].index(u) + 1 + best_GG = best_GG[pos:-1] + best_GG[:pos] + + best_path = [] + for u, v in pairwise(best_GG): + best_path.extend(path[u][v][:-1]) + best_path.append(v) + return best_path + + +@not_implemented_for("undirected") +@py_random_state(2) +@nx._dispatchable(edge_attrs="weight", mutates_input=True) +def asadpour_atsp(G, weight="weight", seed=None, source=None): + """ + Returns an approximate solution to the traveling salesman problem. + + This approximate solution is one of the best known approximations for the + asymmetric traveling salesman problem developed by Asadpour et al, + [1]_. The algorithm first solves the Held-Karp relaxation to find a lower + bound for the weight of the cycle. Next, it constructs an exponential + distribution of undirected spanning trees where the probability of an + edge being in the tree corresponds to the weight of that edge using a + maximum entropy rounding scheme. Next we sample that distribution + $2 \\lceil \\ln n \\rceil$ times and save the minimum sampled tree once the + direction of the arcs is added back to the edges. Finally, we augment + then short circuit that graph to find the approximate tour for the + salesman. + + Parameters + ---------- + G : nx.DiGraph + The graph should be a complete weighted directed graph. The + distance between all paris of nodes should be included and the triangle + inequality should hold. That is, the direct edge between any two nodes + should be the path of least cost. + + weight : string, optional (default="weight") + Edge data key corresponding to the edge weight. + If any edge does not have this attribute the weight is set to 1. + + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + + source : node label (default=`None`) + If given, return the cycle starting and ending at the given node. + + Returns + ------- + cycle : list of nodes + Returns the cycle (list of nodes) that a salesman can follow to minimize + the total weight of the trip. + + Raises + ------ + NetworkXError + If `G` is not complete or has less than two nodes, the algorithm raises + an exception. + + NetworkXError + If `source` is not `None` and is not a node in `G`, the algorithm raises + an exception. + + NetworkXNotImplemented + If `G` is an undirected graph. + + References + ---------- + .. [1] A. Asadpour, M. X. Goemans, A. Madry, S. O. Gharan, and A. Saberi, + An o(log n/log log n)-approximation algorithm for the asymmetric + traveling salesman problem, Operations research, 65 (2017), + pp. 1043–1061 + + Examples + -------- + >>> import networkx as nx + >>> import networkx.algorithms.approximation as approx + >>> G = nx.complete_graph(3, create_using=nx.DiGraph) + >>> nx.set_edge_attributes( + ... G, + ... {(0, 1): 2, (1, 2): 2, (2, 0): 2, (0, 2): 1, (2, 1): 1, (1, 0): 1}, + ... "weight", + ... ) + >>> tour = approx.asadpour_atsp(G, source=0) + >>> tour + [0, 2, 1, 0] + """ + from math import ceil, exp + from math import log as ln + + # Check that G is a complete graph + N = len(G) - 1 + if N < 1: + raise nx.NetworkXError("G must have at least two nodes") + # This check ignores selfloops which is what we want here. + if any(len(nbrdict) - (n in nbrdict) != N for n, nbrdict in G.adj.items()): + raise nx.NetworkXError("G is not a complete DiGraph") + # Check that the source vertex, if given, is in the graph + if source is not None and source not in G.nodes: + raise nx.NetworkXError("Given source node not in G.") + # handle 2 node case + if N == 1: + if source is None: + return list(G) + return [source, next(n for n in G if n != source)] + + opt_hk, z_star = held_karp_ascent(G, weight) + + # Test to see if the ascent method found an integer solution or a fractional + # solution. If it is integral then z_star is a nx.Graph, otherwise it is + # a dict + if not isinstance(z_star, dict): + # Here we are using the shortcutting method to go from the list of edges + # returned from eulerian_circuit to a list of nodes + return _shortcutting(nx.eulerian_circuit(z_star, source=source)) + + # Create the undirected support of z_star + z_support = nx.MultiGraph() + for u, v in z_star: + if (u, v) not in z_support.edges: + edge_weight = min(G[u][v][weight], G[v][u][weight]) + z_support.add_edge(u, v, **{weight: edge_weight}) + + # Create the exponential distribution of spanning trees + gamma = spanning_tree_distribution(z_support, z_star) + + # Write the lambda values to the edges of z_support + z_support = nx.Graph(z_support) + lambda_dict = {(u, v): exp(gamma[(u, v)]) for u, v in z_support.edges()} + nx.set_edge_attributes(z_support, lambda_dict, "weight") + del gamma, lambda_dict + + # Sample 2 * ceil( ln(n) ) spanning trees and record the minimum one + minimum_sampled_tree = None + minimum_sampled_tree_weight = math.inf + for _ in range(2 * ceil(ln(G.number_of_nodes()))): + sampled_tree = random_spanning_tree(z_support, "weight", seed=seed) + sampled_tree_weight = sampled_tree.size(weight) + if sampled_tree_weight < minimum_sampled_tree_weight: + minimum_sampled_tree = sampled_tree.copy() + minimum_sampled_tree_weight = sampled_tree_weight + + # Orient the edges in that tree to keep the cost of the tree the same. + t_star = nx.MultiDiGraph() + for u, v, d in minimum_sampled_tree.edges(data=weight): + if d == G[u][v][weight]: + t_star.add_edge(u, v, **{weight: d}) + else: + t_star.add_edge(v, u, **{weight: d}) + + # Find the node demands needed to neutralize the flow of t_star in G + node_demands = {n: t_star.out_degree(n) - t_star.in_degree(n) for n in t_star} + nx.set_node_attributes(G, node_demands, "demand") + + # Find the min_cost_flow + flow_dict = nx.min_cost_flow(G, "demand") + + # Build the flow into t_star + for source, values in flow_dict.items(): + for target in values: + if (source, target) not in t_star.edges and values[target] > 0: + # IF values[target] > 0 we have to add that many edges + for _ in range(values[target]): + t_star.add_edge(source, target) + + # Return the shortcut eulerian circuit + circuit = nx.eulerian_circuit(t_star, source=source) + return _shortcutting(circuit) + + +@nx._dispatchable(edge_attrs="weight", mutates_input=True, returns_graph=True) +def held_karp_ascent(G, weight="weight"): + """ + Minimizes the Held-Karp relaxation of the TSP for `G` + + Solves the Held-Karp relaxation of the input complete digraph and scales + the output solution for use in the Asadpour [1]_ ASTP algorithm. + + The Held-Karp relaxation defines the lower bound for solutions to the + ATSP, although it does return a fractional solution. This is used in the + Asadpour algorithm as an initial solution which is later rounded to a + integral tree within the spanning tree polytopes. This function solves + the relaxation with the branch and bound method in [2]_. + + Parameters + ---------- + G : nx.DiGraph + The graph should be a complete weighted directed graph. + The distance between all paris of nodes should be included. + + weight : string, optional (default="weight") + Edge data key corresponding to the edge weight. + If any edge does not have this attribute the weight is set to 1. + + Returns + ------- + OPT : float + The cost for the optimal solution to the Held-Karp relaxation + z : dict or nx.Graph + A symmetrized and scaled version of the optimal solution to the + Held-Karp relaxation for use in the Asadpour algorithm. + + If an integral solution is found, then that is an optimal solution for + the ATSP problem and that is returned instead. + + References + ---------- + .. [1] A. Asadpour, M. X. Goemans, A. Madry, S. O. Gharan, and A. Saberi, + An o(log n/log log n)-approximation algorithm for the asymmetric + traveling salesman problem, Operations research, 65 (2017), + pp. 1043–1061 + + .. [2] M. Held, R. M. Karp, The traveling-salesman problem and minimum + spanning trees, Operations Research, 1970-11-01, Vol. 18 (6), + pp.1138-1162 + """ + import numpy as np + import scipy as sp + + def k_pi(): + """ + Find the set of minimum 1-Arborescences for G at point pi. + + Returns + ------- + Set + The set of minimum 1-Arborescences + """ + # Create a copy of G without vertex 1. + G_1 = G.copy() + minimum_1_arborescences = set() + minimum_1_arborescence_weight = math.inf + + # node is node '1' in the Held and Karp paper + n = next(G.__iter__()) + G_1.remove_node(n) + + # Iterate over the spanning arborescences of the graph until we know + # that we have found the minimum 1-arborescences. My proposed strategy + # is to find the most extensive root to connect to from 'node 1' and + # the least expensive one. We then iterate over arborescences until + # the cost of the basic arborescence is the cost of the minimum one + # plus the difference between the most and least expensive roots, + # that way the cost of connecting 'node 1' will by definition not by + # minimum + min_root = {"node": None, weight: math.inf} + max_root = {"node": None, weight: -math.inf} + for u, v, d in G.edges(n, data=True): + if d[weight] < min_root[weight]: + min_root = {"node": v, weight: d[weight]} + if d[weight] > max_root[weight]: + max_root = {"node": v, weight: d[weight]} + + min_in_edge = min(G.in_edges(n, data=True), key=lambda x: x[2][weight]) + min_root[weight] = min_root[weight] + min_in_edge[2][weight] + max_root[weight] = max_root[weight] + min_in_edge[2][weight] + + min_arb_weight = math.inf + for arb in nx.ArborescenceIterator(G_1): + arb_weight = arb.size(weight) + if min_arb_weight == math.inf: + min_arb_weight = arb_weight + elif arb_weight > min_arb_weight + max_root[weight] - min_root[weight]: + break + # We have to pick the root node of the arborescence for the out + # edge of the first vertex as that is the only node without an + # edge directed into it. + for N, deg in arb.in_degree: + if deg == 0: + # root found + arb.add_edge(n, N, **{weight: G[n][N][weight]}) + arb_weight += G[n][N][weight] + break + + # We can pick the minimum weight in-edge for the vertex with + # a cycle. If there are multiple edges with the same, minimum + # weight, We need to add all of them. + # + # Delete the edge (N, v) so that we cannot pick it. + edge_data = G[N][n] + G.remove_edge(N, n) + min_weight = min(G.in_edges(n, data=weight), key=lambda x: x[2])[2] + min_edges = [ + (u, v, d) for u, v, d in G.in_edges(n, data=weight) if d == min_weight + ] + for u, v, d in min_edges: + new_arb = arb.copy() + new_arb.add_edge(u, v, **{weight: d}) + new_arb_weight = arb_weight + d + # Check to see the weight of the arborescence, if it is a + # new minimum, clear all of the old potential minimum + # 1-arborescences and add this is the only one. If its + # weight is above the known minimum, do not add it. + if new_arb_weight < minimum_1_arborescence_weight: + minimum_1_arborescences.clear() + minimum_1_arborescence_weight = new_arb_weight + # We have a 1-arborescence, add it to the set + if new_arb_weight == minimum_1_arborescence_weight: + minimum_1_arborescences.add(new_arb) + G.add_edge(N, n, **edge_data) + + return minimum_1_arborescences + + def direction_of_ascent(): + """ + Find the direction of ascent at point pi. + + See [1]_ for more information. + + Returns + ------- + dict + A mapping from the nodes of the graph which represents the direction + of ascent. + + References + ---------- + .. [1] M. Held, R. M. Karp, The traveling-salesman problem and minimum + spanning trees, Operations Research, 1970-11-01, Vol. 18 (6), + pp.1138-1162 + """ + # 1. Set d equal to the zero n-vector. + d = {} + for n in G: + d[n] = 0 + del n + # 2. Find a 1-Arborescence T^k such that k is in K(pi, d). + minimum_1_arborescences = k_pi() + while True: + # Reduce K(pi) to K(pi, d) + # Find the arborescence in K(pi) which increases the lest in + # direction d + min_k_d_weight = math.inf + min_k_d = None + for arborescence in minimum_1_arborescences: + weighted_cost = 0 + for n, deg in arborescence.degree: + weighted_cost += d[n] * (deg - 2) + if weighted_cost < min_k_d_weight: + min_k_d_weight = weighted_cost + min_k_d = arborescence + + # 3. If sum of d_i * v_{i, k} is greater than zero, terminate + if min_k_d_weight > 0: + return d, min_k_d + # 4. d_i = d_i + v_{i, k} + for n, deg in min_k_d.degree: + d[n] += deg - 2 + # Check that we do not need to terminate because the direction + # of ascent does not exist. This is done with linear + # programming. + c = np.full(len(minimum_1_arborescences), -1, dtype=int) + a_eq = np.empty((len(G) + 1, len(minimum_1_arborescences)), dtype=int) + b_eq = np.zeros(len(G) + 1, dtype=int) + b_eq[len(G)] = 1 + for arb_count, arborescence in enumerate(minimum_1_arborescences): + n_count = len(G) - 1 + for n, deg in arborescence.degree: + a_eq[n_count][arb_count] = deg - 2 + n_count -= 1 + a_eq[len(G)][arb_count] = 1 + program_result = sp.optimize.linprog( + c, A_eq=a_eq, b_eq=b_eq, method="highs-ipm" + ) + # If the constants exist, then the direction of ascent doesn't + if program_result.success: + # There is no direction of ascent + return None, minimum_1_arborescences + + # 5. GO TO 2 + + def find_epsilon(k, d): + """ + Given the direction of ascent at pi, find the maximum distance we can go + in that direction. + + Parameters + ---------- + k_xy : set + The set of 1-arborescences which have the minimum rate of increase + in the direction of ascent + + d : dict + The direction of ascent + + Returns + ------- + float + The distance we can travel in direction `d` + """ + min_epsilon = math.inf + for e_u, e_v, e_w in G.edges(data=weight): + if (e_u, e_v) in k.edges: + continue + # Now, I have found a condition which MUST be true for the edges to + # be a valid substitute. The edge in the graph which is the + # substitute is the one with the same terminated end. This can be + # checked rather simply. + # + # Find the edge within k which is the substitute. Because k is a + # 1-arborescence, we know that they is only one such edges + # leading into every vertex. + if len(k.in_edges(e_v, data=weight)) > 1: + raise Exception + sub_u, sub_v, sub_w = next(k.in_edges(e_v, data=weight).__iter__()) + k.add_edge(e_u, e_v, **{weight: e_w}) + k.remove_edge(sub_u, sub_v) + if ( + max(d for n, d in k.in_degree()) <= 1 + and len(G) == k.number_of_edges() + and nx.is_weakly_connected(k) + ): + # Ascent method calculation + if d[sub_u] == d[e_u] or sub_w == e_w: + # Revert to the original graph + k.remove_edge(e_u, e_v) + k.add_edge(sub_u, sub_v, **{weight: sub_w}) + continue + epsilon = (sub_w - e_w) / (d[e_u] - d[sub_u]) + if 0 < epsilon < min_epsilon: + min_epsilon = epsilon + # Revert to the original graph + k.remove_edge(e_u, e_v) + k.add_edge(sub_u, sub_v, **{weight: sub_w}) + + return min_epsilon + + # I have to know that the elements in pi correspond to the correct elements + # in the direction of ascent, even if the node labels are not integers. + # Thus, I will use dictionaries to made that mapping. + pi_dict = {} + for n in G: + pi_dict[n] = 0 + del n + original_edge_weights = {} + for u, v, d in G.edges(data=True): + original_edge_weights[(u, v)] = d[weight] + dir_ascent, k_d = direction_of_ascent() + while dir_ascent is not None: + max_distance = find_epsilon(k_d, dir_ascent) + for n, v in dir_ascent.items(): + pi_dict[n] += max_distance * v + for u, v, d in G.edges(data=True): + d[weight] = original_edge_weights[(u, v)] + pi_dict[u] + dir_ascent, k_d = direction_of_ascent() + nx._clear_cache(G) + # k_d is no longer an individual 1-arborescence but rather a set of + # minimal 1-arborescences at the maximum point of the polytope and should + # be reflected as such + k_max = k_d + + # Search for a cycle within k_max. If a cycle exists, return it as the + # solution + for k in k_max: + if len([n for n in k if k.degree(n) == 2]) == G.order(): + # Tour found + # TODO: this branch does not restore original_edge_weights of G! + return k.size(weight), k + + # Write the original edge weights back to G and every member of k_max at + # the maximum point. Also average the number of times that edge appears in + # the set of minimal 1-arborescences. + x_star = {} + size_k_max = len(k_max) + for u, v, d in G.edges(data=True): + edge_count = 0 + d[weight] = original_edge_weights[(u, v)] + for k in k_max: + if (u, v) in k.edges(): + edge_count += 1 + k[u][v][weight] = original_edge_weights[(u, v)] + x_star[(u, v)] = edge_count / size_k_max + # Now symmetrize the edges in x_star and scale them according to (5) in + # reference [1] + z_star = {} + scale_factor = (G.order() - 1) / G.order() + for u, v in x_star: + frequency = x_star[(u, v)] + x_star[(v, u)] + if frequency > 0: + z_star[(u, v)] = scale_factor * frequency + del x_star + # Return the optimal weight and the z dict + return next(k_max.__iter__()).size(weight), z_star + + +@nx._dispatchable +def spanning_tree_distribution(G, z): + """ + Find the asadpour exponential distribution of spanning trees. + + Solves the Maximum Entropy Convex Program in the Asadpour algorithm [1]_ + using the approach in section 7 to build an exponential distribution of + undirected spanning trees. + + This algorithm ensures that the probability of any edge in a spanning + tree is proportional to the sum of the probabilities of the tress + containing that edge over the sum of the probabilities of all spanning + trees of the graph. + + Parameters + ---------- + G : nx.MultiGraph + The undirected support graph for the Held Karp relaxation + + z : dict + The output of `held_karp_ascent()`, a scaled version of the Held-Karp + solution. + + Returns + ------- + gamma : dict + The probability distribution which approximately preserves the marginal + probabilities of `z`. + """ + from math import exp + from math import log as ln + + def q(e): + """ + The value of q(e) is described in the Asadpour paper is "the + probability that edge e will be included in a spanning tree T that is + chosen with probability proportional to exp(gamma(T))" which + basically means that it is the total probability of the edge appearing + across the whole distribution. + + Parameters + ---------- + e : tuple + The `(u, v)` tuple describing the edge we are interested in + + Returns + ------- + float + The probability that a spanning tree chosen according to the + current values of gamma will include edge `e`. + """ + # Create the laplacian matrices + for u, v, d in G.edges(data=True): + d[lambda_key] = exp(gamma[(u, v)]) + G_Kirchhoff = nx.number_of_spanning_trees(G, weight=lambda_key) + G_e = nx.contracted_edge(G, e, self_loops=False) + G_e_Kirchhoff = nx.number_of_spanning_trees(G_e, weight=lambda_key) + + # Multiply by the weight of the contracted edge since it is not included + # in the total weight of the contracted graph. + return exp(gamma[(e[0], e[1])]) * G_e_Kirchhoff / G_Kirchhoff + + # initialize gamma to the zero dict + gamma = {} + for u, v, _ in G.edges: + gamma[(u, v)] = 0 + + # set epsilon + EPSILON = 0.2 + + # pick an edge attribute name that is unlikely to be in the graph + lambda_key = "spanning_tree_distribution's secret attribute name for lambda" + + while True: + # We need to know that know that no values of q_e are greater than + # (1 + epsilon) * z_e, however changing one gamma value can increase the + # value of a different q_e, so we have to complete the for loop without + # changing anything for the condition to be meet + in_range_count = 0 + # Search for an edge with q_e > (1 + epsilon) * z_e + for u, v in gamma: + e = (u, v) + q_e = q(e) + z_e = z[e] + if q_e > (1 + EPSILON) * z_e: + delta = ln( + (q_e * (1 - (1 + EPSILON / 2) * z_e)) + / ((1 - q_e) * (1 + EPSILON / 2) * z_e) + ) + gamma[e] -= delta + # Check that delta had the desired effect + new_q_e = q(e) + desired_q_e = (1 + EPSILON / 2) * z_e + if round(new_q_e, 8) != round(desired_q_e, 8): + raise nx.NetworkXError( + f"Unable to modify probability for edge ({u}, {v})" + ) + else: + in_range_count += 1 + # Check if the for loop terminated without changing any gamma + if in_range_count == len(gamma): + break + + # Remove the new edge attributes + for _, _, d in G.edges(data=True): + if lambda_key in d: + del d[lambda_key] + + return gamma + + +@nx._dispatchable(edge_attrs="weight") +def greedy_tsp(G, weight="weight", source=None): + """Return a low cost cycle starting at `source` and its cost. + + This approximates a solution to the traveling salesman problem. + It finds a cycle of all the nodes that a salesman can visit in order + to visit many nodes while minimizing total distance. + It uses a simple greedy algorithm. + In essence, this function returns a large cycle given a source point + for which the total cost of the cycle is minimized. + + Parameters + ---------- + G : Graph + The Graph should be a complete weighted undirected graph. + The distance between all pairs of nodes should be included. + + weight : string, optional (default="weight") + Edge data key corresponding to the edge weight. + If any edge does not have this attribute the weight is set to 1. + + source : node, optional (default: first node in list(G)) + Starting node. If None, defaults to ``next(iter(G))`` + + Returns + ------- + cycle : list of nodes + Returns the cycle (list of nodes) that a salesman + can follow to minimize total weight of the trip. + + Raises + ------ + NetworkXError + If `G` is not complete, the algorithm raises an exception. + + Examples + -------- + >>> from networkx.algorithms import approximation as approx + >>> G = nx.DiGraph() + >>> G.add_weighted_edges_from( + ... { + ... ("A", "B", 3), + ... ("A", "C", 17), + ... ("A", "D", 14), + ... ("B", "A", 3), + ... ("B", "C", 12), + ... ("B", "D", 16), + ... ("C", "A", 13), + ... ("C", "B", 12), + ... ("C", "D", 4), + ... ("D", "A", 14), + ... ("D", "B", 15), + ... ("D", "C", 2), + ... } + ... ) + >>> cycle = approx.greedy_tsp(G, source="D") + >>> cost = sum(G[n][nbr]["weight"] for n, nbr in nx.utils.pairwise(cycle)) + >>> cycle + ['D', 'C', 'B', 'A', 'D'] + >>> cost + 31 + + Notes + ----- + This implementation of a greedy algorithm is based on the following: + + - The algorithm adds a node to the solution at every iteration. + - The algorithm selects a node not already in the cycle whose connection + to the previous node adds the least cost to the cycle. + + A greedy algorithm does not always give the best solution. + However, it can construct a first feasible solution which can + be passed as a parameter to an iterative improvement algorithm such + as Simulated Annealing, or Threshold Accepting. + + Time complexity: It has a running time $O(|V|^2)$ + """ + # Check that G is a complete graph + N = len(G) - 1 + # This check ignores selfloops which is what we want here. + if any(len(nbrdict) - (n in nbrdict) != N for n, nbrdict in G.adj.items()): + raise nx.NetworkXError("G must be a complete graph.") + + if source is None: + source = nx.utils.arbitrary_element(G) + + if G.number_of_nodes() == 2: + neighbor = next(G.neighbors(source)) + return [source, neighbor, source] + + nodeset = set(G) + nodeset.remove(source) + cycle = [source] + next_node = source + while nodeset: + nbrdict = G[next_node] + next_node = min(nodeset, key=lambda n: nbrdict[n].get(weight, 1)) + cycle.append(next_node) + nodeset.remove(next_node) + cycle.append(cycle[0]) + return cycle + + +@py_random_state(9) +@nx._dispatchable(edge_attrs="weight") +def simulated_annealing_tsp( + G, + init_cycle, + weight="weight", + source=None, + temp=100, + move="1-1", + max_iterations=10, + N_inner=100, + alpha=0.01, + seed=None, +): + """Returns an approximate solution to the traveling salesman problem. + + This function uses simulated annealing to approximate the minimal cost + cycle through the nodes. Starting from a suboptimal solution, simulated + annealing perturbs that solution, occasionally accepting changes that make + the solution worse to escape from a locally optimal solution. The chance + of accepting such changes decreases over the iterations to encourage + an optimal result. In summary, the function returns a cycle starting + at `source` for which the total cost is minimized. It also returns the cost. + + The chance of accepting a proposed change is related to a parameter called + the temperature (annealing has a physical analogue of steel hardening + as it cools). As the temperature is reduced, the chance of moves that + increase cost goes down. + + Parameters + ---------- + G : Graph + `G` should be a complete weighted graph. + The distance between all pairs of nodes should be included. + + init_cycle : list of all nodes or "greedy" + The initial solution (a cycle through all nodes returning to the start). + This argument has no default to make you think about it. + If "greedy", use `greedy_tsp(G, weight)`. + Other common starting cycles are `list(G) + [next(iter(G))]` or the final + result of `simulated_annealing_tsp` when doing `threshold_accepting_tsp`. + + weight : string, optional (default="weight") + Edge data key corresponding to the edge weight. + If any edge does not have this attribute the weight is set to 1. + + source : node, optional (default: first node in list(G)) + Starting node. If None, defaults to ``next(iter(G))`` + + temp : int, optional (default=100) + The algorithm's temperature parameter. It represents the initial + value of temperature + + move : "1-1" or "1-0" or function, optional (default="1-1") + Indicator of what move to use when finding new trial solutions. + Strings indicate two special built-in moves: + + - "1-1": 1-1 exchange which transposes the position + of two elements of the current solution. + The function called is :func:`swap_two_nodes`. + For example if we apply 1-1 exchange in the solution + ``A = [3, 2, 1, 4, 3]`` + we can get the following by the transposition of 1 and 4 elements: + ``A' = [3, 2, 4, 1, 3]`` + - "1-0": 1-0 exchange which moves an node in the solution + to a new position. + The function called is :func:`move_one_node`. + For example if we apply 1-0 exchange in the solution + ``A = [3, 2, 1, 4, 3]`` + we can transfer the fourth element to the second position: + ``A' = [3, 4, 2, 1, 3]`` + + You may provide your own functions to enact a move from + one solution to a neighbor solution. The function must take + the solution as input along with a `seed` input to control + random number generation (see the `seed` input here). + Your function should maintain the solution as a cycle with + equal first and last node and all others appearing once. + Your function should return the new solution. + + max_iterations : int, optional (default=10) + Declared done when this number of consecutive iterations of + the outer loop occurs without any change in the best cost solution. + + N_inner : int, optional (default=100) + The number of iterations of the inner loop. + + alpha : float between (0, 1), optional (default=0.01) + Percentage of temperature decrease in each iteration + of outer loop + + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + + Returns + ------- + cycle : list of nodes + Returns the cycle (list of nodes) that a salesman + can follow to minimize total weight of the trip. + + Raises + ------ + NetworkXError + If `G` is not complete the algorithm raises an exception. + + Examples + -------- + >>> from networkx.algorithms import approximation as approx + >>> G = nx.DiGraph() + >>> G.add_weighted_edges_from( + ... { + ... ("A", "B", 3), + ... ("A", "C", 17), + ... ("A", "D", 14), + ... ("B", "A", 3), + ... ("B", "C", 12), + ... ("B", "D", 16), + ... ("C", "A", 13), + ... ("C", "B", 12), + ... ("C", "D", 4), + ... ("D", "A", 14), + ... ("D", "B", 15), + ... ("D", "C", 2), + ... } + ... ) + >>> cycle = approx.simulated_annealing_tsp(G, "greedy", source="D") + >>> cost = sum(G[n][nbr]["weight"] for n, nbr in nx.utils.pairwise(cycle)) + >>> cycle + ['D', 'C', 'B', 'A', 'D'] + >>> cost + 31 + >>> incycle = ["D", "B", "A", "C", "D"] + >>> cycle = approx.simulated_annealing_tsp(G, incycle, source="D") + >>> cost = sum(G[n][nbr]["weight"] for n, nbr in nx.utils.pairwise(cycle)) + >>> cycle + ['D', 'C', 'B', 'A', 'D'] + >>> cost + 31 + + Notes + ----- + Simulated Annealing is a metaheuristic local search algorithm. + The main characteristic of this algorithm is that it accepts + even solutions which lead to the increase of the cost in order + to escape from low quality local optimal solutions. + + This algorithm needs an initial solution. If not provided, it is + constructed by a simple greedy algorithm. At every iteration, the + algorithm selects thoughtfully a neighbor solution. + Consider $c(x)$ cost of current solution and $c(x')$ cost of a + neighbor solution. + If $c(x') - c(x) <= 0$ then the neighbor solution becomes the current + solution for the next iteration. Otherwise, the algorithm accepts + the neighbor solution with probability $p = exp - ([c(x') - c(x)] / temp)$. + Otherwise the current solution is retained. + + `temp` is a parameter of the algorithm and represents temperature. + + Time complexity: + For $N_i$ iterations of the inner loop and $N_o$ iterations of the + outer loop, this algorithm has running time $O(N_i * N_o * |V|)$. + + For more information and how the algorithm is inspired see: + http://en.wikipedia.org/wiki/Simulated_annealing + """ + if move == "1-1": + move = swap_two_nodes + elif move == "1-0": + move = move_one_node + if init_cycle == "greedy": + # Construct an initial solution using a greedy algorithm. + cycle = greedy_tsp(G, weight=weight, source=source) + if G.number_of_nodes() == 2: + return cycle + + else: + cycle = list(init_cycle) + if source is None: + source = cycle[0] + elif source != cycle[0]: + raise nx.NetworkXError("source must be first node in init_cycle") + if cycle[0] != cycle[-1]: + raise nx.NetworkXError("init_cycle must be a cycle. (return to start)") + + if len(cycle) - 1 != len(G) or len(set(G.nbunch_iter(cycle))) != len(G): + raise nx.NetworkXError("init_cycle should be a cycle over all nodes in G.") + + # Check that G is a complete graph + N = len(G) - 1 + # This check ignores selfloops which is what we want here. + if any(len(nbrdict) - (n in nbrdict) != N for n, nbrdict in G.adj.items()): + raise nx.NetworkXError("G must be a complete graph.") + + if G.number_of_nodes() == 2: + neighbor = next(G.neighbors(source)) + return [source, neighbor, source] + + # Find the cost of initial solution + cost = sum(G[u][v].get(weight, 1) for u, v in pairwise(cycle)) + + count = 0 + best_cycle = cycle.copy() + best_cost = cost + while count <= max_iterations and temp > 0: + count += 1 + for i in range(N_inner): + adj_sol = move(cycle, seed) + adj_cost = sum(G[u][v].get(weight, 1) for u, v in pairwise(adj_sol)) + delta = adj_cost - cost + if delta <= 0: + # Set current solution the adjacent solution. + cycle = adj_sol + cost = adj_cost + + if cost < best_cost: + count = 0 + best_cycle = cycle.copy() + best_cost = cost + else: + # Accept even a worse solution with probability p. + p = math.exp(-delta / temp) + if p >= seed.random(): + cycle = adj_sol + cost = adj_cost + temp -= temp * alpha + + return best_cycle + + +@py_random_state(9) +@nx._dispatchable(edge_attrs="weight") +def threshold_accepting_tsp( + G, + init_cycle, + weight="weight", + source=None, + threshold=1, + move="1-1", + max_iterations=10, + N_inner=100, + alpha=0.1, + seed=None, +): + """Returns an approximate solution to the traveling salesman problem. + + This function uses threshold accepting methods to approximate the minimal cost + cycle through the nodes. Starting from a suboptimal solution, threshold + accepting methods perturb that solution, accepting any changes that make + the solution no worse than increasing by a threshold amount. Improvements + in cost are accepted, but so are changes leading to small increases in cost. + This allows the solution to leave suboptimal local minima in solution space. + The threshold is decreased slowly as iterations proceed helping to ensure + an optimum. In summary, the function returns a cycle starting at `source` + for which the total cost is minimized. + + Parameters + ---------- + G : Graph + `G` should be a complete weighted graph. + The distance between all pairs of nodes should be included. + + init_cycle : list or "greedy" + The initial solution (a cycle through all nodes returning to the start). + This argument has no default to make you think about it. + If "greedy", use `greedy_tsp(G, weight)`. + Other common starting cycles are `list(G) + [next(iter(G))]` or the final + result of `simulated_annealing_tsp` when doing `threshold_accepting_tsp`. + + weight : string, optional (default="weight") + Edge data key corresponding to the edge weight. + If any edge does not have this attribute the weight is set to 1. + + source : node, optional (default: first node in list(G)) + Starting node. If None, defaults to ``next(iter(G))`` + + threshold : int, optional (default=1) + The algorithm's threshold parameter. It represents the initial + threshold's value + + move : "1-1" or "1-0" or function, optional (default="1-1") + Indicator of what move to use when finding new trial solutions. + Strings indicate two special built-in moves: + + - "1-1": 1-1 exchange which transposes the position + of two elements of the current solution. + The function called is :func:`swap_two_nodes`. + For example if we apply 1-1 exchange in the solution + ``A = [3, 2, 1, 4, 3]`` + we can get the following by the transposition of 1 and 4 elements: + ``A' = [3, 2, 4, 1, 3]`` + - "1-0": 1-0 exchange which moves an node in the solution + to a new position. + The function called is :func:`move_one_node`. + For example if we apply 1-0 exchange in the solution + ``A = [3, 2, 1, 4, 3]`` + we can transfer the fourth element to the second position: + ``A' = [3, 4, 2, 1, 3]`` + + You may provide your own functions to enact a move from + one solution to a neighbor solution. The function must take + the solution as input along with a `seed` input to control + random number generation (see the `seed` input here). + Your function should maintain the solution as a cycle with + equal first and last node and all others appearing once. + Your function should return the new solution. + + max_iterations : int, optional (default=10) + Declared done when this number of consecutive iterations of + the outer loop occurs without any change in the best cost solution. + + N_inner : int, optional (default=100) + The number of iterations of the inner loop. + + alpha : float between (0, 1), optional (default=0.1) + Percentage of threshold decrease when there is at + least one acceptance of a neighbor solution. + If no inner loop moves are accepted the threshold remains unchanged. + + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + + Returns + ------- + cycle : list of nodes + Returns the cycle (list of nodes) that a salesman + can follow to minimize total weight of the trip. + + Raises + ------ + NetworkXError + If `G` is not complete the algorithm raises an exception. + + Examples + -------- + >>> from networkx.algorithms import approximation as approx + >>> G = nx.DiGraph() + >>> G.add_weighted_edges_from( + ... { + ... ("A", "B", 3), + ... ("A", "C", 17), + ... ("A", "D", 14), + ... ("B", "A", 3), + ... ("B", "C", 12), + ... ("B", "D", 16), + ... ("C", "A", 13), + ... ("C", "B", 12), + ... ("C", "D", 4), + ... ("D", "A", 14), + ... ("D", "B", 15), + ... ("D", "C", 2), + ... } + ... ) + >>> cycle = approx.threshold_accepting_tsp(G, "greedy", source="D") + >>> cost = sum(G[n][nbr]["weight"] for n, nbr in nx.utils.pairwise(cycle)) + >>> cycle + ['D', 'C', 'B', 'A', 'D'] + >>> cost + 31 + >>> incycle = ["D", "B", "A", "C", "D"] + >>> cycle = approx.threshold_accepting_tsp(G, incycle, source="D") + >>> cost = sum(G[n][nbr]["weight"] for n, nbr in nx.utils.pairwise(cycle)) + >>> cycle + ['D', 'C', 'B', 'A', 'D'] + >>> cost + 31 + + Notes + ----- + Threshold Accepting is a metaheuristic local search algorithm. + The main characteristic of this algorithm is that it accepts + even solutions which lead to the increase of the cost in order + to escape from low quality local optimal solutions. + + This algorithm needs an initial solution. This solution can be + constructed by a simple greedy algorithm. At every iteration, it + selects thoughtfully a neighbor solution. + Consider $c(x)$ cost of current solution and $c(x')$ cost of + neighbor solution. + If $c(x') - c(x) <= threshold$ then the neighbor solution becomes the current + solution for the next iteration, where the threshold is named threshold. + + In comparison to the Simulated Annealing algorithm, the Threshold + Accepting algorithm does not accept very low quality solutions + (due to the presence of the threshold value). In the case of + Simulated Annealing, even a very low quality solution can + be accepted with probability $p$. + + Time complexity: + It has a running time $O(m * n * |V|)$ where $m$ and $n$ are the number + of times the outer and inner loop run respectively. + + For more information and how algorithm is inspired see: + https://doi.org/10.1016/0021-9991(90)90201-B + + See Also + -------- + simulated_annealing_tsp + + """ + if move == "1-1": + move = swap_two_nodes + elif move == "1-0": + move = move_one_node + if init_cycle == "greedy": + # Construct an initial solution using a greedy algorithm. + cycle = greedy_tsp(G, weight=weight, source=source) + if G.number_of_nodes() == 2: + return cycle + + else: + cycle = list(init_cycle) + if source is None: + source = cycle[0] + elif source != cycle[0]: + raise nx.NetworkXError("source must be first node in init_cycle") + if cycle[0] != cycle[-1]: + raise nx.NetworkXError("init_cycle must be a cycle. (return to start)") + + if len(cycle) - 1 != len(G) or len(set(G.nbunch_iter(cycle))) != len(G): + raise nx.NetworkXError("init_cycle is not all and only nodes.") + + # Check that G is a complete graph + N = len(G) - 1 + # This check ignores selfloops which is what we want here. + if any(len(nbrdict) - (n in nbrdict) != N for n, nbrdict in G.adj.items()): + raise nx.NetworkXError("G must be a complete graph.") + + if G.number_of_nodes() == 2: + neighbor = list(G.neighbors(source))[0] + return [source, neighbor, source] + + # Find the cost of initial solution + cost = sum(G[u][v].get(weight, 1) for u, v in pairwise(cycle)) + + count = 0 + best_cycle = cycle.copy() + best_cost = cost + while count <= max_iterations: + count += 1 + accepted = False + for i in range(N_inner): + adj_sol = move(cycle, seed) + adj_cost = sum(G[u][v].get(weight, 1) for u, v in pairwise(adj_sol)) + delta = adj_cost - cost + if delta <= threshold: + accepted = True + + # Set current solution the adjacent solution. + cycle = adj_sol + cost = adj_cost + + if cost < best_cost: + count = 0 + best_cycle = cycle.copy() + best_cost = cost + if accepted: + threshold -= threshold * alpha + + return best_cycle diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/treewidth.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/treewidth.py new file mode 100644 index 0000000000000000000000000000000000000000..ef1b2f7351bdb1d7815b8218ac1f041acdd55512 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/treewidth.py @@ -0,0 +1,255 @@ +"""Functions for computing treewidth decomposition. + +Treewidth of an undirected graph is a number associated with the graph. +It can be defined as the size of the largest vertex set (bag) in a tree +decomposition of the graph minus one. + +`Wikipedia: Treewidth `_ + +The notions of treewidth and tree decomposition have gained their +attractiveness partly because many graph and network problems that are +intractable (e.g., NP-hard) on arbitrary graphs become efficiently +solvable (e.g., with a linear time algorithm) when the treewidth of the +input graphs is bounded by a constant [1]_ [2]_. + +There are two different functions for computing a tree decomposition: +:func:`treewidth_min_degree` and :func:`treewidth_min_fill_in`. + +.. [1] Hans L. Bodlaender and Arie M. C. A. Koster. 2010. "Treewidth + computations I.Upper bounds". Inf. Comput. 208, 3 (March 2010),259-275. + http://dx.doi.org/10.1016/j.ic.2009.03.008 + +.. [2] Hans L. Bodlaender. "Discovering Treewidth". Institute of Information + and Computing Sciences, Utrecht University. + Technical Report UU-CS-2005-018. + http://www.cs.uu.nl + +.. [3] K. Wang, Z. Lu, and J. Hicks *Treewidth*. + https://web.archive.org/web/20210507025929/http://web.eecs.utk.edu/~cphill25/cs594_spring2015_projects/treewidth.pdf + +""" + +import itertools +import sys +from heapq import heapify, heappop, heappush + +import networkx as nx +from networkx.utils import not_implemented_for + +__all__ = ["treewidth_min_degree", "treewidth_min_fill_in"] + + +@not_implemented_for("directed") +@not_implemented_for("multigraph") +@nx._dispatchable(returns_graph=True) +def treewidth_min_degree(G): + """Returns a treewidth decomposition using the Minimum Degree heuristic. + + The heuristic chooses the nodes according to their degree, i.e., first + the node with the lowest degree is chosen, then the graph is updated + and the corresponding node is removed. Next, a new node with the lowest + degree is chosen, and so on. + + Parameters + ---------- + G : NetworkX graph + + Returns + ------- + Treewidth decomposition : (int, Graph) tuple + 2-tuple with treewidth and the corresponding decomposed tree. + """ + deg_heuristic = MinDegreeHeuristic(G) + return treewidth_decomp(G, lambda graph: deg_heuristic.best_node(graph)) + + +@not_implemented_for("directed") +@not_implemented_for("multigraph") +@nx._dispatchable(returns_graph=True) +def treewidth_min_fill_in(G): + """Returns a treewidth decomposition using the Minimum Fill-in heuristic. + + The heuristic chooses a node from the graph, where the number of edges + added turning the neighborhood of the chosen node into clique is as + small as possible. + + Parameters + ---------- + G : NetworkX graph + + Returns + ------- + Treewidth decomposition : (int, Graph) tuple + 2-tuple with treewidth and the corresponding decomposed tree. + """ + return treewidth_decomp(G, min_fill_in_heuristic) + + +class MinDegreeHeuristic: + """Implements the Minimum Degree heuristic. + + The heuristic chooses the nodes according to their degree + (number of neighbors), i.e., first the node with the lowest degree is + chosen, then the graph is updated and the corresponding node is + removed. Next, a new node with the lowest degree is chosen, and so on. + """ + + def __init__(self, graph): + self._graph = graph + + # nodes that have to be updated in the heap before each iteration + self._update_nodes = [] + + self._degreeq = [] # a heapq with 3-tuples (degree,unique_id,node) + self.count = itertools.count() + + # build heap with initial degrees + for n in graph: + self._degreeq.append((len(graph[n]), next(self.count), n)) + heapify(self._degreeq) + + def best_node(self, graph): + # update nodes in self._update_nodes + for n in self._update_nodes: + # insert changed degrees into degreeq + heappush(self._degreeq, (len(graph[n]), next(self.count), n)) + + # get the next valid (minimum degree) node + while self._degreeq: + (min_degree, _, elim_node) = heappop(self._degreeq) + if elim_node not in graph or len(graph[elim_node]) != min_degree: + # outdated entry in degreeq + continue + elif min_degree == len(graph) - 1: + # fully connected: abort condition + return None + + # remember to update nodes in the heap before getting the next node + self._update_nodes = graph[elim_node] + return elim_node + + # the heap is empty: abort + return None + + +def min_fill_in_heuristic(graph_dict): + """Implements the Minimum Degree heuristic. + + graph_dict: dict keyed by node to sets of neighbors (no self-loops) + + Returns the node from the graph, where the number of edges added when + turning the neighborhood of the chosen node into clique is as small as + possible. This algorithm chooses the nodes using the Minimum Fill-In + heuristic. The running time of the algorithm is :math:`O(V^3)` and it uses + additional constant memory. + """ + + if len(graph_dict) == 0: + return None + + min_fill_in_node = None + + min_fill_in = sys.maxsize + + # sort nodes by degree + nodes_by_degree = sorted(graph_dict, key=lambda x: len(graph_dict[x])) + min_degree = len(graph_dict[nodes_by_degree[0]]) + + # abort condition (handle complete graph) + if min_degree == len(graph_dict) - 1: + return None + + for node in nodes_by_degree: + num_fill_in = 0 + nbrs = graph_dict[node] + for nbr in nbrs: + # count how many nodes in nbrs current nbr is not connected to + # subtract 1 for the node itself + num_fill_in += len(nbrs - graph_dict[nbr]) - 1 + if num_fill_in >= 2 * min_fill_in: + break + + num_fill_in /= 2 # divide by 2 because of double counting + + if num_fill_in < min_fill_in: # update min-fill-in node + if num_fill_in == 0: + return node + min_fill_in = num_fill_in + min_fill_in_node = node + + return min_fill_in_node + + +@nx._dispatchable(returns_graph=True) +def treewidth_decomp(G, heuristic=min_fill_in_heuristic): + """Returns a treewidth decomposition using the passed heuristic. + + Parameters + ---------- + G : NetworkX graph + heuristic : heuristic function + + Returns + ------- + Treewidth decomposition : (int, Graph) tuple + 2-tuple with treewidth and the corresponding decomposed tree. + """ + + # make dict-of-sets structure + graph_dict = {n: set(G[n]) - {n} for n in G} + + # stack containing nodes and neighbors in the order from the heuristic + node_stack = [] + + # get first node from heuristic + elim_node = heuristic(graph_dict) + while elim_node is not None: + # connect all neighbors with each other + nbrs = graph_dict[elim_node] + for u, v in itertools.permutations(nbrs, 2): + if v not in graph_dict[u]: + graph_dict[u].add(v) + + # push node and its current neighbors on stack + node_stack.append((elim_node, nbrs)) + + # remove node from graph_dict + for u in graph_dict[elim_node]: + graph_dict[u].remove(elim_node) + + del graph_dict[elim_node] + elim_node = heuristic(graph_dict) + + # the abort condition is met; put all remaining nodes into one bag + decomp = nx.Graph() + first_bag = frozenset(graph_dict.keys()) + decomp.add_node(first_bag) + + treewidth = len(first_bag) - 1 + + while node_stack: + # get node and its neighbors from the stack + (curr_node, nbrs) = node_stack.pop() + + # find a bag all neighbors are in + old_bag = None + for bag in decomp.nodes: + if nbrs <= bag: + old_bag = bag + break + + if old_bag is None: + # no old_bag was found: just connect to the first_bag + old_bag = first_bag + + # create new node for decomposition + nbrs.add(curr_node) + new_bag = frozenset(nbrs) + + # update treewidth + treewidth = max(treewidth, len(new_bag) - 1) + + # add edge to decomposition (implicitly also adds the new node) + decomp.add_edge(old_bag, new_bag) + + return treewidth, decomp diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/vertex_cover.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/vertex_cover.py new file mode 100644 index 0000000000000000000000000000000000000000..13d7167cfc1e4494cbbb2ee8c774e9ffbc3ee495 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/approximation/vertex_cover.py @@ -0,0 +1,83 @@ +"""Functions for computing an approximate minimum weight vertex cover. + +A |vertex cover|_ is a subset of nodes such that each edge in the graph +is incident to at least one node in the subset. + +.. _vertex cover: https://en.wikipedia.org/wiki/Vertex_cover +.. |vertex cover| replace:: *vertex cover* + +""" + +import networkx as nx + +__all__ = ["min_weighted_vertex_cover"] + + +@nx._dispatchable(node_attrs="weight") +def min_weighted_vertex_cover(G, weight=None): + r"""Returns an approximate minimum weighted vertex cover. + + The set of nodes returned by this function is guaranteed to be a + vertex cover, and the total weight of the set is guaranteed to be at + most twice the total weight of the minimum weight vertex cover. In + other words, + + .. math:: + + w(S) \leq 2 * w(S^*), + + where $S$ is the vertex cover returned by this function, + $S^*$ is the vertex cover of minimum weight out of all vertex + covers of the graph, and $w$ is the function that computes the + sum of the weights of each node in that given set. + + Parameters + ---------- + G : NetworkX graph + + weight : string, optional (default = None) + If None, every node has weight 1. If a string, use this node + attribute as the node weight. A node without this attribute is + assumed to have weight 1. + + Returns + ------- + min_weighted_cover : set + Returns a set of nodes whose weight sum is no more than twice + the weight sum of the minimum weight vertex cover. + + Notes + ----- + For a directed graph, a vertex cover has the same definition: a set + of nodes such that each edge in the graph is incident to at least + one node in the set. Whether the node is the head or tail of the + directed edge is ignored. + + This is the local-ratio algorithm for computing an approximate + vertex cover. The algorithm greedily reduces the costs over edges, + iteratively building a cover. The worst-case runtime of this + implementation is $O(m \log n)$, where $n$ is the number + of nodes and $m$ the number of edges in the graph. + + References + ---------- + .. [1] Bar-Yehuda, R., and Even, S. (1985). "A local-ratio theorem for + approximating the weighted vertex cover problem." + *Annals of Discrete Mathematics*, 25, 27–46 + + + """ + cost = dict(G.nodes(data=weight, default=1)) + # While there are uncovered edges, choose an uncovered and update + # the cost of the remaining edges. + cover = set() + for u, v in G.edges(): + if u in cover or v in cover: + continue + if cost[u] <= cost[v]: + cover.add(u) + cost[v] -= cost[u] + else: + cover.add(v) + cost[u] -= cost[v] + return cover diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..4d9888609cbc43d4ba2121fcd0feda0985d1aebd --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/__init__.py @@ -0,0 +1,5 @@ +from networkx.algorithms.assortativity.connectivity import * +from networkx.algorithms.assortativity.correlation import * +from networkx.algorithms.assortativity.mixing import * +from networkx.algorithms.assortativity.neighbor_degree import * +from networkx.algorithms.assortativity.pairs import * diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8c144af2d9e87f74e2c03809a9ffd9c961fc1c33 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/__pycache__/connectivity.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/__pycache__/connectivity.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4949e8cac84423e5dc522e3b730f6ad778197b17 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/__pycache__/connectivity.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/__pycache__/correlation.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/__pycache__/correlation.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3585f94bfc06b662b0868c811d1b59a40c196cba Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/__pycache__/correlation.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/__pycache__/mixing.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/__pycache__/mixing.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7c5bff133f2db1b89e8c13c85c1347950eb8e2b1 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/__pycache__/mixing.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/__pycache__/neighbor_degree.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/__pycache__/neighbor_degree.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7fc86e9c49ecb7cd2bf38d849774434510edd4fd Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/__pycache__/neighbor_degree.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/__pycache__/pairs.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/__pycache__/pairs.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3fee2f95ad5bcfff821ee63a4413de6a31e0f17d Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/__pycache__/pairs.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/connectivity.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/connectivity.py new file mode 100644 index 0000000000000000000000000000000000000000..c3fde0da68a1990da29ced6996620d709c52c13d --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/connectivity.py @@ -0,0 +1,122 @@ +from collections import defaultdict + +import networkx as nx + +__all__ = ["average_degree_connectivity"] + + +@nx._dispatchable(edge_attrs="weight") +def average_degree_connectivity( + G, source="in+out", target="in+out", nodes=None, weight=None +): + r"""Compute the average degree connectivity of graph. + + The average degree connectivity is the average nearest neighbor degree of + nodes with degree k. For weighted graphs, an analogous measure can + be computed using the weighted average neighbors degree defined in + [1]_, for a node `i`, as + + .. math:: + + k_{nn,i}^{w} = \frac{1}{s_i} \sum_{j \in N(i)} w_{ij} k_j + + where `s_i` is the weighted degree of node `i`, + `w_{ij}` is the weight of the edge that links `i` and `j`, + and `N(i)` are the neighbors of node `i`. + + Parameters + ---------- + G : NetworkX graph + + source : "in"|"out"|"in+out" (default:"in+out") + Directed graphs only. Use "in"- or "out"-degree for source node. + + target : "in"|"out"|"in+out" (default:"in+out" + Directed graphs only. Use "in"- or "out"-degree for target node. + + nodes : list or iterable (optional) + Compute neighbor connectivity for these nodes. The default is all + nodes. + + weight : string or None, optional (default=None) + The edge attribute that holds the numerical value used as a weight. + If None, then each edge has weight 1. + + Returns + ------- + d : dict + A dictionary keyed by degree k with the value of average connectivity. + + Raises + ------ + NetworkXError + If either `source` or `target` are not one of 'in', + 'out', or 'in+out'. + If either `source` or `target` is passed for an undirected graph. + + Examples + -------- + >>> G = nx.path_graph(4) + >>> G.edges[1, 2]["weight"] = 3 + >>> nx.average_degree_connectivity(G) + {1: 2.0, 2: 1.5} + >>> nx.average_degree_connectivity(G, weight="weight") + {1: 2.0, 2: 1.75} + + See Also + -------- + average_neighbor_degree + + References + ---------- + .. [1] A. Barrat, M. Barthélemy, R. Pastor-Satorras, and A. Vespignani, + "The architecture of complex weighted networks". + PNAS 101 (11): 3747–3752 (2004). + """ + # First, determine the type of neighbors and the type of degree to use. + if G.is_directed(): + if source not in ("in", "out", "in+out"): + raise nx.NetworkXError('source must be one of "in", "out", or "in+out"') + if target not in ("in", "out", "in+out"): + raise nx.NetworkXError('target must be one of "in", "out", or "in+out"') + direction = {"out": G.out_degree, "in": G.in_degree, "in+out": G.degree} + neighbor_funcs = { + "out": G.successors, + "in": G.predecessors, + "in+out": G.neighbors, + } + source_degree = direction[source] + target_degree = direction[target] + neighbors = neighbor_funcs[source] + # `reverse` indicates whether to look at the in-edge when + # computing the weight of an edge. + reverse = source == "in" + else: + if source != "in+out" or target != "in+out": + raise nx.NetworkXError( + f"source and target arguments are only supported for directed graphs" + ) + source_degree = G.degree + target_degree = G.degree + neighbors = G.neighbors + reverse = False + dsum = defaultdict(int) + dnorm = defaultdict(int) + # Check if `source_nodes` is actually a single node in the graph. + source_nodes = source_degree(nodes) + if nodes in G: + source_nodes = [(nodes, source_degree(nodes))] + for n, k in source_nodes: + nbrdeg = target_degree(neighbors(n)) + if weight is None: + s = sum(d for n, d in nbrdeg) + else: # weight nbr degree by weight of (n,nbr) edge + if reverse: + s = sum(G[nbr][n].get(weight, 1) * d for nbr, d in nbrdeg) + else: + s = sum(G[n][nbr].get(weight, 1) * d for nbr, d in nbrdeg) + dnorm[k] += source_degree(n, weight=weight) + dsum[k] += s + + # normalize + return {k: avg if dnorm[k] == 0 else avg / dnorm[k] for k, avg in dsum.items()} diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/correlation.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/correlation.py new file mode 100644 index 0000000000000000000000000000000000000000..52ae7a12fa9de5705412538fc6bbe873755d9b7a --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/correlation.py @@ -0,0 +1,302 @@ +"""Node assortativity coefficients and correlation measures.""" + +import networkx as nx +from networkx.algorithms.assortativity.mixing import ( + attribute_mixing_matrix, + degree_mixing_matrix, +) +from networkx.algorithms.assortativity.pairs import node_degree_xy + +__all__ = [ + "degree_pearson_correlation_coefficient", + "degree_assortativity_coefficient", + "attribute_assortativity_coefficient", + "numeric_assortativity_coefficient", +] + + +@nx._dispatchable(edge_attrs="weight") +def degree_assortativity_coefficient(G, x="out", y="in", weight=None, nodes=None): + """Compute degree assortativity of graph. + + Assortativity measures the similarity of connections + in the graph with respect to the node degree. + + Parameters + ---------- + G : NetworkX graph + + x: string ('in','out') + The degree type for source node (directed graphs only). + + y: string ('in','out') + The degree type for target node (directed graphs only). + + weight: string or None, optional (default=None) + The edge attribute that holds the numerical value used + as a weight. If None, then each edge has weight 1. + The degree is the sum of the edge weights adjacent to the node. + + nodes: list or iterable (optional) + Compute degree assortativity only for nodes in container. + The default is all nodes. + + Returns + ------- + r : float + Assortativity of graph by degree. + + Examples + -------- + >>> G = nx.path_graph(4) + >>> r = nx.degree_assortativity_coefficient(G) + >>> print(f"{r:3.1f}") + -0.5 + + See Also + -------- + attribute_assortativity_coefficient + numeric_assortativity_coefficient + degree_mixing_dict + degree_mixing_matrix + + Notes + ----- + This computes Eq. (21) in Ref. [1]_ , where e is the joint + probability distribution (mixing matrix) of the degrees. If G is + directed than the matrix e is the joint probability of the + user-specified degree type for the source and target. + + References + ---------- + .. [1] M. E. J. Newman, Mixing patterns in networks, + Physical Review E, 67 026126, 2003 + .. [2] Foster, J.G., Foster, D.V., Grassberger, P. & Paczuski, M. + Edge direction and the structure of networks, PNAS 107, 10815-20 (2010). + """ + if nodes is None: + nodes = G.nodes + + degrees = None + + if G.is_directed(): + indeg = ( + {d for _, d in G.in_degree(nodes, weight=weight)} + if "in" in (x, y) + else set() + ) + outdeg = ( + {d for _, d in G.out_degree(nodes, weight=weight)} + if "out" in (x, y) + else set() + ) + degrees = set.union(indeg, outdeg) + else: + degrees = {d for _, d in G.degree(nodes, weight=weight)} + + mapping = {d: i for i, d in enumerate(degrees)} + M = degree_mixing_matrix(G, x=x, y=y, nodes=nodes, weight=weight, mapping=mapping) + + return _numeric_ac(M, mapping=mapping) + + +@nx._dispatchable(edge_attrs="weight") +def degree_pearson_correlation_coefficient(G, x="out", y="in", weight=None, nodes=None): + """Compute degree assortativity of graph. + + Assortativity measures the similarity of connections + in the graph with respect to the node degree. + + This is the same as degree_assortativity_coefficient but uses the + potentially faster scipy.stats.pearsonr function. + + Parameters + ---------- + G : NetworkX graph + + x: string ('in','out') + The degree type for source node (directed graphs only). + + y: string ('in','out') + The degree type for target node (directed graphs only). + + weight: string or None, optional (default=None) + The edge attribute that holds the numerical value used + as a weight. If None, then each edge has weight 1. + The degree is the sum of the edge weights adjacent to the node. + + nodes: list or iterable (optional) + Compute pearson correlation of degrees only for specified nodes. + The default is all nodes. + + Returns + ------- + r : float + Assortativity of graph by degree. + + Examples + -------- + >>> G = nx.path_graph(4) + >>> r = nx.degree_pearson_correlation_coefficient(G) + >>> print(f"{r:3.1f}") + -0.5 + + Notes + ----- + This calls scipy.stats.pearsonr. + + References + ---------- + .. [1] M. E. J. Newman, Mixing patterns in networks + Physical Review E, 67 026126, 2003 + .. [2] Foster, J.G., Foster, D.V., Grassberger, P. & Paczuski, M. + Edge direction and the structure of networks, PNAS 107, 10815-20 (2010). + """ + import scipy as sp + + xy = node_degree_xy(G, x=x, y=y, nodes=nodes, weight=weight) + x, y = zip(*xy) + return float(sp.stats.pearsonr(x, y)[0]) + + +@nx._dispatchable(node_attrs="attribute") +def attribute_assortativity_coefficient(G, attribute, nodes=None): + """Compute assortativity for node attributes. + + Assortativity measures the similarity of connections + in the graph with respect to the given attribute. + + Parameters + ---------- + G : NetworkX graph + + attribute : string + Node attribute key + + nodes: list or iterable (optional) + Compute attribute assortativity for nodes in container. + The default is all nodes. + + Returns + ------- + r: float + Assortativity of graph for given attribute + + Examples + -------- + >>> G = nx.Graph() + >>> G.add_nodes_from([0, 1], color="red") + >>> G.add_nodes_from([2, 3], color="blue") + >>> G.add_edges_from([(0, 1), (2, 3)]) + >>> print(nx.attribute_assortativity_coefficient(G, "color")) + 1.0 + + Notes + ----- + This computes Eq. (2) in Ref. [1]_ , (trace(M)-sum(M^2))/(1-sum(M^2)), + where M is the joint probability distribution (mixing matrix) + of the specified attribute. + + References + ---------- + .. [1] M. E. J. Newman, Mixing patterns in networks, + Physical Review E, 67 026126, 2003 + """ + M = attribute_mixing_matrix(G, attribute, nodes) + return attribute_ac(M) + + +@nx._dispatchable(node_attrs="attribute") +def numeric_assortativity_coefficient(G, attribute, nodes=None): + """Compute assortativity for numerical node attributes. + + Assortativity measures the similarity of connections + in the graph with respect to the given numeric attribute. + + Parameters + ---------- + G : NetworkX graph + + attribute : string + Node attribute key. + + nodes: list or iterable (optional) + Compute numeric assortativity only for attributes of nodes in + container. The default is all nodes. + + Returns + ------- + r: float + Assortativity of graph for given attribute + + Examples + -------- + >>> G = nx.Graph() + >>> G.add_nodes_from([0, 1], size=2) + >>> G.add_nodes_from([2, 3], size=3) + >>> G.add_edges_from([(0, 1), (2, 3)]) + >>> print(nx.numeric_assortativity_coefficient(G, "size")) + 1.0 + + Notes + ----- + This computes Eq. (21) in Ref. [1]_ , which is the Pearson correlation + coefficient of the specified (scalar valued) attribute across edges. + + References + ---------- + .. [1] M. E. J. Newman, Mixing patterns in networks + Physical Review E, 67 026126, 2003 + """ + if nodes is None: + nodes = G.nodes + vals = {G.nodes[n][attribute] for n in nodes} + mapping = {d: i for i, d in enumerate(vals)} + M = attribute_mixing_matrix(G, attribute, nodes, mapping) + return _numeric_ac(M, mapping) + + +def attribute_ac(M): + """Compute assortativity for attribute matrix M. + + Parameters + ---------- + M : numpy.ndarray + 2D ndarray representing the attribute mixing matrix. + + Notes + ----- + This computes Eq. (2) in Ref. [1]_ , (trace(e)-sum(e^2))/(1-sum(e^2)), + where e is the joint probability distribution (mixing matrix) + of the specified attribute. + + References + ---------- + .. [1] M. E. J. Newman, Mixing patterns in networks, + Physical Review E, 67 026126, 2003 + """ + if M.sum() != 1.0: + M = M / M.sum() + s = (M @ M).sum() + t = M.trace() + r = (t - s) / (1 - s) + return float(r) + + +def _numeric_ac(M, mapping): + # M is a 2D numpy array + # numeric assortativity coefficient, pearsonr + import numpy as np + + if M.sum() != 1.0: + M = M / M.sum() + x = np.array(list(mapping.keys())) + y = x # x and y have the same support + idx = list(mapping.values()) + a = M.sum(axis=0) + b = M.sum(axis=1) + vara = (a[idx] * x**2).sum() - ((a[idx] * x).sum()) ** 2 + varb = (b[idx] * y**2).sum() - ((b[idx] * y).sum()) ** 2 + xy = np.outer(x, y) + ab = np.outer(a[idx], b[idx]) + return float((xy * (M - ab)).sum() / np.sqrt(vara * varb)) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/mixing.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/mixing.py new file mode 100644 index 0000000000000000000000000000000000000000..1762d4e56c96624ecb4cccf1f2247f46159a12e4 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/mixing.py @@ -0,0 +1,255 @@ +""" +Mixing matrices for node attributes and degree. +""" + +import networkx as nx +from networkx.algorithms.assortativity.pairs import node_attribute_xy, node_degree_xy +from networkx.utils import dict_to_numpy_array + +__all__ = [ + "attribute_mixing_matrix", + "attribute_mixing_dict", + "degree_mixing_matrix", + "degree_mixing_dict", + "mixing_dict", +] + + +@nx._dispatchable(node_attrs="attribute") +def attribute_mixing_dict(G, attribute, nodes=None, normalized=False): + """Returns dictionary representation of mixing matrix for attribute. + + Parameters + ---------- + G : graph + NetworkX graph object. + + attribute : string + Node attribute key. + + nodes: list or iterable (optional) + Unse nodes in container to build the dict. The default is all nodes. + + normalized : bool (default=False) + Return counts if False or probabilities if True. + + Examples + -------- + >>> G = nx.Graph() + >>> G.add_nodes_from([0, 1], color="red") + >>> G.add_nodes_from([2, 3], color="blue") + >>> G.add_edge(1, 3) + >>> d = nx.attribute_mixing_dict(G, "color") + >>> print(d["red"]["blue"]) + 1 + >>> print(d["blue"]["red"]) # d symmetric for undirected graphs + 1 + + Returns + ------- + d : dictionary + Counts or joint probability of occurrence of attribute pairs. + """ + xy_iter = node_attribute_xy(G, attribute, nodes) + return mixing_dict(xy_iter, normalized=normalized) + + +@nx._dispatchable(node_attrs="attribute") +def attribute_mixing_matrix(G, attribute, nodes=None, mapping=None, normalized=True): + """Returns mixing matrix for attribute. + + Parameters + ---------- + G : graph + NetworkX graph object. + + attribute : string + Node attribute key. + + nodes: list or iterable (optional) + Use only nodes in container to build the matrix. The default is + all nodes. + + mapping : dictionary, optional + Mapping from node attribute to integer index in matrix. + If not specified, an arbitrary ordering will be used. + + normalized : bool (default=True) + Return counts if False or probabilities if True. + + Returns + ------- + m: numpy array + Counts or joint probability of occurrence of attribute pairs. + + Notes + ----- + If each node has a unique attribute value, the unnormalized mixing matrix + will be equal to the adjacency matrix. To get a denser mixing matrix, + the rounding can be performed to form groups of nodes with equal values. + For example, the exact height of persons in cm (180.79155222, 163.9080892, + 163.30095355, 167.99016217, 168.21590163, ...) can be rounded to (180, 163, + 163, 168, 168, ...). + + Definitions of attribute mixing matrix vary on whether the matrix + should include rows for attribute values that don't arise. Here we + do not include such empty-rows. But you can force them to appear + by inputting a `mapping` that includes those values. + + Examples + -------- + >>> G = nx.path_graph(3) + >>> gender = {0: "male", 1: "female", 2: "female"} + >>> nx.set_node_attributes(G, gender, "gender") + >>> mapping = {"male": 0, "female": 1} + >>> mix_mat = nx.attribute_mixing_matrix(G, "gender", mapping=mapping) + >>> mix_mat + array([[0. , 0.25], + [0.25, 0.5 ]]) + """ + d = attribute_mixing_dict(G, attribute, nodes) + a = dict_to_numpy_array(d, mapping=mapping) + if normalized: + a = a / a.sum() + return a + + +@nx._dispatchable(edge_attrs="weight") +def degree_mixing_dict(G, x="out", y="in", weight=None, nodes=None, normalized=False): + """Returns dictionary representation of mixing matrix for degree. + + Parameters + ---------- + G : graph + NetworkX graph object. + + x: string ('in','out') + The degree type for source node (directed graphs only). + + y: string ('in','out') + The degree type for target node (directed graphs only). + + weight: string or None, optional (default=None) + The edge attribute that holds the numerical value used + as a weight. If None, then each edge has weight 1. + The degree is the sum of the edge weights adjacent to the node. + + normalized : bool (default=False) + Return counts if False or probabilities if True. + + Returns + ------- + d: dictionary + Counts or joint probability of occurrence of degree pairs. + """ + xy_iter = node_degree_xy(G, x=x, y=y, nodes=nodes, weight=weight) + return mixing_dict(xy_iter, normalized=normalized) + + +@nx._dispatchable(edge_attrs="weight") +def degree_mixing_matrix( + G, x="out", y="in", weight=None, nodes=None, normalized=True, mapping=None +): + """Returns mixing matrix for attribute. + + Parameters + ---------- + G : graph + NetworkX graph object. + + x: string ('in','out') + The degree type for source node (directed graphs only). + + y: string ('in','out') + The degree type for target node (directed graphs only). + + nodes: list or iterable (optional) + Build the matrix using only nodes in container. + The default is all nodes. + + weight: string or None, optional (default=None) + The edge attribute that holds the numerical value used + as a weight. If None, then each edge has weight 1. + The degree is the sum of the edge weights adjacent to the node. + + normalized : bool (default=True) + Return counts if False or probabilities if True. + + mapping : dictionary, optional + Mapping from node degree to integer index in matrix. + If not specified, an arbitrary ordering will be used. + + Returns + ------- + m: numpy array + Counts, or joint probability, of occurrence of node degree. + + Notes + ----- + Definitions of degree mixing matrix vary on whether the matrix + should include rows for degree values that don't arise. Here we + do not include such empty-rows. But you can force them to appear + by inputting a `mapping` that includes those values. See examples. + + Examples + -------- + >>> G = nx.star_graph(3) + >>> mix_mat = nx.degree_mixing_matrix(G) + >>> mix_mat + array([[0. , 0.5], + [0.5, 0. ]]) + + If you want every possible degree to appear as a row, even if no nodes + have that degree, use `mapping` as follows, + + >>> max_degree = max(deg for n, deg in G.degree) + >>> mapping = {x: x for x in range(max_degree + 1)} # identity mapping + >>> mix_mat = nx.degree_mixing_matrix(G, mapping=mapping) + >>> mix_mat + array([[0. , 0. , 0. , 0. ], + [0. , 0. , 0. , 0.5], + [0. , 0. , 0. , 0. ], + [0. , 0.5, 0. , 0. ]]) + """ + d = degree_mixing_dict(G, x=x, y=y, nodes=nodes, weight=weight) + a = dict_to_numpy_array(d, mapping=mapping) + if normalized: + a = a / a.sum() + return a + + +def mixing_dict(xy, normalized=False): + """Returns a dictionary representation of mixing matrix. + + Parameters + ---------- + xy : list or container of two-tuples + Pairs of (x,y) items. + + attribute : string + Node attribute key + + normalized : bool (default=False) + Return counts if False or probabilities if True. + + Returns + ------- + d: dictionary + Counts or Joint probability of occurrence of values in xy. + """ + d = {} + psum = 0.0 + for x, y in xy: + if x not in d: + d[x] = {} + if y not in d: + d[y] = {} + v = d[x].get(y, 0) + d[x][y] = v + 1 + psum += 1 + + if normalized: + for _, jdict in d.items(): + for j in jdict: + jdict[j] /= psum + return d diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/neighbor_degree.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/neighbor_degree.py new file mode 100644 index 0000000000000000000000000000000000000000..6488d041a8bdc93ef3591283781b81bcf7f47dab --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/neighbor_degree.py @@ -0,0 +1,160 @@ +import networkx as nx + +__all__ = ["average_neighbor_degree"] + + +@nx._dispatchable(edge_attrs="weight") +def average_neighbor_degree(G, source="out", target="out", nodes=None, weight=None): + r"""Returns the average degree of the neighborhood of each node. + + In an undirected graph, the neighborhood `N(i)` of node `i` contains the + nodes that are connected to `i` by an edge. + + For directed graphs, `N(i)` is defined according to the parameter `source`: + + - if source is 'in', then `N(i)` consists of predecessors of node `i`. + - if source is 'out', then `N(i)` consists of successors of node `i`. + - if source is 'in+out', then `N(i)` is both predecessors and successors. + + The average neighborhood degree of a node `i` is + + .. math:: + + k_{nn,i} = \frac{1}{|N(i)|} \sum_{j \in N(i)} k_j + + where `N(i)` are the neighbors of node `i` and `k_j` is + the degree of node `j` which belongs to `N(i)`. For weighted + graphs, an analogous measure can be defined [1]_, + + .. math:: + + k_{nn,i}^{w} = \frac{1}{s_i} \sum_{j \in N(i)} w_{ij} k_j + + where `s_i` is the weighted degree of node `i`, `w_{ij}` + is the weight of the edge that links `i` and `j` and + `N(i)` are the neighbors of node `i`. + + + Parameters + ---------- + G : NetworkX graph + + source : string ("in"|"out"|"in+out"), optional (default="out") + Directed graphs only. + Use "in"- or "out"-neighbors of source node. + + target : string ("in"|"out"|"in+out"), optional (default="out") + Directed graphs only. + Use "in"- or "out"-degree for target node. + + nodes : list or iterable, optional (default=G.nodes) + Compute neighbor degree only for specified nodes. + + weight : string or None, optional (default=None) + The edge attribute that holds the numerical value used as a weight. + If None, then each edge has weight 1. + + Returns + ------- + d: dict + A dictionary keyed by node to the average degree of its neighbors. + + Raises + ------ + NetworkXError + If either `source` or `target` are not one of 'in', 'out', or 'in+out'. + If either `source` or `target` is passed for an undirected graph. + + Examples + -------- + >>> G = nx.path_graph(4) + >>> G.edges[0, 1]["weight"] = 5 + >>> G.edges[2, 3]["weight"] = 3 + + >>> nx.average_neighbor_degree(G) + {0: 2.0, 1: 1.5, 2: 1.5, 3: 2.0} + >>> nx.average_neighbor_degree(G, weight="weight") + {0: 2.0, 1: 1.1666666666666667, 2: 1.25, 3: 2.0} + + >>> G = nx.DiGraph() + >>> nx.add_path(G, [0, 1, 2, 3]) + >>> nx.average_neighbor_degree(G, source="in", target="in") + {0: 0.0, 1: 0.0, 2: 1.0, 3: 1.0} + + >>> nx.average_neighbor_degree(G, source="out", target="out") + {0: 1.0, 1: 1.0, 2: 0.0, 3: 0.0} + + See Also + -------- + average_degree_connectivity + + References + ---------- + .. [1] A. Barrat, M. Barthélemy, R. Pastor-Satorras, and A. Vespignani, + "The architecture of complex weighted networks". + PNAS 101 (11): 3747–3752 (2004). + """ + if G.is_directed(): + if source == "in": + source_degree = G.in_degree + elif source == "out": + source_degree = G.out_degree + elif source == "in+out": + source_degree = G.degree + else: + raise nx.NetworkXError( + f"source argument {source} must be 'in', 'out' or 'in+out'" + ) + + if target == "in": + target_degree = G.in_degree + elif target == "out": + target_degree = G.out_degree + elif target == "in+out": + target_degree = G.degree + else: + raise nx.NetworkXError( + f"target argument {target} must be 'in', 'out' or 'in+out'" + ) + else: + if source != "out" or target != "out": + raise nx.NetworkXError( + f"source and target arguments are only supported for directed graphs" + ) + source_degree = target_degree = G.degree + + # precompute target degrees -- should *not* be weighted degree + t_deg = dict(target_degree()) + + # Set up both predecessor and successor neighbor dicts leaving empty if not needed + G_P = G_S = {n: {} for n in G} + if G.is_directed(): + # "in" or "in+out" cases: G_P contains predecessors + if "in" in source: + G_P = G.pred + # "out" or "in+out" cases: G_S contains successors + if "out" in source: + G_S = G.succ + else: + # undirected leave G_P empty but G_S is the adjacency + G_S = G.adj + + # Main loop: Compute average degree of neighbors + avg = {} + for n, deg in source_degree(nodes, weight=weight): + # handle degree zero average + if deg == 0: + avg[n] = 0.0 + continue + + # we sum over both G_P and G_S, but one of the two is usually empty. + if weight is None: + avg[n] = ( + sum(t_deg[nbr] for nbr in G_S[n]) + sum(t_deg[nbr] for nbr in G_P[n]) + ) / deg + else: + avg[n] = ( + sum(dd.get(weight, 1) * t_deg[nbr] for nbr, dd in G_S[n].items()) + + sum(dd.get(weight, 1) * t_deg[nbr] for nbr, dd in G_P[n].items()) + ) / deg + return avg diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/pairs.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/pairs.py new file mode 100644 index 0000000000000000000000000000000000000000..ea5fd287545c80dd2ebbb2b253d5ab0ab7480743 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/pairs.py @@ -0,0 +1,127 @@ +"""Generators of x-y pairs of node data.""" + +import networkx as nx + +__all__ = ["node_attribute_xy", "node_degree_xy"] + + +@nx._dispatchable(node_attrs="attribute") +def node_attribute_xy(G, attribute, nodes=None): + """Yields 2-tuples of node attribute values for all edges in `G`. + + This generator yields, for each edge in `G` incident to a node in `nodes`, + a 2-tuple of form ``(attribute value, attribute value)`` for the parameter + specified node-attribute. + + Parameters + ---------- + G: NetworkX graph + + attribute: key + The node attribute key. + + nodes: list or iterable (optional) + Use only edges that are incident to specified nodes. + The default is all nodes. + + Yields + ------ + (x, y): 2-tuple + Generates 2-tuple of (attribute, attribute) values. + + Examples + -------- + >>> G = nx.DiGraph() + >>> G.add_node(1, color="red") + >>> G.add_node(2, color="blue") + >>> G.add_node(3, color="green") + >>> G.add_edge(1, 2) + >>> list(nx.node_attribute_xy(G, "color")) + [('red', 'blue')] + + Notes + ----- + For undirected graphs, each edge is produced twice, once for each edge + representation (u, v) and (v, u), with the exception of self-loop edges + which only appear once. + """ + if nodes is None: + nodes = set(G) + else: + nodes = set(nodes) + Gnodes = G.nodes + for u, nbrsdict in G.adjacency(): + if u not in nodes: + continue + uattr = Gnodes[u].get(attribute, None) + if G.is_multigraph(): + for v, keys in nbrsdict.items(): + vattr = Gnodes[v].get(attribute, None) + for _ in keys: + yield (uattr, vattr) + else: + for v in nbrsdict: + vattr = Gnodes[v].get(attribute, None) + yield (uattr, vattr) + + +@nx._dispatchable(edge_attrs="weight") +def node_degree_xy(G, x="out", y="in", weight=None, nodes=None): + """Yields 2-tuples of ``(degree, degree)`` values for edges in `G`. + + This generator yields, for each edge in `G` incident to a node in `nodes`, + a 2-tuple of form ``(degree, degree)``. The node degrees are weighted + when a `weight` attribute is specified. + + Parameters + ---------- + G: NetworkX graph + + x: string ('in','out') + The degree type for source node (directed graphs only). + + y: string ('in','out') + The degree type for target node (directed graphs only). + + weight: string or None, optional (default=None) + The edge attribute that holds the numerical value used + as a weight. If None, then each edge has weight 1. + The degree is the sum of the edge weights adjacent to the node. + + nodes: list or iterable (optional) + Use only edges that are adjacency to specified nodes. + The default is all nodes. + + Yields + ------ + (x, y): 2-tuple + Generates 2-tuple of (degree, degree) values. + + Examples + -------- + >>> G = nx.DiGraph() + >>> G.add_edge(1, 2) + >>> list(nx.node_degree_xy(G, x="out", y="in")) + [(1, 1)] + >>> list(nx.node_degree_xy(G, x="in", y="out")) + [(0, 0)] + + Notes + ----- + For undirected graphs, each edge is produced twice, once for each edge + representation (u, v) and (v, u), with the exception of self-loop edges + which only appear once. + """ + nodes = set(G) if nodes is None else set(nodes) + if G.is_directed(): + direction = {"out": G.out_degree, "in": G.in_degree} + xdeg = direction[x] + ydeg = direction[y] + else: + xdeg = ydeg = G.degree + + for u, degu in xdeg(nodes, weight=weight): + # use G.edges to treat multigraphs correctly + neighbors = (nbr for _, nbr in G.edges(u) if nbr in nodes) + for _, degv in ydeg(neighbors, weight=weight): + yield degu, degv diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/tests/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/tests/__pycache__/test_neighbor_degree.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/tests/__pycache__/test_neighbor_degree.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a9a0c41c882442a8087df1cda3adc460677a5a03 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/tests/__pycache__/test_neighbor_degree.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/tests/base_test.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/tests/base_test.py new file mode 100644 index 0000000000000000000000000000000000000000..46d6300649d3b4658a7263cad04354988b4da312 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/tests/base_test.py @@ -0,0 +1,81 @@ +import networkx as nx + + +class BaseTestAttributeMixing: + @classmethod + def setup_class(cls): + G = nx.Graph() + G.add_nodes_from([0, 1], fish="one") + G.add_nodes_from([2, 3], fish="two") + G.add_nodes_from([4], fish="red") + G.add_nodes_from([5], fish="blue") + G.add_edges_from([(0, 1), (2, 3), (0, 4), (2, 5)]) + cls.G = G + + D = nx.DiGraph() + D.add_nodes_from([0, 1], fish="one") + D.add_nodes_from([2, 3], fish="two") + D.add_nodes_from([4], fish="red") + D.add_nodes_from([5], fish="blue") + D.add_edges_from([(0, 1), (2, 3), (0, 4), (2, 5)]) + cls.D = D + + M = nx.MultiGraph() + M.add_nodes_from([0, 1], fish="one") + M.add_nodes_from([2, 3], fish="two") + M.add_nodes_from([4], fish="red") + M.add_nodes_from([5], fish="blue") + M.add_edges_from([(0, 1), (0, 1), (2, 3)]) + cls.M = M + + S = nx.Graph() + S.add_nodes_from([0, 1], fish="one") + S.add_nodes_from([2, 3], fish="two") + S.add_nodes_from([4], fish="red") + S.add_nodes_from([5], fish="blue") + S.add_edge(0, 0) + S.add_edge(2, 2) + cls.S = S + + N = nx.Graph() + N.add_nodes_from([0, 1], margin=-2) + N.add_nodes_from([2, 3], margin=-2) + N.add_nodes_from([4], margin=-3) + N.add_nodes_from([5], margin=-4) + N.add_edges_from([(0, 1), (2, 3), (0, 4), (2, 5)]) + cls.N = N + + F = nx.Graph() + F.add_edges_from([(0, 3), (1, 3), (2, 3)], weight=0.5) + F.add_edge(0, 2, weight=1) + nx.set_node_attributes(F, dict(F.degree(weight="weight")), "margin") + cls.F = F + + K = nx.Graph() + K.add_nodes_from([1, 2], margin=-1) + K.add_nodes_from([3], margin=1) + K.add_nodes_from([4], margin=2) + K.add_edges_from([(3, 4), (1, 2), (1, 3)]) + cls.K = K + + +class BaseTestDegreeMixing: + @classmethod + def setup_class(cls): + cls.P4 = nx.path_graph(4) + cls.D = nx.DiGraph() + cls.D.add_edges_from([(0, 2), (0, 3), (1, 3), (2, 3)]) + cls.D2 = nx.DiGraph() + cls.D2.add_edges_from([(0, 3), (1, 0), (1, 2), (2, 4), (4, 1), (4, 3), (4, 2)]) + cls.M = nx.MultiGraph() + nx.add_path(cls.M, range(4)) + cls.M.add_edge(0, 1) + cls.S = nx.Graph() + cls.S.add_edges_from([(0, 0), (1, 1)]) + cls.W = nx.Graph() + cls.W.add_edges_from([(0, 3), (1, 3), (2, 3)], weight=0.5) + cls.W.add_edge(0, 2, weight=1) + S1 = nx.star_graph(4) + S2 = nx.star_graph(4) + cls.DS = nx.disjoint_union(S1, S2) + cls.DS.add_edge(4, 5) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/tests/test_connectivity.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/tests/test_connectivity.py new file mode 100644 index 0000000000000000000000000000000000000000..21c6287bbe6b0bfc9aa41201b593f342b2d3976e --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/tests/test_connectivity.py @@ -0,0 +1,143 @@ +from itertools import permutations + +import pytest + +import networkx as nx + + +class TestNeighborConnectivity: + def test_degree_p4(self): + G = nx.path_graph(4) + answer = {1: 2.0, 2: 1.5} + nd = nx.average_degree_connectivity(G) + assert nd == answer + + D = G.to_directed() + answer = {2: 2.0, 4: 1.5} + nd = nx.average_degree_connectivity(D) + assert nd == answer + + answer = {1: 2.0, 2: 1.5} + D = G.to_directed() + nd = nx.average_degree_connectivity(D, source="in", target="in") + assert nd == answer + + D = G.to_directed() + nd = nx.average_degree_connectivity(D, source="in", target="in") + assert nd == answer + + def test_degree_p4_weighted(self): + G = nx.path_graph(4) + G[1][2]["weight"] = 4 + answer = {1: 2.0, 2: 1.8} + nd = nx.average_degree_connectivity(G, weight="weight") + assert nd == answer + answer = {1: 2.0, 2: 1.5} + nd = nx.average_degree_connectivity(G) + assert nd == answer + + D = G.to_directed() + answer = {2: 2.0, 4: 1.8} + nd = nx.average_degree_connectivity(D, weight="weight") + assert nd == answer + + answer = {1: 2.0, 2: 1.8} + D = G.to_directed() + nd = nx.average_degree_connectivity( + D, weight="weight", source="in", target="in" + ) + assert nd == answer + + D = G.to_directed() + nd = nx.average_degree_connectivity( + D, source="in", target="out", weight="weight" + ) + assert nd == answer + + def test_weight_keyword(self): + G = nx.path_graph(4) + G[1][2]["other"] = 4 + answer = {1: 2.0, 2: 1.8} + nd = nx.average_degree_connectivity(G, weight="other") + assert nd == answer + answer = {1: 2.0, 2: 1.5} + nd = nx.average_degree_connectivity(G, weight=None) + assert nd == answer + + D = G.to_directed() + answer = {2: 2.0, 4: 1.8} + nd = nx.average_degree_connectivity(D, weight="other") + assert nd == answer + + answer = {1: 2.0, 2: 1.8} + D = G.to_directed() + nd = nx.average_degree_connectivity(D, weight="other", source="in", target="in") + assert nd == answer + + D = G.to_directed() + nd = nx.average_degree_connectivity(D, weight="other", source="in", target="in") + assert nd == answer + + def test_degree_barrat(self): + G = nx.star_graph(5) + G.add_edges_from([(5, 6), (5, 7), (5, 8), (5, 9)]) + G[0][5]["weight"] = 5 + nd = nx.average_degree_connectivity(G)[5] + assert nd == 1.8 + nd = nx.average_degree_connectivity(G, weight="weight")[5] + assert nd == pytest.approx(3.222222, abs=1e-5) + + def test_zero_deg(self): + G = nx.DiGraph() + G.add_edge(1, 2) + G.add_edge(1, 3) + G.add_edge(1, 4) + c = nx.average_degree_connectivity(G) + assert c == {1: 0, 3: 1} + c = nx.average_degree_connectivity(G, source="in", target="in") + assert c == {0: 0, 1: 0} + c = nx.average_degree_connectivity(G, source="in", target="out") + assert c == {0: 0, 1: 3} + c = nx.average_degree_connectivity(G, source="in", target="in+out") + assert c == {0: 0, 1: 3} + c = nx.average_degree_connectivity(G, source="out", target="out") + assert c == {0: 0, 3: 0} + c = nx.average_degree_connectivity(G, source="out", target="in") + assert c == {0: 0, 3: 1} + c = nx.average_degree_connectivity(G, source="out", target="in+out") + assert c == {0: 0, 3: 1} + + def test_in_out_weight(self): + G = nx.DiGraph() + G.add_edge(1, 2, weight=1) + G.add_edge(1, 3, weight=1) + G.add_edge(3, 1, weight=1) + for s, t in permutations(["in", "out", "in+out"], 2): + c = nx.average_degree_connectivity(G, source=s, target=t) + cw = nx.average_degree_connectivity(G, source=s, target=t, weight="weight") + assert c == cw + + def test_invalid_source(self): + with pytest.raises(nx.NetworkXError): + G = nx.DiGraph() + nx.average_degree_connectivity(G, source="bogus") + + def test_invalid_target(self): + with pytest.raises(nx.NetworkXError): + G = nx.DiGraph() + nx.average_degree_connectivity(G, target="bogus") + + def test_invalid_undirected_graph(self): + G = nx.Graph() + with pytest.raises(nx.NetworkXError): + nx.average_degree_connectivity(G, target="bogus") + with pytest.raises(nx.NetworkXError): + nx.average_degree_connectivity(G, source="bogus") + + def test_single_node(self): + # TODO Is this really the intended behavior for providing a + # single node as the argument `nodes`? Shouldn't the function + # just return the connectivity value itself? + G = nx.trivial_graph() + conn = nx.average_degree_connectivity(G, nodes=0) + assert conn == {0: 0} diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/tests/test_correlation.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/tests/test_correlation.py new file mode 100644 index 0000000000000000000000000000000000000000..147c837459ae47c4133718615b492d1dee2f0674 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/tests/test_correlation.py @@ -0,0 +1,122 @@ +import pytest + +import networkx as nx +from networkx.algorithms.assortativity.correlation import attribute_ac + +from .base_test import BaseTestAttributeMixing, BaseTestDegreeMixing + +np = pytest.importorskip("numpy") +pytest.importorskip("scipy") + + +class TestDegreeMixingCorrelation(BaseTestDegreeMixing): + def test_degree_assortativity_undirected(self): + r = nx.degree_assortativity_coefficient(self.P4) + np.testing.assert_almost_equal(r, -1.0 / 2, decimal=4) + + def test_degree_assortativity_node_kwargs(self): + G = nx.Graph() + edges = [(0, 1), (0, 3), (1, 2), (1, 3), (1, 4), (5, 9), (9, 0)] + G.add_edges_from(edges) + r = nx.degree_assortativity_coefficient(G, nodes=[1, 2, 4]) + np.testing.assert_almost_equal(r, -1.0, decimal=4) + + def test_degree_assortativity_directed(self): + r = nx.degree_assortativity_coefficient(self.D) + np.testing.assert_almost_equal(r, -0.57735, decimal=4) + + def test_degree_assortativity_directed2(self): + """Test degree assortativity for a directed graph where the set of + in/out degree does not equal the total degree.""" + r = nx.degree_assortativity_coefficient(self.D2) + np.testing.assert_almost_equal(r, 0.14852, decimal=4) + + def test_degree_assortativity_multigraph(self): + r = nx.degree_assortativity_coefficient(self.M) + np.testing.assert_almost_equal(r, -1.0 / 7.0, decimal=4) + + def test_degree_pearson_assortativity_undirected(self): + r = nx.degree_pearson_correlation_coefficient(self.P4) + np.testing.assert_almost_equal(r, -1.0 / 2, decimal=4) + + def test_degree_pearson_assortativity_directed(self): + r = nx.degree_pearson_correlation_coefficient(self.D) + np.testing.assert_almost_equal(r, -0.57735, decimal=4) + + def test_degree_pearson_assortativity_directed2(self): + """Test degree assortativity with Pearson for a directed graph where + the set of in/out degree does not equal the total degree.""" + r = nx.degree_pearson_correlation_coefficient(self.D2) + np.testing.assert_almost_equal(r, 0.14852, decimal=4) + + def test_degree_pearson_assortativity_multigraph(self): + r = nx.degree_pearson_correlation_coefficient(self.M) + np.testing.assert_almost_equal(r, -1.0 / 7.0, decimal=4) + + def test_degree_assortativity_weighted(self): + r = nx.degree_assortativity_coefficient(self.W, weight="weight") + np.testing.assert_almost_equal(r, -0.1429, decimal=4) + + def test_degree_assortativity_double_star(self): + r = nx.degree_assortativity_coefficient(self.DS) + np.testing.assert_almost_equal(r, -0.9339, decimal=4) + + +class TestAttributeMixingCorrelation(BaseTestAttributeMixing): + def test_attribute_assortativity_undirected(self): + r = nx.attribute_assortativity_coefficient(self.G, "fish") + assert r == 6.0 / 22.0 + + def test_attribute_assortativity_directed(self): + r = nx.attribute_assortativity_coefficient(self.D, "fish") + assert r == 1.0 / 3.0 + + def test_attribute_assortativity_multigraph(self): + r = nx.attribute_assortativity_coefficient(self.M, "fish") + assert r == 1.0 + + def test_attribute_assortativity_coefficient(self): + # from "Mixing patterns in networks" + # fmt: off + a = np.array([[0.258, 0.016, 0.035, 0.013], + [0.012, 0.157, 0.058, 0.019], + [0.013, 0.023, 0.306, 0.035], + [0.005, 0.007, 0.024, 0.016]]) + # fmt: on + r = attribute_ac(a) + np.testing.assert_almost_equal(r, 0.623, decimal=3) + + def test_attribute_assortativity_coefficient2(self): + # fmt: off + a = np.array([[0.18, 0.02, 0.01, 0.03], + [0.02, 0.20, 0.03, 0.02], + [0.01, 0.03, 0.16, 0.01], + [0.03, 0.02, 0.01, 0.22]]) + # fmt: on + r = attribute_ac(a) + np.testing.assert_almost_equal(r, 0.68, decimal=2) + + def test_attribute_assortativity(self): + a = np.array([[50, 50, 0], [50, 50, 0], [0, 0, 2]]) + r = attribute_ac(a) + np.testing.assert_almost_equal(r, 0.029, decimal=3) + + def test_attribute_assortativity_negative(self): + r = nx.numeric_assortativity_coefficient(self.N, "margin") + np.testing.assert_almost_equal(r, -0.2903, decimal=4) + + def test_assortativity_node_kwargs(self): + G = nx.Graph() + G.add_nodes_from([0, 1], size=2) + G.add_nodes_from([2, 3], size=3) + G.add_edges_from([(0, 1), (2, 3)]) + r = nx.numeric_assortativity_coefficient(G, "size", nodes=[0, 3]) + np.testing.assert_almost_equal(r, 1.0, decimal=4) + + def test_attribute_assortativity_float(self): + r = nx.numeric_assortativity_coefficient(self.F, "margin") + np.testing.assert_almost_equal(r, -0.1429, decimal=4) + + def test_attribute_assortativity_mixed(self): + r = nx.numeric_assortativity_coefficient(self.K, "margin") + np.testing.assert_almost_equal(r, 0.4340, decimal=4) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/tests/test_mixing.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/tests/test_mixing.py new file mode 100644 index 0000000000000000000000000000000000000000..589c102b43d4162d1c23cc207dfdbd5319e0e563 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/tests/test_mixing.py @@ -0,0 +1,174 @@ +import pytest + +import networkx as nx + +from .base_test import BaseTestAttributeMixing, BaseTestDegreeMixing + +np = pytest.importorskip("numpy") + + +class TestDegreeMixingDict(BaseTestDegreeMixing): + def test_degree_mixing_dict_undirected(self): + d = nx.degree_mixing_dict(self.P4) + d_result = {1: {2: 2}, 2: {1: 2, 2: 2}} + assert d == d_result + + def test_degree_mixing_dict_undirected_normalized(self): + d = nx.degree_mixing_dict(self.P4, normalized=True) + d_result = {1: {2: 1.0 / 3}, 2: {1: 1.0 / 3, 2: 1.0 / 3}} + assert d == d_result + + def test_degree_mixing_dict_directed(self): + d = nx.degree_mixing_dict(self.D) + d_result = {1: {3: 2}, 2: {1: 1, 3: 1}, 3: {}} + assert d == d_result + + def test_degree_mixing_dict_multigraph(self): + d = nx.degree_mixing_dict(self.M) + d_result = {1: {2: 1}, 2: {1: 1, 3: 3}, 3: {2: 3}} + assert d == d_result + + def test_degree_mixing_dict_weighted(self): + d = nx.degree_mixing_dict(self.W, weight="weight") + d_result = {0.5: {1.5: 1}, 1.5: {1.5: 6, 0.5: 1}} + assert d == d_result + + +class TestDegreeMixingMatrix(BaseTestDegreeMixing): + def test_degree_mixing_matrix_undirected(self): + # fmt: off + a_result = np.array([[0, 2], + [2, 2]] + ) + # fmt: on + a = nx.degree_mixing_matrix(self.P4, normalized=False) + np.testing.assert_equal(a, a_result) + a = nx.degree_mixing_matrix(self.P4) + np.testing.assert_equal(a, a_result / a_result.sum()) + + def test_degree_mixing_matrix_directed(self): + # fmt: off + a_result = np.array([[0, 0, 2], + [1, 0, 1], + [0, 0, 0]] + ) + # fmt: on + a = nx.degree_mixing_matrix(self.D, normalized=False) + np.testing.assert_equal(a, a_result) + a = nx.degree_mixing_matrix(self.D) + np.testing.assert_equal(a, a_result / a_result.sum()) + + def test_degree_mixing_matrix_multigraph(self): + # fmt: off + a_result = np.array([[0, 1, 0], + [1, 0, 3], + [0, 3, 0]] + ) + # fmt: on + a = nx.degree_mixing_matrix(self.M, normalized=False) + np.testing.assert_equal(a, a_result) + a = nx.degree_mixing_matrix(self.M) + np.testing.assert_equal(a, a_result / a_result.sum()) + + def test_degree_mixing_matrix_selfloop(self): + # fmt: off + a_result = np.array([[2]]) + # fmt: on + a = nx.degree_mixing_matrix(self.S, normalized=False) + np.testing.assert_equal(a, a_result) + a = nx.degree_mixing_matrix(self.S) + np.testing.assert_equal(a, a_result / a_result.sum()) + + def test_degree_mixing_matrix_weighted(self): + a_result = np.array([[0.0, 1.0], [1.0, 6.0]]) + a = nx.degree_mixing_matrix(self.W, weight="weight", normalized=False) + np.testing.assert_equal(a, a_result) + a = nx.degree_mixing_matrix(self.W, weight="weight") + np.testing.assert_equal(a, a_result / float(a_result.sum())) + + def test_degree_mixing_matrix_mapping(self): + a_result = np.array([[6.0, 1.0], [1.0, 0.0]]) + mapping = {0.5: 1, 1.5: 0} + a = nx.degree_mixing_matrix( + self.W, weight="weight", normalized=False, mapping=mapping + ) + np.testing.assert_equal(a, a_result) + + +class TestAttributeMixingDict(BaseTestAttributeMixing): + def test_attribute_mixing_dict_undirected(self): + d = nx.attribute_mixing_dict(self.G, "fish") + d_result = { + "one": {"one": 2, "red": 1}, + "two": {"two": 2, "blue": 1}, + "red": {"one": 1}, + "blue": {"two": 1}, + } + assert d == d_result + + def test_attribute_mixing_dict_directed(self): + d = nx.attribute_mixing_dict(self.D, "fish") + d_result = { + "one": {"one": 1, "red": 1}, + "two": {"two": 1, "blue": 1}, + "red": {}, + "blue": {}, + } + assert d == d_result + + def test_attribute_mixing_dict_multigraph(self): + d = nx.attribute_mixing_dict(self.M, "fish") + d_result = {"one": {"one": 4}, "two": {"two": 2}} + assert d == d_result + + +class TestAttributeMixingMatrix(BaseTestAttributeMixing): + def test_attribute_mixing_matrix_undirected(self): + mapping = {"one": 0, "two": 1, "red": 2, "blue": 3} + a_result = np.array([[2, 0, 1, 0], [0, 2, 0, 1], [1, 0, 0, 0], [0, 1, 0, 0]]) + a = nx.attribute_mixing_matrix( + self.G, "fish", mapping=mapping, normalized=False + ) + np.testing.assert_equal(a, a_result) + a = nx.attribute_mixing_matrix(self.G, "fish", mapping=mapping) + np.testing.assert_equal(a, a_result / a_result.sum()) + + def test_attribute_mixing_matrix_directed(self): + mapping = {"one": 0, "two": 1, "red": 2, "blue": 3} + a_result = np.array([[1, 0, 1, 0], [0, 1, 0, 1], [0, 0, 0, 0], [0, 0, 0, 0]]) + a = nx.attribute_mixing_matrix( + self.D, "fish", mapping=mapping, normalized=False + ) + np.testing.assert_equal(a, a_result) + a = nx.attribute_mixing_matrix(self.D, "fish", mapping=mapping) + np.testing.assert_equal(a, a_result / a_result.sum()) + + def test_attribute_mixing_matrix_multigraph(self): + mapping = {"one": 0, "two": 1, "red": 2, "blue": 3} + a_result = np.array([[4, 0, 0, 0], [0, 2, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]) + a = nx.attribute_mixing_matrix( + self.M, "fish", mapping=mapping, normalized=False + ) + np.testing.assert_equal(a, a_result) + a = nx.attribute_mixing_matrix(self.M, "fish", mapping=mapping) + np.testing.assert_equal(a, a_result / a_result.sum()) + + def test_attribute_mixing_matrix_negative(self): + mapping = {-2: 0, -3: 1, -4: 2} + a_result = np.array([[4.0, 1.0, 1.0], [1.0, 0.0, 0.0], [1.0, 0.0, 0.0]]) + a = nx.attribute_mixing_matrix( + self.N, "margin", mapping=mapping, normalized=False + ) + np.testing.assert_equal(a, a_result) + a = nx.attribute_mixing_matrix(self.N, "margin", mapping=mapping) + np.testing.assert_equal(a, a_result / float(a_result.sum())) + + def test_attribute_mixing_matrix_float(self): + mapping = {0.5: 1, 1.5: 0} + a_result = np.array([[6.0, 1.0], [1.0, 0.0]]) + a = nx.attribute_mixing_matrix( + self.F, "margin", mapping=mapping, normalized=False + ) + np.testing.assert_equal(a, a_result) + a = nx.attribute_mixing_matrix(self.F, "margin", mapping=mapping) + np.testing.assert_equal(a, a_result / a_result.sum()) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/tests/test_neighbor_degree.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/tests/test_neighbor_degree.py new file mode 100644 index 0000000000000000000000000000000000000000..92421ed4763e0f0fbd7429c523f7610ac35b70ca --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/tests/test_neighbor_degree.py @@ -0,0 +1,107 @@ +import pytest + +import networkx as nx + + +class TestAverageNeighbor: + def test_degree_p4(self): + G = nx.path_graph(4) + answer = {0: 2, 1: 1.5, 2: 1.5, 3: 2} + nd = nx.average_neighbor_degree(G) + assert nd == answer + + D = G.to_directed() + nd = nx.average_neighbor_degree(D) + assert nd == answer + + D = nx.DiGraph(G.edges(data=True)) + nd = nx.average_neighbor_degree(D) + assert nd == {0: 1, 1: 1, 2: 0, 3: 0} + nd = nx.average_neighbor_degree(D, "in", "out") + assert nd == {0: 0, 1: 1, 2: 1, 3: 1} + nd = nx.average_neighbor_degree(D, "out", "in") + assert nd == {0: 1, 1: 1, 2: 1, 3: 0} + nd = nx.average_neighbor_degree(D, "in", "in") + assert nd == {0: 0, 1: 0, 2: 1, 3: 1} + + def test_degree_p4_weighted(self): + G = nx.path_graph(4) + G[1][2]["weight"] = 4 + answer = {0: 2, 1: 1.8, 2: 1.8, 3: 2} + nd = nx.average_neighbor_degree(G, weight="weight") + assert nd == answer + + D = G.to_directed() + nd = nx.average_neighbor_degree(D, weight="weight") + assert nd == answer + + D = nx.DiGraph(G.edges(data=True)) + nd = nx.average_neighbor_degree(D, weight="weight") + assert nd == {0: 1, 1: 1, 2: 0, 3: 0} + nd = nx.average_neighbor_degree(D, "out", "out", weight="weight") + assert nd == {0: 1, 1: 1, 2: 0, 3: 0} + nd = nx.average_neighbor_degree(D, "in", "in", weight="weight") + assert nd == {0: 0, 1: 0, 2: 1, 3: 1} + nd = nx.average_neighbor_degree(D, "in", "out", weight="weight") + assert nd == {0: 0, 1: 1, 2: 1, 3: 1} + nd = nx.average_neighbor_degree(D, "out", "in", weight="weight") + assert nd == {0: 1, 1: 1, 2: 1, 3: 0} + nd = nx.average_neighbor_degree(D, source="in+out", weight="weight") + assert nd == {0: 1.0, 1: 1.0, 2: 0.8, 3: 1.0} + nd = nx.average_neighbor_degree(D, target="in+out", weight="weight") + assert nd == {0: 2.0, 1: 2.0, 2: 1.0, 3: 0.0} + + D = G.to_directed() + nd = nx.average_neighbor_degree(D, weight="weight") + assert nd == answer + nd = nx.average_neighbor_degree(D, source="out", target="out", weight="weight") + assert nd == answer + + D = G.to_directed() + nd = nx.average_neighbor_degree(D, source="in", target="in", weight="weight") + assert nd == answer + + def test_degree_k4(self): + G = nx.complete_graph(4) + answer = {0: 3, 1: 3, 2: 3, 3: 3} + nd = nx.average_neighbor_degree(G) + assert nd == answer + + D = G.to_directed() + nd = nx.average_neighbor_degree(D) + assert nd == answer + + D = G.to_directed() + nd = nx.average_neighbor_degree(D) + assert nd == answer + + D = G.to_directed() + nd = nx.average_neighbor_degree(D, source="in", target="in") + assert nd == answer + + def test_degree_k4_nodes(self): + G = nx.complete_graph(4) + answer = {1: 3.0, 2: 3.0} + nd = nx.average_neighbor_degree(G, nodes=[1, 2]) + assert nd == answer + + def test_degree_barrat(self): + G = nx.star_graph(5) + G.add_edges_from([(5, 6), (5, 7), (5, 8), (5, 9)]) + G[0][5]["weight"] = 5 + nd = nx.average_neighbor_degree(G)[5] + assert nd == 1.8 + nd = nx.average_neighbor_degree(G, weight="weight")[5] + assert nd == pytest.approx(3.222222, abs=1e-5) + + def test_error_invalid_source_target(self): + G = nx.path_graph(4) + with pytest.raises(nx.NetworkXError): + nx.average_neighbor_degree(G, "error") + with pytest.raises(nx.NetworkXError): + nx.average_neighbor_degree(G, "in", "error") + G = G.to_directed() + with pytest.raises(nx.NetworkXError): + nx.average_neighbor_degree(G, "error") + with pytest.raises(nx.NetworkXError): + nx.average_neighbor_degree(G, "in", "error") diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/tests/test_pairs.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/tests/test_pairs.py new file mode 100644 index 0000000000000000000000000000000000000000..3984292be84dd7b306066809fb3c50a7cf0424f4 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/assortativity/tests/test_pairs.py @@ -0,0 +1,87 @@ +import networkx as nx + +from .base_test import BaseTestAttributeMixing, BaseTestDegreeMixing + + +class TestAttributeMixingXY(BaseTestAttributeMixing): + def test_node_attribute_xy_undirected(self): + attrxy = sorted(nx.node_attribute_xy(self.G, "fish")) + attrxy_result = sorted( + [ + ("one", "one"), + ("one", "one"), + ("two", "two"), + ("two", "two"), + ("one", "red"), + ("red", "one"), + ("blue", "two"), + ("two", "blue"), + ] + ) + assert attrxy == attrxy_result + + def test_node_attribute_xy_undirected_nodes(self): + attrxy = sorted(nx.node_attribute_xy(self.G, "fish", nodes=["one", "yellow"])) + attrxy_result = sorted([]) + assert attrxy == attrxy_result + + def test_node_attribute_xy_directed(self): + attrxy = sorted(nx.node_attribute_xy(self.D, "fish")) + attrxy_result = sorted( + [("one", "one"), ("two", "two"), ("one", "red"), ("two", "blue")] + ) + assert attrxy == attrxy_result + + def test_node_attribute_xy_multigraph(self): + attrxy = sorted(nx.node_attribute_xy(self.M, "fish")) + attrxy_result = [ + ("one", "one"), + ("one", "one"), + ("one", "one"), + ("one", "one"), + ("two", "two"), + ("two", "two"), + ] + assert attrxy == attrxy_result + + def test_node_attribute_xy_selfloop(self): + attrxy = sorted(nx.node_attribute_xy(self.S, "fish")) + attrxy_result = [("one", "one"), ("two", "two")] + assert attrxy == attrxy_result + + +class TestDegreeMixingXY(BaseTestDegreeMixing): + def test_node_degree_xy_undirected(self): + xy = sorted(nx.node_degree_xy(self.P4)) + xy_result = sorted([(1, 2), (2, 1), (2, 2), (2, 2), (1, 2), (2, 1)]) + assert xy == xy_result + + def test_node_degree_xy_undirected_nodes(self): + xy = sorted(nx.node_degree_xy(self.P4, nodes=[0, 1, -1])) + xy_result = sorted([(1, 2), (2, 1)]) + assert xy == xy_result + + def test_node_degree_xy_directed(self): + xy = sorted(nx.node_degree_xy(self.D)) + xy_result = sorted([(2, 1), (2, 3), (1, 3), (1, 3)]) + assert xy == xy_result + + def test_node_degree_xy_multigraph(self): + xy = sorted(nx.node_degree_xy(self.M)) + xy_result = sorted( + [(2, 3), (2, 3), (3, 2), (3, 2), (2, 3), (3, 2), (1, 2), (2, 1)] + ) + assert xy == xy_result + + def test_node_degree_xy_selfloop(self): + xy = sorted(nx.node_degree_xy(self.S)) + xy_result = sorted([(2, 2), (2, 2)]) + assert xy == xy_result + + def test_node_degree_xy_weighted(self): + G = nx.Graph() + G.add_edge(1, 2, weight=7) + G.add_edge(2, 3, weight=10) + xy = sorted(nx.node_degree_xy(G, weight="weight")) + xy_result = sorted([(7, 17), (17, 10), (17, 7), (10, 17)]) + assert xy == xy_result diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..edc66b47efa70f9813db54ee3bdc32847aaeff65 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__init__.py @@ -0,0 +1,88 @@ +r"""This module provides functions and operations for bipartite +graphs. Bipartite graphs `B = (U, V, E)` have two node sets `U,V` and edges in +`E` that only connect nodes from opposite sets. It is common in the literature +to use an spatial analogy referring to the two node sets as top and bottom nodes. + +The bipartite algorithms are not imported into the networkx namespace +at the top level so the easiest way to use them is with: + +>>> from networkx.algorithms import bipartite + +NetworkX does not have a custom bipartite graph class but the Graph() +or DiGraph() classes can be used to represent bipartite graphs. However, +you have to keep track of which set each node belongs to, and make +sure that there is no edge between nodes of the same set. The convention used +in NetworkX is to use a node attribute named `bipartite` with values 0 or 1 to +identify the sets each node belongs to. This convention is not enforced in +the source code of bipartite functions, it's only a recommendation. + +For example: + +>>> B = nx.Graph() +>>> # Add nodes with the node attribute "bipartite" +>>> B.add_nodes_from([1, 2, 3, 4], bipartite=0) +>>> B.add_nodes_from(["a", "b", "c"], bipartite=1) +>>> # Add edges only between nodes of opposite node sets +>>> B.add_edges_from([(1, "a"), (1, "b"), (2, "b"), (2, "c"), (3, "c"), (4, "a")]) + +Many algorithms of the bipartite module of NetworkX require, as an argument, a +container with all the nodes that belong to one set, in addition to the bipartite +graph `B`. The functions in the bipartite package do not check that the node set +is actually correct nor that the input graph is actually bipartite. +If `B` is connected, you can find the two node sets using a two-coloring +algorithm: + +>>> nx.is_connected(B) +True +>>> bottom_nodes, top_nodes = bipartite.sets(B) + +However, if the input graph is not connected, there are more than one possible +colorations. This is the reason why we require the user to pass a container +with all nodes of one bipartite node set as an argument to most bipartite +functions. In the face of ambiguity, we refuse the temptation to guess and +raise an :exc:`AmbiguousSolution ` +Exception if the input graph for +:func:`bipartite.sets ` +is disconnected. + +Using the `bipartite` node attribute, you can easily get the two node sets: + +>>> top_nodes = {n for n, d in B.nodes(data=True) if d["bipartite"] == 0} +>>> bottom_nodes = set(B) - top_nodes + +So you can easily use the bipartite algorithms that require, as an argument, a +container with all nodes that belong to one node set: + +>>> print(round(bipartite.density(B, bottom_nodes), 2)) +0.5 +>>> G = bipartite.projected_graph(B, top_nodes) + +All bipartite graph generators in NetworkX build bipartite graphs with the +`bipartite` node attribute. Thus, you can use the same approach: + +>>> RB = bipartite.random_graph(5, 7, 0.2) +>>> RB_top = {n for n, d in RB.nodes(data=True) if d["bipartite"] == 0} +>>> RB_bottom = set(RB) - RB_top +>>> list(RB_top) +[0, 1, 2, 3, 4] +>>> list(RB_bottom) +[5, 6, 7, 8, 9, 10, 11] + +For other bipartite graph generators see +:mod:`Generators `. + +""" + +from networkx.algorithms.bipartite.basic import * +from networkx.algorithms.bipartite.centrality import * +from networkx.algorithms.bipartite.cluster import * +from networkx.algorithms.bipartite.covering import * +from networkx.algorithms.bipartite.edgelist import * +from networkx.algorithms.bipartite.matching import * +from networkx.algorithms.bipartite.matrix import * +from networkx.algorithms.bipartite.projection import * +from networkx.algorithms.bipartite.redundancy import * +from networkx.algorithms.bipartite.spectral import * +from networkx.algorithms.bipartite.generators import * +from networkx.algorithms.bipartite.extendability import * +from networkx.algorithms.bipartite.link_analysis import * diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5fa06819b8484e0502ec1fdef185c63589f67352 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/basic.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/basic.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c6d6cb7d6f19760068724a3a4824ee4fd3f27bb4 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/basic.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/centrality.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/centrality.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9a896c204aee93d1ee189681db13b2ceacf4bfc0 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/centrality.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/cluster.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/cluster.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..77a6a79cad8cd4a1e1a71d7e60f2c41ee8d2952e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/cluster.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/covering.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/covering.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..36705ed83463d8a5bcfa80e4abedd4b6d4cd0c8a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/covering.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/edgelist.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/edgelist.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f32b1e1048aa3bec46a8e2a6f899f6141ada425f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/edgelist.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/extendability.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/extendability.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9d1c3823f51a5120939435a292718252aec6bf45 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/extendability.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/generators.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/generators.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3b18f1b56fa98639710d536c5f2d9ca2c2f5916f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/generators.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/link_analysis.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/link_analysis.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2a9ba30e7b79c5dbf5768afc82265cf51ea650bd Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/link_analysis.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/matching.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/matching.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ffa1bf2e0739b47c1c296d4b8c2a0c95522263c2 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/matching.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/matrix.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/matrix.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..edcac829d9de875c9a0810a0eeacc47c88fcad22 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/matrix.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/projection.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/projection.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4d08a42bfef5321ee68316078588714257329031 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/projection.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/redundancy.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/redundancy.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1abab983be30a43a53d19a7a912f02325eef3c52 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/redundancy.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/spectral.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/spectral.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..91d464213f9e9f1a25cbf1e3b66e3bb564b2a0f7 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/__pycache__/spectral.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/basic.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/basic.py new file mode 100644 index 0000000000000000000000000000000000000000..8d9a4d5b341bf9a14048acc1132e6f450685cc62 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/basic.py @@ -0,0 +1,322 @@ +""" +========================== +Bipartite Graph Algorithms +========================== +""" + +import networkx as nx +from networkx.algorithms.components import connected_components +from networkx.exception import AmbiguousSolution + +__all__ = [ + "is_bipartite", + "is_bipartite_node_set", + "color", + "sets", + "density", + "degrees", +] + + +@nx._dispatchable +def color(G): + """Returns a two-coloring of the graph. + + Raises an exception if the graph is not bipartite. + + Parameters + ---------- + G : NetworkX graph + + Returns + ------- + color : dictionary + A dictionary keyed by node with a 1 or 0 as data for each node color. + + Raises + ------ + NetworkXError + If the graph is not two-colorable. + + Examples + -------- + >>> from networkx.algorithms import bipartite + >>> G = nx.path_graph(4) + >>> c = bipartite.color(G) + >>> print(c) + {0: 1, 1: 0, 2: 1, 3: 0} + + You can use this to set a node attribute indicating the bipartite set: + + >>> nx.set_node_attributes(G, c, "bipartite") + >>> print(G.nodes[0]["bipartite"]) + 1 + >>> print(G.nodes[1]["bipartite"]) + 0 + """ + if G.is_directed(): + import itertools + + def neighbors(v): + return itertools.chain.from_iterable([G.predecessors(v), G.successors(v)]) + + else: + neighbors = G.neighbors + + color = {} + for n in G: # handle disconnected graphs + if n in color or len(G[n]) == 0: # skip isolates + continue + queue = [n] + color[n] = 1 # nodes seen with color (1 or 0) + while queue: + v = queue.pop() + c = 1 - color[v] # opposite color of node v + for w in neighbors(v): + if w in color: + if color[w] == color[v]: + raise nx.NetworkXError("Graph is not bipartite.") + else: + color[w] = c + queue.append(w) + # color isolates with 0 + color.update(dict.fromkeys(nx.isolates(G), 0)) + return color + + +@nx._dispatchable +def is_bipartite(G): + """Returns True if graph G is bipartite, False if not. + + Parameters + ---------- + G : NetworkX graph + + Examples + -------- + >>> from networkx.algorithms import bipartite + >>> G = nx.path_graph(4) + >>> print(bipartite.is_bipartite(G)) + True + + See Also + -------- + color, is_bipartite_node_set + """ + try: + color(G) + return True + except nx.NetworkXError: + return False + + +@nx._dispatchable +def is_bipartite_node_set(G, nodes): + """Returns True if nodes and G/nodes are a bipartition of G. + + Parameters + ---------- + G : NetworkX graph + + nodes: list or container + Check if nodes are a one of a bipartite set. + + Examples + -------- + >>> from networkx.algorithms import bipartite + >>> G = nx.path_graph(4) + >>> X = set([1, 3]) + >>> bipartite.is_bipartite_node_set(G, X) + True + + Notes + ----- + An exception is raised if the input nodes are not distinct, because in this + case some bipartite algorithms will yield incorrect results. + For connected graphs the bipartite sets are unique. This function handles + disconnected graphs. + """ + S = set(nodes) + + if len(S) < len(nodes): + # this should maybe just return False? + raise AmbiguousSolution( + "The input node set contains duplicates.\n" + "This may lead to incorrect results when using it in bipartite algorithms.\n" + "Consider using set(nodes) as the input" + ) + + for CC in (G.subgraph(c).copy() for c in connected_components(G)): + X, Y = sets(CC) + if not ( + (X.issubset(S) and Y.isdisjoint(S)) or (Y.issubset(S) and X.isdisjoint(S)) + ): + return False + return True + + +@nx._dispatchable +def sets(G, top_nodes=None): + """Returns bipartite node sets of graph G. + + Raises an exception if the graph is not bipartite or if the input + graph is disconnected and thus more than one valid solution exists. + See :mod:`bipartite documentation ` + for further details on how bipartite graphs are handled in NetworkX. + + Parameters + ---------- + G : NetworkX graph + + top_nodes : container, optional + Container with all nodes in one bipartite node set. If not supplied + it will be computed. But if more than one solution exists an exception + will be raised. + + Returns + ------- + X : set + Nodes from one side of the bipartite graph. + Y : set + Nodes from the other side. + + Raises + ------ + AmbiguousSolution + Raised if the input bipartite graph is disconnected and no container + with all nodes in one bipartite set is provided. When determining + the nodes in each bipartite set more than one valid solution is + possible if the input graph is disconnected. + NetworkXError + Raised if the input graph is not bipartite. + + Examples + -------- + >>> from networkx.algorithms import bipartite + >>> G = nx.path_graph(4) + >>> X, Y = bipartite.sets(G) + >>> list(X) + [0, 2] + >>> list(Y) + [1, 3] + + See Also + -------- + color + + """ + if G.is_directed(): + is_connected = nx.is_weakly_connected + else: + is_connected = nx.is_connected + if top_nodes is not None: + X = set(top_nodes) + Y = set(G) - X + else: + if not is_connected(G): + msg = "Disconnected graph: Ambiguous solution for bipartite sets." + raise nx.AmbiguousSolution(msg) + c = color(G) + X = {n for n, is_top in c.items() if is_top} + Y = {n for n, is_top in c.items() if not is_top} + return (X, Y) + + +@nx._dispatchable(graphs="B") +def density(B, nodes): + """Returns density of bipartite graph B. + + Parameters + ---------- + B : NetworkX graph + + nodes: list or container + Nodes in one node set of the bipartite graph. + + Returns + ------- + d : float + The bipartite density + + Examples + -------- + >>> from networkx.algorithms import bipartite + >>> G = nx.complete_bipartite_graph(3, 2) + >>> X = set([0, 1, 2]) + >>> bipartite.density(G, X) + 1.0 + >>> Y = set([3, 4]) + >>> bipartite.density(G, Y) + 1.0 + + Notes + ----- + The container of nodes passed as argument must contain all nodes + in one of the two bipartite node sets to avoid ambiguity in the + case of disconnected graphs. + See :mod:`bipartite documentation ` + for further details on how bipartite graphs are handled in NetworkX. + + See Also + -------- + color + """ + n = len(B) + m = nx.number_of_edges(B) + nb = len(nodes) + nt = n - nb + if m == 0: # includes cases n==0 and n==1 + d = 0.0 + else: + if B.is_directed(): + d = m / (2 * nb * nt) + else: + d = m / (nb * nt) + return d + + +@nx._dispatchable(graphs="B", edge_attrs="weight") +def degrees(B, nodes, weight=None): + """Returns the degrees of the two node sets in the bipartite graph B. + + Parameters + ---------- + B : NetworkX graph + + nodes: list or container + Nodes in one node set of the bipartite graph. + + weight : string or None, optional (default=None) + The edge attribute that holds the numerical value used as a weight. + If None, then each edge has weight 1. + The degree is the sum of the edge weights adjacent to the node. + + Returns + ------- + (degX,degY) : tuple of dictionaries + The degrees of the two bipartite sets as dictionaries keyed by node. + + Examples + -------- + >>> from networkx.algorithms import bipartite + >>> G = nx.complete_bipartite_graph(3, 2) + >>> Y = set([3, 4]) + >>> degX, degY = bipartite.degrees(G, Y) + >>> dict(degX) + {0: 2, 1: 2, 2: 2} + + Notes + ----- + The container of nodes passed as argument must contain all nodes + in one of the two bipartite node sets to avoid ambiguity in the + case of disconnected graphs. + See :mod:`bipartite documentation ` + for further details on how bipartite graphs are handled in NetworkX. + + See Also + -------- + color, density + """ + bottom = set(nodes) + top = set(B) - bottom + return (B.degree(top, weight), B.degree(bottom, weight)) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/centrality.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/centrality.py new file mode 100644 index 0000000000000000000000000000000000000000..42d7270ee7d0bb18b56a55dc4c17dc19f5dc77a7 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/centrality.py @@ -0,0 +1,290 @@ +import networkx as nx + +__all__ = ["degree_centrality", "betweenness_centrality", "closeness_centrality"] + + +@nx._dispatchable(name="bipartite_degree_centrality") +def degree_centrality(G, nodes): + r"""Compute the degree centrality for nodes in a bipartite network. + + The degree centrality for a node `v` is the fraction of nodes + connected to it. + + Parameters + ---------- + G : graph + A bipartite network + + nodes : list or container + Container with all nodes in one bipartite node set. + + Returns + ------- + centrality : dictionary + Dictionary keyed by node with bipartite degree centrality as the value. + + Examples + -------- + >>> G = nx.wheel_graph(5) + >>> top_nodes = {0, 1, 2} + >>> nx.bipartite.degree_centrality(G, nodes=top_nodes) + {0: 2.0, 1: 1.5, 2: 1.5, 3: 1.0, 4: 1.0} + + See Also + -------- + betweenness_centrality + closeness_centrality + :func:`~networkx.algorithms.bipartite.basic.sets` + :func:`~networkx.algorithms.bipartite.basic.is_bipartite` + + Notes + ----- + The nodes input parameter must contain all nodes in one bipartite node set, + but the dictionary returned contains all nodes from both bipartite node + sets. See :mod:`bipartite documentation ` + for further details on how bipartite graphs are handled in NetworkX. + + For unipartite networks, the degree centrality values are + normalized by dividing by the maximum possible degree (which is + `n-1` where `n` is the number of nodes in G). + + In the bipartite case, the maximum possible degree of a node in a + bipartite node set is the number of nodes in the opposite node set + [1]_. The degree centrality for a node `v` in the bipartite + sets `U` with `n` nodes and `V` with `m` nodes is + + .. math:: + + d_{v} = \frac{deg(v)}{m}, \mbox{for} v \in U , + + d_{v} = \frac{deg(v)}{n}, \mbox{for} v \in V , + + + where `deg(v)` is the degree of node `v`. + + References + ---------- + .. [1] Borgatti, S.P. and Halgin, D. In press. "Analyzing Affiliation + Networks". In Carrington, P. and Scott, J. (eds) The Sage Handbook + of Social Network Analysis. Sage Publications. + https://dx.doi.org/10.4135/9781446294413.n28 + """ + top = set(nodes) + bottom = set(G) - top + s = 1.0 / len(bottom) + centrality = {n: d * s for n, d in G.degree(top)} + s = 1.0 / len(top) + centrality.update({n: d * s for n, d in G.degree(bottom)}) + return centrality + + +@nx._dispatchable(name="bipartite_betweenness_centrality") +def betweenness_centrality(G, nodes): + r"""Compute betweenness centrality for nodes in a bipartite network. + + Betweenness centrality of a node `v` is the sum of the + fraction of all-pairs shortest paths that pass through `v`. + + Values of betweenness are normalized by the maximum possible + value which for bipartite graphs is limited by the relative size + of the two node sets [1]_. + + Let `n` be the number of nodes in the node set `U` and + `m` be the number of nodes in the node set `V`, then + nodes in `U` are normalized by dividing by + + .. math:: + + \frac{1}{2} [m^2 (s + 1)^2 + m (s + 1)(2t - s - 1) - t (2s - t + 3)] , + + where + + .. math:: + + s = (n - 1) \div m , t = (n - 1) \mod m , + + and nodes in `V` are normalized by dividing by + + .. math:: + + \frac{1}{2} [n^2 (p + 1)^2 + n (p + 1)(2r - p - 1) - r (2p - r + 3)] , + + where, + + .. math:: + + p = (m - 1) \div n , r = (m - 1) \mod n . + + Parameters + ---------- + G : graph + A bipartite graph + + nodes : list or container + Container with all nodes in one bipartite node set. + + Returns + ------- + betweenness : dictionary + Dictionary keyed by node with bipartite betweenness centrality + as the value. + + Examples + -------- + >>> G = nx.cycle_graph(4) + >>> top_nodes = {1, 2} + >>> nx.bipartite.betweenness_centrality(G, nodes=top_nodes) + {0: 0.25, 1: 0.25, 2: 0.25, 3: 0.25} + + See Also + -------- + degree_centrality + closeness_centrality + :func:`~networkx.algorithms.bipartite.basic.sets` + :func:`~networkx.algorithms.bipartite.basic.is_bipartite` + + Notes + ----- + The nodes input parameter must contain all nodes in one bipartite node set, + but the dictionary returned contains all nodes from both node sets. + See :mod:`bipartite documentation ` + for further details on how bipartite graphs are handled in NetworkX. + + + References + ---------- + .. [1] Borgatti, S.P. and Halgin, D. In press. "Analyzing Affiliation + Networks". In Carrington, P. and Scott, J. (eds) The Sage Handbook + of Social Network Analysis. Sage Publications. + https://dx.doi.org/10.4135/9781446294413.n28 + """ + top = set(nodes) + bottom = set(G) - top + n = len(top) + m = len(bottom) + s, t = divmod(n - 1, m) + bet_max_top = ( + ((m**2) * ((s + 1) ** 2)) + + (m * (s + 1) * (2 * t - s - 1)) + - (t * ((2 * s) - t + 3)) + ) / 2.0 + p, r = divmod(m - 1, n) + bet_max_bot = ( + ((n**2) * ((p + 1) ** 2)) + + (n * (p + 1) * (2 * r - p - 1)) + - (r * ((2 * p) - r + 3)) + ) / 2.0 + betweenness = nx.betweenness_centrality(G, normalized=False, weight=None) + for node in top: + betweenness[node] /= bet_max_top + for node in bottom: + betweenness[node] /= bet_max_bot + return betweenness + + +@nx._dispatchable(name="bipartite_closeness_centrality") +def closeness_centrality(G, nodes, normalized=True): + r"""Compute the closeness centrality for nodes in a bipartite network. + + The closeness of a node is the distance to all other nodes in the + graph or in the case that the graph is not connected to all other nodes + in the connected component containing that node. + + Parameters + ---------- + G : graph + A bipartite network + + nodes : list or container + Container with all nodes in one bipartite node set. + + normalized : bool, optional + If True (default) normalize by connected component size. + + Returns + ------- + closeness : dictionary + Dictionary keyed by node with bipartite closeness centrality + as the value. + + Examples + -------- + >>> G = nx.wheel_graph(5) + >>> top_nodes = {0, 1, 2} + >>> nx.bipartite.closeness_centrality(G, nodes=top_nodes) + {0: 1.5, 1: 1.2, 2: 1.2, 3: 1.0, 4: 1.0} + + See Also + -------- + betweenness_centrality + degree_centrality + :func:`~networkx.algorithms.bipartite.basic.sets` + :func:`~networkx.algorithms.bipartite.basic.is_bipartite` + + Notes + ----- + The nodes input parameter must contain all nodes in one bipartite node set, + but the dictionary returned contains all nodes from both node sets. + See :mod:`bipartite documentation ` + for further details on how bipartite graphs are handled in NetworkX. + + + Closeness centrality is normalized by the minimum distance possible. + In the bipartite case the minimum distance for a node in one bipartite + node set is 1 from all nodes in the other node set and 2 from all + other nodes in its own set [1]_. Thus the closeness centrality + for node `v` in the two bipartite sets `U` with + `n` nodes and `V` with `m` nodes is + + .. math:: + + c_{v} = \frac{m + 2(n - 1)}{d}, \mbox{for} v \in U, + + c_{v} = \frac{n + 2(m - 1)}{d}, \mbox{for} v \in V, + + where `d` is the sum of the distances from `v` to all + other nodes. + + Higher values of closeness indicate higher centrality. + + As in the unipartite case, setting normalized=True causes the + values to normalized further to n-1 / size(G)-1 where n is the + number of nodes in the connected part of graph containing the + node. If the graph is not completely connected, this algorithm + computes the closeness centrality for each connected part + separately. + + References + ---------- + .. [1] Borgatti, S.P. and Halgin, D. In press. "Analyzing Affiliation + Networks". In Carrington, P. and Scott, J. (eds) The Sage Handbook + of Social Network Analysis. Sage Publications. + https://dx.doi.org/10.4135/9781446294413.n28 + """ + closeness = {} + path_length = nx.single_source_shortest_path_length + top = set(nodes) + bottom = set(G) - top + n = len(top) + m = len(bottom) + for node in top: + sp = dict(path_length(G, node)) + totsp = sum(sp.values()) + if totsp > 0.0 and len(G) > 1: + closeness[node] = (m + 2 * (n - 1)) / totsp + if normalized: + s = (len(sp) - 1) / (len(G) - 1) + closeness[node] *= s + else: + closeness[node] = 0.0 + for node in bottom: + sp = dict(path_length(G, node)) + totsp = sum(sp.values()) + if totsp > 0.0 and len(G) > 1: + closeness[node] = (n + 2 * (m - 1)) / totsp + if normalized: + s = (len(sp) - 1) / (len(G) - 1) + closeness[node] *= s + else: + closeness[node] = 0.0 + return closeness diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/cluster.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/cluster.py new file mode 100644 index 0000000000000000000000000000000000000000..78b3c0f087638483b594f52591363fb03a3bc0a3 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/cluster.py @@ -0,0 +1,289 @@ +"""Functions for computing clustering of pairs""" + +import itertools + +import networkx as nx + +__all__ = [ + "clustering", + "average_clustering", + "latapy_clustering", + "robins_alexander_clustering", +] + + +def cc_dot(nu, nv): + return len(nu & nv) / len(nu | nv) + + +def cc_max(nu, nv): + return len(nu & nv) / max(len(nu), len(nv)) + + +def cc_min(nu, nv): + return len(nu & nv) / min(len(nu), len(nv)) + + +modes = {"dot": cc_dot, "min": cc_min, "max": cc_max} + + +@nx._dispatchable +def latapy_clustering(G, nodes=None, mode="dot"): + r"""Compute a bipartite clustering coefficient for nodes. + + The bipartite clustering coefficient is a measure of local density + of connections defined as [1]_: + + .. math:: + + c_u = \frac{\sum_{v \in N(N(u))} c_{uv} }{|N(N(u))|} + + where `N(N(u))` are the second order neighbors of `u` in `G` excluding `u`, + and `c_{uv}` is the pairwise clustering coefficient between nodes + `u` and `v`. + + The mode selects the function for `c_{uv}` which can be: + + `dot`: + + .. math:: + + c_{uv}=\frac{|N(u)\cap N(v)|}{|N(u) \cup N(v)|} + + `min`: + + .. math:: + + c_{uv}=\frac{|N(u)\cap N(v)|}{min(|N(u)|,|N(v)|)} + + `max`: + + .. math:: + + c_{uv}=\frac{|N(u)\cap N(v)|}{max(|N(u)|,|N(v)|)} + + + Parameters + ---------- + G : graph + A bipartite graph + + nodes : list or iterable (optional) + Compute bipartite clustering for these nodes. The default + is all nodes in G. + + mode : string + The pairwise bipartite clustering method to be used in the computation. + It must be "dot", "max", or "min". + + Returns + ------- + clustering : dictionary + A dictionary keyed by node with the clustering coefficient value. + + + Examples + -------- + >>> from networkx.algorithms import bipartite + >>> G = nx.path_graph(4) # path graphs are bipartite + >>> c = bipartite.clustering(G) + >>> c[0] + 0.5 + >>> c = bipartite.clustering(G, mode="min") + >>> c[0] + 1.0 + + See Also + -------- + robins_alexander_clustering + average_clustering + networkx.algorithms.cluster.square_clustering + + References + ---------- + .. [1] Latapy, Matthieu, Clémence Magnien, and Nathalie Del Vecchio (2008). + Basic notions for the analysis of large two-mode networks. + Social Networks 30(1), 31--48. + """ + if not nx.algorithms.bipartite.is_bipartite(G): + raise nx.NetworkXError("Graph is not bipartite") + + try: + cc_func = modes[mode] + except KeyError as err: + raise nx.NetworkXError( + "Mode for bipartite clustering must be: dot, min or max" + ) from err + + if nodes is None: + nodes = G + ccs = {} + for v in nodes: + cc = 0.0 + nbrs2 = {u for nbr in G[v] for u in G[nbr]} - {v} + for u in nbrs2: + cc += cc_func(set(G[u]), set(G[v])) + if cc > 0.0: # len(nbrs2)>0 + cc /= len(nbrs2) + ccs[v] = cc + return ccs + + +clustering = latapy_clustering + + +@nx._dispatchable(name="bipartite_average_clustering") +def average_clustering(G, nodes=None, mode="dot"): + r"""Compute the average bipartite clustering coefficient. + + A clustering coefficient for the whole graph is the average, + + .. math:: + + C = \frac{1}{n}\sum_{v \in G} c_v, + + where `n` is the number of nodes in `G`. + + Similar measures for the two bipartite sets can be defined [1]_ + + .. math:: + + C_X = \frac{1}{|X|}\sum_{v \in X} c_v, + + where `X` is a bipartite set of `G`. + + Parameters + ---------- + G : graph + a bipartite graph + + nodes : list or iterable, optional + A container of nodes to use in computing the average. + The nodes should be either the entire graph (the default) or one of the + bipartite sets. + + mode : string + The pairwise bipartite clustering method. + It must be "dot", "max", or "min" + + Returns + ------- + clustering : float + The average bipartite clustering for the given set of nodes or the + entire graph if no nodes are specified. + + Examples + -------- + >>> from networkx.algorithms import bipartite + >>> G = nx.star_graph(3) # star graphs are bipartite + >>> bipartite.average_clustering(G) + 0.75 + >>> X, Y = bipartite.sets(G) + >>> bipartite.average_clustering(G, X) + 0.0 + >>> bipartite.average_clustering(G, Y) + 1.0 + + See Also + -------- + clustering + + Notes + ----- + The container of nodes passed to this function must contain all of the nodes + in one of the bipartite sets ("top" or "bottom") in order to compute + the correct average bipartite clustering coefficients. + See :mod:`bipartite documentation ` + for further details on how bipartite graphs are handled in NetworkX. + + + References + ---------- + .. [1] Latapy, Matthieu, Clémence Magnien, and Nathalie Del Vecchio (2008). + Basic notions for the analysis of large two-mode networks. + Social Networks 30(1), 31--48. + """ + if nodes is None: + nodes = G + ccs = latapy_clustering(G, nodes=nodes, mode=mode) + return sum(ccs[v] for v in nodes) / len(nodes) + + +@nx._dispatchable +def robins_alexander_clustering(G): + r"""Compute the bipartite clustering of G. + + Robins and Alexander [1]_ defined bipartite clustering coefficient as + four times the number of four cycles `C_4` divided by the number of + three paths `L_3` in a bipartite graph: + + .. math:: + + CC_4 = \frac{4 * C_4}{L_3} + + Parameters + ---------- + G : graph + a bipartite graph + + Returns + ------- + clustering : float + The Robins and Alexander bipartite clustering for the input graph. + + Examples + -------- + >>> from networkx.algorithms import bipartite + >>> G = nx.davis_southern_women_graph() + >>> print(round(bipartite.robins_alexander_clustering(G), 3)) + 0.468 + + See Also + -------- + latapy_clustering + networkx.algorithms.cluster.square_clustering + + References + ---------- + .. [1] Robins, G. and M. Alexander (2004). Small worlds among interlocking + directors: Network structure and distance in bipartite graphs. + Computational & Mathematical Organization Theory 10(1), 69–94. + + """ + if G.order() < 4 or G.size() < 3: + return 0 + L_3 = _threepaths(G) + if L_3 == 0: + return 0 + C_4 = _four_cycles(G) + return (4.0 * C_4) / L_3 + + +def _four_cycles(G): + # Also see `square_clustering` which counts squares in a similar way + cycles = 0 + seen = set() + G_adj = G._adj + for v in G: + seen.add(v) + v_neighbors = set(G_adj[v]) + if len(v_neighbors) < 2: + # Can't form a square without at least two neighbors + continue + two_hop_neighbors = set().union(*(G_adj[u] for u in v_neighbors)) + two_hop_neighbors -= seen + for x in two_hop_neighbors: + p2 = len(v_neighbors.intersection(G_adj[x])) + cycles += p2 * (p2 - 1) + return cycles / 4 + + +def _threepaths(G): + paths = 0 + for v in G: + for u in G[v]: + for w in set(G[u]) - {v}: + paths += len(set(G[w]) - {v, u}) + # Divide by two because we count each three path twice + # one for each possible starting point + return paths / 2 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/covering.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/covering.py new file mode 100644 index 0000000000000000000000000000000000000000..f937903e5576ec7313a774863c8470a4a271a252 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/covering.py @@ -0,0 +1,57 @@ +"""Functions related to graph covers.""" + +import networkx as nx +from networkx.algorithms.bipartite.matching import hopcroft_karp_matching +from networkx.algorithms.covering import min_edge_cover as _min_edge_cover +from networkx.utils import not_implemented_for + +__all__ = ["min_edge_cover"] + + +@not_implemented_for("directed") +@not_implemented_for("multigraph") +@nx._dispatchable(name="bipartite_min_edge_cover") +def min_edge_cover(G, matching_algorithm=None): + """Returns a set of edges which constitutes + the minimum edge cover of the graph. + + The smallest edge cover can be found in polynomial time by finding + a maximum matching and extending it greedily so that all nodes + are covered. + + Parameters + ---------- + G : NetworkX graph + An undirected bipartite graph. + + matching_algorithm : function + A function that returns a maximum cardinality matching in a + given bipartite graph. The function must take one input, the + graph ``G``, and return a dictionary mapping each node to its + mate. If not specified, + :func:`~networkx.algorithms.bipartite.matching.hopcroft_karp_matching` + will be used. Other possibilities include + :func:`~networkx.algorithms.bipartite.matching.eppstein_matching`, + + Returns + ------- + set + A set of the edges in a minimum edge cover of the graph, given as + pairs of nodes. It contains both the edges `(u, v)` and `(v, u)` + for given nodes `u` and `v` among the edges of minimum edge cover. + + Notes + ----- + An edge cover of a graph is a set of edges such that every node of + the graph is incident to at least one edge of the set. + A minimum edge cover is an edge covering of smallest cardinality. + + Due to its implementation, the worst-case running time of this algorithm + is bounded by the worst-case running time of the function + ``matching_algorithm``. + """ + if G.order() == 0: # Special case for the empty graph + return set() + if matching_algorithm is None: + matching_algorithm = hopcroft_karp_matching + return _min_edge_cover(G, matching_algorithm=matching_algorithm) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/edgelist.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/edgelist.py new file mode 100644 index 0000000000000000000000000000000000000000..c2c6b9c94fa697884546a63d365040db056d233f --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/edgelist.py @@ -0,0 +1,360 @@ +""" +******************** +Bipartite Edge Lists +******************** +Read and write NetworkX graphs as bipartite edge lists. + +Format +------ +You can read or write three formats of edge lists with these functions. + +Node pairs with no data:: + + 1 2 + +Python dictionary as data:: + + 1 2 {'weight':7, 'color':'green'} + +Arbitrary data:: + + 1 2 7 green + +For each edge (u, v) the node u is assigned to part 0 and the node v to part 1. +""" + +__all__ = ["generate_edgelist", "write_edgelist", "parse_edgelist", "read_edgelist"] + +import networkx as nx +from networkx.utils import not_implemented_for, open_file + + +@open_file(1, mode="wb") +def write_edgelist(G, path, comments="#", delimiter=" ", data=True, encoding="utf-8"): + """Write a bipartite graph as a list of edges. + + Parameters + ---------- + G : Graph + A NetworkX bipartite graph + path : file or string + File or filename to write. If a file is provided, it must be + opened in 'wb' mode. Filenames ending in .gz or .bz2 will be compressed. + comments : string, optional + The character used to indicate the start of a comment + delimiter : string, optional + The string used to separate values. The default is whitespace. + data : bool or list, optional + If False write no edge data. + If True write a string representation of the edge data dictionary.. + If a list (or other iterable) is provided, write the keys specified + in the list. + encoding: string, optional + Specify which encoding to use when writing file. + + Examples + -------- + >>> G = nx.path_graph(4) + >>> G.add_nodes_from([0, 2], bipartite=0) + >>> G.add_nodes_from([1, 3], bipartite=1) + >>> nx.write_edgelist(G, "test.edgelist") + >>> fh = open("test.edgelist_open", "wb") + >>> nx.write_edgelist(G, fh) + >>> nx.write_edgelist(G, "test.edgelist.gz") + >>> nx.write_edgelist(G, "test.edgelist_nodata.gz", data=False) + + >>> G = nx.Graph() + >>> G.add_edge(1, 2, weight=7, color="red") + >>> nx.write_edgelist(G, "test.edgelist_bigger_nodata", data=False) + >>> nx.write_edgelist(G, "test.edgelist_color", data=["color"]) + >>> nx.write_edgelist(G, "test.edgelist_color_weight", data=["color", "weight"]) + + See Also + -------- + write_edgelist + generate_edgelist + """ + for line in generate_edgelist(G, delimiter, data): + line += "\n" + path.write(line.encode(encoding)) + + +@not_implemented_for("directed") +def generate_edgelist(G, delimiter=" ", data=True): + """Generate a single line of the bipartite graph G in edge list format. + + Parameters + ---------- + G : NetworkX graph + The graph is assumed to have node attribute `part` set to 0,1 representing + the two graph parts + + delimiter : string, optional + Separator for node labels + + data : bool or list of keys + If False generate no edge data. If True use a dictionary + representation of edge data. If a list of keys use a list of data + values corresponding to the keys. + + Returns + ------- + lines : string + Lines of data in adjlist format. + + Examples + -------- + >>> from networkx.algorithms import bipartite + >>> G = nx.path_graph(4) + >>> G.add_nodes_from([0, 2], bipartite=0) + >>> G.add_nodes_from([1, 3], bipartite=1) + >>> G[1][2]["weight"] = 3 + >>> G[2][3]["capacity"] = 12 + >>> for line in bipartite.generate_edgelist(G, data=False): + ... print(line) + 0 1 + 2 1 + 2 3 + + >>> for line in bipartite.generate_edgelist(G): + ... print(line) + 0 1 {} + 2 1 {'weight': 3} + 2 3 {'capacity': 12} + + >>> for line in bipartite.generate_edgelist(G, data=["weight"]): + ... print(line) + 0 1 + 2 1 3 + 2 3 + """ + try: + part0 = [n for n, d in G.nodes.items() if d["bipartite"] == 0] + except BaseException as err: + raise AttributeError("Missing node attribute `bipartite`") from err + if data is True or data is False: + for n in part0: + for edge in G.edges(n, data=data): + yield delimiter.join(map(str, edge)) + else: + for n in part0: + for u, v, d in G.edges(n, data=True): + edge = [u, v] + try: + edge.extend(d[k] for k in data) + except KeyError: + pass # missing data for this edge, should warn? + yield delimiter.join(map(str, edge)) + + +@nx._dispatchable(name="bipartite_parse_edgelist", graphs=None, returns_graph=True) +def parse_edgelist( + lines, comments="#", delimiter=None, create_using=None, nodetype=None, data=True +): + """Parse lines of an edge list representation of a bipartite graph. + + Parameters + ---------- + lines : list or iterator of strings + Input data in edgelist format + comments : string, optional + Marker for comment lines + delimiter : string, optional + Separator for node labels + create_using: NetworkX graph container, optional + Use given NetworkX graph for holding nodes or edges. + nodetype : Python type, optional + Convert nodes to this type. + data : bool or list of (label,type) tuples + If False generate no edge data or if True use a dictionary + representation of edge data or a list tuples specifying dictionary + key names and types for edge data. + + Returns + ------- + G: NetworkX Graph + The bipartite graph corresponding to lines + + Examples + -------- + Edgelist with no data: + + >>> from networkx.algorithms import bipartite + >>> lines = ["1 2", "2 3", "3 4"] + >>> G = bipartite.parse_edgelist(lines, nodetype=int) + >>> sorted(G.nodes()) + [1, 2, 3, 4] + >>> sorted(G.nodes(data=True)) + [(1, {'bipartite': 0}), (2, {'bipartite': 0}), (3, {'bipartite': 0}), (4, {'bipartite': 1})] + >>> sorted(G.edges()) + [(1, 2), (2, 3), (3, 4)] + + Edgelist with data in Python dictionary representation: + + >>> lines = ["1 2 {'weight':3}", "2 3 {'weight':27}", "3 4 {'weight':3.0}"] + >>> G = bipartite.parse_edgelist(lines, nodetype=int) + >>> sorted(G.nodes()) + [1, 2, 3, 4] + >>> sorted(G.edges(data=True)) + [(1, 2, {'weight': 3}), (2, 3, {'weight': 27}), (3, 4, {'weight': 3.0})] + + Edgelist with data in a list: + + >>> lines = ["1 2 3", "2 3 27", "3 4 3.0"] + >>> G = bipartite.parse_edgelist(lines, nodetype=int, data=(("weight", float),)) + >>> sorted(G.nodes()) + [1, 2, 3, 4] + >>> sorted(G.edges(data=True)) + [(1, 2, {'weight': 3.0}), (2, 3, {'weight': 27.0}), (3, 4, {'weight': 3.0})] + + See Also + -------- + """ + from ast import literal_eval + + G = nx.empty_graph(0, create_using) + for line in lines: + p = line.find(comments) + if p >= 0: + line = line[:p] + if not len(line): + continue + # split line, should have 2 or more + s = line.rstrip("\n").split(delimiter) + if len(s) < 2: + continue + u = s.pop(0) + v = s.pop(0) + d = s + if nodetype is not None: + try: + u = nodetype(u) + v = nodetype(v) + except BaseException as err: + raise TypeError( + f"Failed to convert nodes {u},{v} to type {nodetype}." + ) from err + + if len(d) == 0 or data is False: + # no data or data type specified + edgedata = {} + elif data is True: + # no edge types specified + try: # try to evaluate as dictionary + edgedata = dict(literal_eval(" ".join(d))) + except BaseException as err: + raise TypeError( + f"Failed to convert edge data ({d}) to dictionary." + ) from err + else: + # convert edge data to dictionary with specified keys and type + if len(d) != len(data): + raise IndexError( + f"Edge data {d} and data_keys {data} are not the same length" + ) + edgedata = {} + for (edge_key, edge_type), edge_value in zip(data, d): + try: + edge_value = edge_type(edge_value) + except BaseException as err: + raise TypeError( + f"Failed to convert {edge_key} data " + f"{edge_value} to type {edge_type}." + ) from err + edgedata.update({edge_key: edge_value}) + G.add_node(u, bipartite=0) + G.add_node(v, bipartite=1) + G.add_edge(u, v, **edgedata) + return G + + +@open_file(0, mode="rb") +@nx._dispatchable(name="bipartite_read_edgelist", graphs=None, returns_graph=True) +def read_edgelist( + path, + comments="#", + delimiter=None, + create_using=None, + nodetype=None, + data=True, + edgetype=None, + encoding="utf-8", +): + """Read a bipartite graph from a list of edges. + + Parameters + ---------- + path : file or string + File or filename to read. If a file is provided, it must be + opened in 'rb' mode. + Filenames ending in .gz or .bz2 will be decompressed. + comments : string, optional + The character used to indicate the start of a comment. + delimiter : string, optional + The string used to separate values. The default is whitespace. + create_using : Graph container, optional, + Use specified container to build graph. The default is networkx.Graph, + an undirected graph. + nodetype : int, float, str, Python type, optional + Convert node data from strings to specified type + data : bool or list of (label,type) tuples + Tuples specifying dictionary key names and types for edge data + edgetype : int, float, str, Python type, optional OBSOLETE + Convert edge data from strings to specified type and use as 'weight' + encoding: string, optional + Specify which encoding to use when reading file. + + Returns + ------- + G : graph + A networkx Graph or other type specified with create_using + + Examples + -------- + >>> from networkx.algorithms import bipartite + >>> G = nx.path_graph(4) + >>> G.add_nodes_from([0, 2], bipartite=0) + >>> G.add_nodes_from([1, 3], bipartite=1) + >>> bipartite.write_edgelist(G, "test.edgelist") + >>> G = bipartite.read_edgelist("test.edgelist") + + >>> fh = open("test.edgelist", "rb") + >>> G = bipartite.read_edgelist(fh) + >>> fh.close() + + >>> G = bipartite.read_edgelist("test.edgelist", nodetype=int) + + Edgelist with data in a list: + + >>> textline = "1 2 3" + >>> fh = open("test.edgelist", "w") + >>> d = fh.write(textline) + >>> fh.close() + >>> G = bipartite.read_edgelist( + ... "test.edgelist", nodetype=int, data=(("weight", float),) + ... ) + >>> list(G) + [1, 2] + >>> list(G.edges(data=True)) + [(1, 2, {'weight': 3.0})] + + See parse_edgelist() for more examples of formatting. + + See Also + -------- + parse_edgelist + + Notes + ----- + Since nodes must be hashable, the function nodetype must return hashable + types (e.g. int, float, str, frozenset - or tuples of those, etc.) + """ + lines = (line.decode(encoding) for line in path) + return parse_edgelist( + lines, + comments=comments, + delimiter=delimiter, + create_using=create_using, + nodetype=nodetype, + data=data, + ) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/extendability.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/extendability.py new file mode 100644 index 0000000000000000000000000000000000000000..61d8d067d9792659ed7097340c5ece28d9dc2e8c --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/extendability.py @@ -0,0 +1,105 @@ +"""Provides a function for computing the extendability of a graph which is +undirected, simple, connected and bipartite and contains at least one perfect matching.""" + +import networkx as nx +from networkx.utils import not_implemented_for + +__all__ = ["maximal_extendability"] + + +@not_implemented_for("directed") +@not_implemented_for("multigraph") +@nx._dispatchable +def maximal_extendability(G): + """Computes the extendability of a graph. + + The extendability of a graph is defined as the maximum $k$ for which `G` + is $k$-extendable. Graph `G` is $k$-extendable if and only if `G` has a + perfect matching and every set of $k$ independent edges can be extended + to a perfect matching in `G`. + + Parameters + ---------- + G : NetworkX Graph + A fully-connected bipartite graph without self-loops + + Returns + ------- + extendability : int + + Raises + ------ + NetworkXError + If the graph `G` is disconnected. + If the graph `G` is not bipartite. + If the graph `G` does not contain a perfect matching. + If the residual graph of `G` is not strongly connected. + + Notes + ----- + Definition: + Let `G` be a simple, connected, undirected and bipartite graph with a perfect + matching M and bipartition (U,V). The residual graph of `G`, denoted by $G_M$, + is the graph obtained from G by directing the edges of M from V to U and the + edges that do not belong to M from U to V. + + Lemma [1]_ : + Let M be a perfect matching of `G`. `G` is $k$-extendable if and only if its residual + graph $G_M$ is strongly connected and there are $k$ vertex-disjoint directed + paths between every vertex of U and every vertex of V. + + Assuming that input graph `G` is undirected, simple, connected, bipartite and contains + a perfect matching M, this function constructs the residual graph $G_M$ of G and + returns the minimum value among the maximum vertex-disjoint directed paths between + every vertex of U and every vertex of V in $G_M$. By combining the definitions + and the lemma, this value represents the extendability of the graph `G`. + + Time complexity O($n^3$ $m^2$)) where $n$ is the number of vertices + and $m$ is the number of edges. + + References + ---------- + .. [1] "A polynomial algorithm for the extendability problem in bipartite graphs", + J. Lakhal, L. Litzler, Information Processing Letters, 1998. + .. [2] "On n-extendible graphs", M. D. Plummer, Discrete Mathematics, 31:201–210, 1980 + https://doi.org/10.1016/0012-365X(80)90037-0 + + """ + if not nx.is_connected(G): + raise nx.NetworkXError("Graph G is not connected") + + if not nx.bipartite.is_bipartite(G): + raise nx.NetworkXError("Graph G is not bipartite") + + U, V = nx.bipartite.sets(G) + + maximum_matching = nx.bipartite.hopcroft_karp_matching(G) + + if not nx.is_perfect_matching(G, maximum_matching): + raise nx.NetworkXError("Graph G does not contain a perfect matching") + + # list of edges in perfect matching, directed from V to U + pm = [(node, maximum_matching[node]) for node in V & maximum_matching.keys()] + + # Direct all the edges of G, from V to U if in matching, else from U to V + directed_edges = [ + (x, y) if (x in V and (x, y) in pm) or (x in U and (y, x) not in pm) else (y, x) + for x, y in G.edges + ] + + # Construct the residual graph of G + residual_G = nx.DiGraph() + residual_G.add_nodes_from(G) + residual_G.add_edges_from(directed_edges) + + if not nx.is_strongly_connected(residual_G): + raise nx.NetworkXError("The residual graph of G is not strongly connected") + + # For node-pairs between V & U, keep min of max number of node-disjoint paths + # Variable $k$ stands for the extendability of graph G + k = float("inf") + for u in U: + for v in V: + num_paths = sum(1 for _ in nx.node_disjoint_paths(residual_G, u, v)) + k = k if k < num_paths else num_paths + return k diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/generators.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/generators.py new file mode 100644 index 0000000000000000000000000000000000000000..6e73a4d132d5ab34586f0b5d4aee967b6f77738f --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/generators.py @@ -0,0 +1,603 @@ +""" +Generators and functions for bipartite graphs. +""" + +import math +import numbers +from functools import reduce + +import networkx as nx +from networkx.utils import nodes_or_number, py_random_state + +__all__ = [ + "configuration_model", + "havel_hakimi_graph", + "reverse_havel_hakimi_graph", + "alternating_havel_hakimi_graph", + "preferential_attachment_graph", + "random_graph", + "gnmk_random_graph", + "complete_bipartite_graph", +] + + +@nx._dispatchable(graphs=None, returns_graph=True) +@nodes_or_number([0, 1]) +def complete_bipartite_graph(n1, n2, create_using=None): + """Returns the complete bipartite graph `K_{n_1,n_2}`. + + The graph is composed of two partitions with nodes 0 to (n1 - 1) + in the first and nodes n1 to (n1 + n2 - 1) in the second. + Each node in the first is connected to each node in the second. + + Parameters + ---------- + n1, n2 : integer or iterable container of nodes + If integers, nodes are from `range(n1)` and `range(n1, n1 + n2)`. + If a container, the elements are the nodes. + create_using : NetworkX graph instance, (default: nx.Graph) + Return graph of this type. + + Notes + ----- + Nodes are the integers 0 to `n1 + n2 - 1` unless either n1 or n2 are + containers of nodes. If only one of n1 or n2 are integers, that + integer is replaced by `range` of that integer. + + The nodes are assigned the attribute 'bipartite' with the value 0 or 1 + to indicate which bipartite set the node belongs to. + + This function is not imported in the main namespace. + To use it use nx.bipartite.complete_bipartite_graph + """ + G = nx.empty_graph(0, create_using) + if G.is_directed(): + raise nx.NetworkXError("Directed Graph not supported") + + n1, top = n1 + n2, bottom = n2 + if isinstance(n1, numbers.Integral) and isinstance(n2, numbers.Integral): + bottom = [n1 + i for i in bottom] + G.add_nodes_from(top, bipartite=0) + G.add_nodes_from(bottom, bipartite=1) + if len(G) != len(top) + len(bottom): + raise nx.NetworkXError("Inputs n1 and n2 must contain distinct nodes") + G.add_edges_from((u, v) for u in top for v in bottom) + G.graph["name"] = f"complete_bipartite_graph({len(top)}, {len(bottom)})" + return G + + +@py_random_state(3) +@nx._dispatchable(name="bipartite_configuration_model", graphs=None, returns_graph=True) +def configuration_model(aseq, bseq, create_using=None, seed=None): + """Returns a random bipartite graph from two given degree sequences. + + Parameters + ---------- + aseq : list + Degree sequence for node set A. + bseq : list + Degree sequence for node set B. + create_using : NetworkX graph instance, optional + Return graph of this type. + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + + The graph is composed of two partitions. Set A has nodes 0 to + (len(aseq) - 1) and set B has nodes len(aseq) to (len(bseq) - 1). + Nodes from set A are connected to nodes in set B by choosing + randomly from the possible free stubs, one in A and one in B. + + Notes + ----- + The sum of the two sequences must be equal: sum(aseq)=sum(bseq) + If no graph type is specified use MultiGraph with parallel edges. + If you want a graph with no parallel edges use create_using=Graph() + but then the resulting degree sequences might not be exact. + + The nodes are assigned the attribute 'bipartite' with the value 0 or 1 + to indicate which bipartite set the node belongs to. + + This function is not imported in the main namespace. + To use it use nx.bipartite.configuration_model + """ + G = nx.empty_graph(0, create_using, default=nx.MultiGraph) + if G.is_directed(): + raise nx.NetworkXError("Directed Graph not supported") + + # length and sum of each sequence + lena = len(aseq) + lenb = len(bseq) + suma = sum(aseq) + sumb = sum(bseq) + + if not suma == sumb: + raise nx.NetworkXError( + f"invalid degree sequences, sum(aseq)!=sum(bseq),{suma},{sumb}" + ) + + G = _add_nodes_with_bipartite_label(G, lena, lenb) + + if len(aseq) == 0 or max(aseq) == 0: + return G # done if no edges + + # build lists of degree-repeated vertex numbers + stubs = [[v] * aseq[v] for v in range(lena)] + astubs = [x for subseq in stubs for x in subseq] + + stubs = [[v] * bseq[v - lena] for v in range(lena, lena + lenb)] + bstubs = [x for subseq in stubs for x in subseq] + + # shuffle lists + seed.shuffle(astubs) + seed.shuffle(bstubs) + + G.add_edges_from([astubs[i], bstubs[i]] for i in range(suma)) + + G.name = "bipartite_configuration_model" + return G + + +@nx._dispatchable(name="bipartite_havel_hakimi_graph", graphs=None, returns_graph=True) +def havel_hakimi_graph(aseq, bseq, create_using=None): + """Returns a bipartite graph from two given degree sequences using a + Havel-Hakimi style construction. + + The graph is composed of two partitions. Set A has nodes 0 to + (len(aseq) - 1) and set B has nodes len(aseq) to (len(bseq) - 1). + Nodes from the set A are connected to nodes in the set B by + connecting the highest degree nodes in set A to the highest degree + nodes in set B until all stubs are connected. + + Parameters + ---------- + aseq : list + Degree sequence for node set A. + bseq : list + Degree sequence for node set B. + create_using : NetworkX graph instance, optional + Return graph of this type. + + Notes + ----- + The sum of the two sequences must be equal: sum(aseq)=sum(bseq) + If no graph type is specified use MultiGraph with parallel edges. + If you want a graph with no parallel edges use create_using=Graph() + but then the resulting degree sequences might not be exact. + + The nodes are assigned the attribute 'bipartite' with the value 0 or 1 + to indicate which bipartite set the node belongs to. + + This function is not imported in the main namespace. + To use it use nx.bipartite.havel_hakimi_graph + """ + G = nx.empty_graph(0, create_using, default=nx.MultiGraph) + if G.is_directed(): + raise nx.NetworkXError("Directed Graph not supported") + + # length of the each sequence + naseq = len(aseq) + nbseq = len(bseq) + + suma = sum(aseq) + sumb = sum(bseq) + + if not suma == sumb: + raise nx.NetworkXError( + f"invalid degree sequences, sum(aseq)!=sum(bseq),{suma},{sumb}" + ) + + G = _add_nodes_with_bipartite_label(G, naseq, nbseq) + + if len(aseq) == 0 or max(aseq) == 0: + return G # done if no edges + + # build list of degree-repeated vertex numbers + astubs = [[aseq[v], v] for v in range(naseq)] + bstubs = [[bseq[v - naseq], v] for v in range(naseq, naseq + nbseq)] + astubs.sort() + while astubs: + (degree, u) = astubs.pop() # take of largest degree node in the a set + if degree == 0: + break # done, all are zero + # connect the source to largest degree nodes in the b set + bstubs.sort() + for target in bstubs[-degree:]: + v = target[1] + G.add_edge(u, v) + target[0] -= 1 # note this updates bstubs too. + if target[0] == 0: + bstubs.remove(target) + + G.name = "bipartite_havel_hakimi_graph" + return G + + +@nx._dispatchable(graphs=None, returns_graph=True) +def reverse_havel_hakimi_graph(aseq, bseq, create_using=None): + """Returns a bipartite graph from two given degree sequences using a + Havel-Hakimi style construction. + + The graph is composed of two partitions. Set A has nodes 0 to + (len(aseq) - 1) and set B has nodes len(aseq) to (len(bseq) - 1). + Nodes from set A are connected to nodes in the set B by connecting + the highest degree nodes in set A to the lowest degree nodes in + set B until all stubs are connected. + + Parameters + ---------- + aseq : list + Degree sequence for node set A. + bseq : list + Degree sequence for node set B. + create_using : NetworkX graph instance, optional + Return graph of this type. + + Notes + ----- + The sum of the two sequences must be equal: sum(aseq)=sum(bseq) + If no graph type is specified use MultiGraph with parallel edges. + If you want a graph with no parallel edges use create_using=Graph() + but then the resulting degree sequences might not be exact. + + The nodes are assigned the attribute 'bipartite' with the value 0 or 1 + to indicate which bipartite set the node belongs to. + + This function is not imported in the main namespace. + To use it use nx.bipartite.reverse_havel_hakimi_graph + """ + G = nx.empty_graph(0, create_using, default=nx.MultiGraph) + if G.is_directed(): + raise nx.NetworkXError("Directed Graph not supported") + + # length of the each sequence + lena = len(aseq) + lenb = len(bseq) + suma = sum(aseq) + sumb = sum(bseq) + + if not suma == sumb: + raise nx.NetworkXError( + f"invalid degree sequences, sum(aseq)!=sum(bseq),{suma},{sumb}" + ) + + G = _add_nodes_with_bipartite_label(G, lena, lenb) + + if len(aseq) == 0 or max(aseq) == 0: + return G # done if no edges + + # build list of degree-repeated vertex numbers + astubs = [[aseq[v], v] for v in range(lena)] + bstubs = [[bseq[v - lena], v] for v in range(lena, lena + lenb)] + astubs.sort() + bstubs.sort() + while astubs: + (degree, u) = astubs.pop() # take of largest degree node in the a set + if degree == 0: + break # done, all are zero + # connect the source to the smallest degree nodes in the b set + for target in bstubs[0:degree]: + v = target[1] + G.add_edge(u, v) + target[0] -= 1 # note this updates bstubs too. + if target[0] == 0: + bstubs.remove(target) + + G.name = "bipartite_reverse_havel_hakimi_graph" + return G + + +@nx._dispatchable(graphs=None, returns_graph=True) +def alternating_havel_hakimi_graph(aseq, bseq, create_using=None): + """Returns a bipartite graph from two given degree sequences using + an alternating Havel-Hakimi style construction. + + The graph is composed of two partitions. Set A has nodes 0 to + (len(aseq) - 1) and set B has nodes len(aseq) to (len(bseq) - 1). + Nodes from the set A are connected to nodes in the set B by + connecting the highest degree nodes in set A to alternatively the + highest and the lowest degree nodes in set B until all stubs are + connected. + + Parameters + ---------- + aseq : list + Degree sequence for node set A. + bseq : list + Degree sequence for node set B. + create_using : NetworkX graph instance, optional + Return graph of this type. + + Notes + ----- + The sum of the two sequences must be equal: sum(aseq)=sum(bseq) + If no graph type is specified use MultiGraph with parallel edges. + If you want a graph with no parallel edges use create_using=Graph() + but then the resulting degree sequences might not be exact. + + The nodes are assigned the attribute 'bipartite' with the value 0 or 1 + to indicate which bipartite set the node belongs to. + + This function is not imported in the main namespace. + To use it use nx.bipartite.alternating_havel_hakimi_graph + """ + G = nx.empty_graph(0, create_using, default=nx.MultiGraph) + if G.is_directed(): + raise nx.NetworkXError("Directed Graph not supported") + + # length of the each sequence + naseq = len(aseq) + nbseq = len(bseq) + suma = sum(aseq) + sumb = sum(bseq) + + if not suma == sumb: + raise nx.NetworkXError( + f"invalid degree sequences, sum(aseq)!=sum(bseq),{suma},{sumb}" + ) + + G = _add_nodes_with_bipartite_label(G, naseq, nbseq) + + if len(aseq) == 0 or max(aseq) == 0: + return G # done if no edges + # build list of degree-repeated vertex numbers + astubs = [[aseq[v], v] for v in range(naseq)] + bstubs = [[bseq[v - naseq], v] for v in range(naseq, naseq + nbseq)] + while astubs: + astubs.sort() + (degree, u) = astubs.pop() # take of largest degree node in the a set + if degree == 0: + break # done, all are zero + bstubs.sort() + small = bstubs[0 : degree // 2] # add these low degree targets + large = bstubs[(-degree + degree // 2) :] # now high degree targets + stubs = [x for z in zip(large, small) for x in z] # combine, sorry + if len(stubs) < len(small) + len(large): # check for zip truncation + stubs.append(large.pop()) + for target in stubs: + v = target[1] + G.add_edge(u, v) + target[0] -= 1 # note this updates bstubs too. + if target[0] == 0: + bstubs.remove(target) + + G.name = "bipartite_alternating_havel_hakimi_graph" + return G + + +@py_random_state(3) +@nx._dispatchable(graphs=None, returns_graph=True) +def preferential_attachment_graph(aseq, p, create_using=None, seed=None): + """Create a bipartite graph with a preferential attachment model from + a given single degree sequence. + + The graph is composed of two partitions. Set A has nodes 0 to + (len(aseq) - 1) and set B has nodes starting with node len(aseq). + The number of nodes in set B is random. + + Parameters + ---------- + aseq : list + Degree sequence for node set A. + p : float + Probability that a new bottom node is added. + create_using : NetworkX graph instance, optional + Return graph of this type. + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + + References + ---------- + .. [1] Guillaume, J.L. and Latapy, M., + Bipartite graphs as models of complex networks. + Physica A: Statistical Mechanics and its Applications, + 2006, 371(2), pp.795-813. + .. [2] Jean-Loup Guillaume and Matthieu Latapy, + Bipartite structure of all complex networks, + Inf. Process. Lett. 90, 2004, pg. 215-221 + https://doi.org/10.1016/j.ipl.2004.03.007 + + Notes + ----- + The nodes are assigned the attribute 'bipartite' with the value 0 or 1 + to indicate which bipartite set the node belongs to. + + This function is not imported in the main namespace. + To use it use nx.bipartite.preferential_attachment_graph + """ + G = nx.empty_graph(0, create_using, default=nx.MultiGraph) + if G.is_directed(): + raise nx.NetworkXError("Directed Graph not supported") + + if p > 1: + raise nx.NetworkXError(f"probability {p} > 1") + + naseq = len(aseq) + G = _add_nodes_with_bipartite_label(G, naseq, 0) + vv = [[v] * aseq[v] for v in range(naseq)] + while vv: + while vv[0]: + source = vv[0][0] + vv[0].remove(source) + if seed.random() < p or len(G) == naseq: + target = len(G) + G.add_node(target, bipartite=1) + G.add_edge(source, target) + else: + bb = [[b] * G.degree(b) for b in range(naseq, len(G))] + # flatten the list of lists into a list. + bbstubs = reduce(lambda x, y: x + y, bb) + # choose preferentially a bottom node. + target = seed.choice(bbstubs) + G.add_node(target, bipartite=1) + G.add_edge(source, target) + vv.remove(vv[0]) + G.name = "bipartite_preferential_attachment_model" + return G + + +@py_random_state(3) +@nx._dispatchable(graphs=None, returns_graph=True) +def random_graph(n, m, p, seed=None, directed=False): + """Returns a bipartite random graph. + + This is a bipartite version of the binomial (Erdős-Rényi) graph. + The graph is composed of two partitions. Set A has nodes 0 to + (n - 1) and set B has nodes n to (n + m - 1). + + Parameters + ---------- + n : int + The number of nodes in the first bipartite set. + m : int + The number of nodes in the second bipartite set. + p : float + Probability for edge creation. + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + directed : bool, optional (default=False) + If True return a directed graph + + Notes + ----- + The bipartite random graph algorithm chooses each of the n*m (undirected) + or 2*nm (directed) possible edges with probability p. + + This algorithm is $O(n+m)$ where $m$ is the expected number of edges. + + The nodes are assigned the attribute 'bipartite' with the value 0 or 1 + to indicate which bipartite set the node belongs to. + + This function is not imported in the main namespace. + To use it use nx.bipartite.random_graph + + See Also + -------- + gnp_random_graph, configuration_model + + References + ---------- + .. [1] Vladimir Batagelj and Ulrik Brandes, + "Efficient generation of large random networks", + Phys. Rev. E, 71, 036113, 2005. + """ + G = nx.Graph() + G = _add_nodes_with_bipartite_label(G, n, m) + if directed: + G = nx.DiGraph(G) + G.name = f"fast_gnp_random_graph({n},{m},{p})" + + if p <= 0: + return G + if p >= 1: + return nx.complete_bipartite_graph(n, m) + + lp = math.log(1.0 - p) + + v = 0 + w = -1 + while v < n: + lr = math.log(1.0 - seed.random()) + w = w + 1 + int(lr / lp) + while w >= m and v < n: + w = w - m + v = v + 1 + if v < n: + G.add_edge(v, n + w) + + if directed: + # use the same algorithm to + # add edges from the "m" to "n" set + v = 0 + w = -1 + while v < n: + lr = math.log(1.0 - seed.random()) + w = w + 1 + int(lr / lp) + while w >= m and v < n: + w = w - m + v = v + 1 + if v < n: + G.add_edge(n + w, v) + + return G + + +@py_random_state(3) +@nx._dispatchable(graphs=None, returns_graph=True) +def gnmk_random_graph(n, m, k, seed=None, directed=False): + """Returns a random bipartite graph G_{n,m,k}. + + Produces a bipartite graph chosen randomly out of the set of all graphs + with n top nodes, m bottom nodes, and k edges. + The graph is composed of two sets of nodes. + Set A has nodes 0 to (n - 1) and set B has nodes n to (n + m - 1). + + Parameters + ---------- + n : int + The number of nodes in the first bipartite set. + m : int + The number of nodes in the second bipartite set. + k : int + The number of edges + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + directed : bool, optional (default=False) + If True return a directed graph + + Examples + -------- + >>> G = nx.bipartite.gnmk_random_graph(10, 20, 50) + + See Also + -------- + gnm_random_graph + + Notes + ----- + If k > m * n then a complete bipartite graph is returned. + + This graph is a bipartite version of the `G_{nm}` random graph model. + + The nodes are assigned the attribute 'bipartite' with the value 0 or 1 + to indicate which bipartite set the node belongs to. + + This function is not imported in the main namespace. + To use it use nx.bipartite.gnmk_random_graph + """ + G = nx.Graph() + G = _add_nodes_with_bipartite_label(G, n, m) + if directed: + G = nx.DiGraph(G) + G.name = f"bipartite_gnm_random_graph({n},{m},{k})" + if n == 1 or m == 1: + return G + max_edges = n * m # max_edges for bipartite networks + if k >= max_edges: # Maybe we should raise an exception here + return nx.complete_bipartite_graph(n, m, create_using=G) + + top = [n for n, d in G.nodes(data=True) if d["bipartite"] == 0] + bottom = list(set(G) - set(top)) + edge_count = 0 + while edge_count < k: + # generate random edge,u,v + u = seed.choice(top) + v = seed.choice(bottom) + if v in G[u]: + continue + else: + G.add_edge(u, v) + edge_count += 1 + return G + + +def _add_nodes_with_bipartite_label(G, lena, lenb): + G.add_nodes_from(range(lena + lenb)) + b = dict(zip(range(lena), [0] * lena)) + b.update(dict(zip(range(lena, lena + lenb), [1] * lenb))) + nx.set_node_attributes(G, b, "bipartite") + return G diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/link_analysis.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/link_analysis.py new file mode 100644 index 0000000000000000000000000000000000000000..7238b1ed8523d7ae4e3211e74850cce582cbbe15 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/link_analysis.py @@ -0,0 +1,316 @@ +import itertools + +import networkx as nx + +__all__ = ["birank"] + + +@nx._dispatchable(edge_attrs="weight") +def birank( + G, + nodes, + *, + alpha=None, + beta=None, + top_personalization=None, + bottom_personalization=None, + max_iter=100, + tol=1.0e-6, + weight="weight", +): + r"""Compute the BiRank score for nodes in a bipartite network. + + Given the bipartite sets $U$ and $P$, the BiRank algorithm seeks to satisfy + the following recursive relationships between the scores of nodes $j \in P$ + and $i \in U$: + + .. math:: + + p_j = \alpha \sum_{i \in U} \frac{w_{ij}}{\sqrt{d_i}\sqrt{d_j}} u_i + + (1 - \alpha) p_j^0 + + u_i = \beta \sum_{j \in P} \frac{w_{ij}}{\sqrt{d_i}\sqrt{d_j}} p_j + + (1 - \beta) u_i^0 + + where + + * $p_j$ and $u_i$ are the BiRank scores of nodes $j \in P$ and $i \in U$. + * $w_{ij}$ is the weight of the edge between nodes $i \in U$ and $j \in P$ + (With a value of 0 if no edge exists). + * $d_i$ and $d_j$ are the weighted degrees of nodes $i \in U$ and $j \in P$, + respectively. + * $p_j^0$ and $u_i^0$ are personalization values that can encode a priori + weights for the nodes $j \in P$ and $i \in U$, respectively. Akin to the + personalization vector used by PageRank. + * $\alpha$ and $\beta$ are damping hyperparameters applying to nodes in $P$ + and $U$ respectively. They can take values in the interval $[0, 1]$, and + are analogous to those used by PageRank. + + Below are two use cases for this algorithm. + + 1. Personalized Recommendation System + Given a bipartite graph representing users and items, BiRank can be used + as a collaborative filtering algorithm to recommend items to users. + Previous ratings are encoded as edge weights, and the specific ratings + of an individual user on a set of items is used as the personalization + vector over items. See the example below for an implementation of this + on a toy dataset provided in [1]_. + + 2. Popularity Prediction + Given a bipartite graph representing user interactions with items, e.g. + commits to a GitHub repository, BiRank can be used to predict the + popularity of a given item. Edge weights should encode the strength of + the interaction signal. This could be a raw count, or weighted by a time + decay function like that specified in Eq. (15) of [1]_. The + personalization vectors can be used to encode existing popularity + signals, for example, the monthly download count of a repository's + package. + + Parameters + ---------- + G : graph + A bipartite network + + nodes : iterable of nodes + Container with all nodes belonging to the first bipartite node set + ('top'). The nodes in this set use the hyperparameter `alpha`, and the + personalization dictionary `top_personalization`. The nodes in the second + bipartite node set ('bottom') are automatically determined by taking the + complement of 'top' with respect to the graph `G`. + + alpha : float, optional (default=0.80 if top_personalization not empty, else 1) + Damping factor for the 'top' nodes. Must be in the interval $[0, 1]$. + Larger alpha and beta generally reduce the effect of the personalizations + and increase the number of iterations before convergence. Choice of value + is largely dependent on use case, and experimentation is recommended. + + beta : float, optional (default=0.80 if bottom_personalization not empty, else 1) + Damping factor for the 'bottom' nodes. Must be in the interval $[0, 1]$. + Larger alpha and beta generally reduce the effect of the personalizations + and increase the number of iterations before convergence. Choice of value + is largely dependent on use case, and experimentation is recommended. + + top_personalization : dict, optional (default=None) + Dictionary keyed by nodes in 'top' to that node's personalization value. + Unspecified nodes in 'top' will be assigned a personalization value of 0. + Personalization values are used to encode a priori weights for a given node, + and should be non-negative. + + bottom_personalization : dict, optional (default=None) + Dictionary keyed by nodes in 'bottom' to that node's personalization value. + Unspecified nodes in 'bottom' will be assigned a personalization value of 0. + Personalization values are used to encode a priori weights for a given node, + and should be non-negative. + + max_iter : int, optional (default=100) + Maximum number of iterations in power method eigenvalue solver. + + tol : float, optional (default=1.0e-6) + Error tolerance used to check convergence in power method solver. The + iteration will stop after a tolerance of both ``len(top) * tol`` and + ``len(bottom) * tol`` is reached for nodes in 'top' and 'bottom' + respectively. + + weight : string or None, optional (default='weight') + Edge data key to use as weight. + + Returns + ------- + birank : dictionary + Dictionary keyed by node to that node's BiRank score. + + Raises + ------ + NetworkXAlgorithmError + If the parameters `alpha` or `beta` are not in the interval [0, 1], + if either of the bipartite sets are empty, or if negative values are + provided in the personalization dictionaries. + + PowerIterationFailedConvergence + If the algorithm fails to converge to the specified tolerance + within the specified number of iterations of the power iteration + method. + + Examples + -------- + Construct a bipartite graph with user-item ratings and use BiRank to + recommend items to a user (user 1). The example below uses the `rating` + edge attribute as the weight of the edges. The `top_personalization` vector + is used to encode the user's previous ratings on items. + + Creation of graph, bipartite sets for the example. + + >>> elist = [ + ... ("u1", "p1", 5), + ... ("u2", "p1", 5), + ... ("u2", "p2", 4), + ... ("u3", "p1", 3), + ... ("u3", "p3", 2), + ... ] + >>> G = nx.Graph() + >>> G.add_weighted_edges_from(elist, weight="rating") + >>> product_nodes = ("p1", "p2", "p3") + >>> user = "u1" + + First, we create a personalization vector for the user based on on their + ratings of past items. In this case they have only rated one item (p1, with + a rating of 5) in the past. + + >>> user_personalization = { + ... product: rating + ... for _, product, rating in G.edges(nbunch=user, data="rating") + ... } + >>> user_personalization + {'p1': 5} + + Calculate the BiRank score of all nodes in the graph, filter for the items + that the user has not rated yet, and sort the results by score. + + >>> user_birank_results = nx.bipartite.birank( + ... G, product_nodes, top_personalization=user_personalization, weight="rating" + ... ) + >>> user_birank_results = filter( + ... lambda item: item[0][0] == "p" and user not in G.neighbors(item[0]), + ... user_birank_results.items(), + ... ) + >>> user_birank_results = sorted( + ... user_birank_results, key=lambda item: item[1], reverse=True + ... ) + >>> user_recommendations = { + ... product: round(score, 5) for product, score in user_birank_results + ... } + >>> user_recommendations + {'p2': 1.44818, 'p3': 1.04811} + + We find that user 1 should be recommended item p2 over item p3. This is due + to the fact that user 2 rated also rated p1 highly, while user 3 did not. + Thus user 2's tastes are inferred to be similar to user 1's, and carry more + weight in the recommendation. + + See Also + -------- + :func:`~networkx.algorithms.link_analysis.pagerank_alg.pagerank` + :func:`~networkx.algorithms.link_analysis.hits_alg.hits` + :func:`~networkx.algorithms.bipartite.centrality.betweenness_centrality` + :func:`~networkx.algorithms.bipartite.basic.sets` + :func:`~networkx.algorithms.bipartite.basic.is_bipartite` + + Notes + ----- + The `nodes` input parameter must contain all nodes in one bipartite + node set, but the dictionary returned contains all nodes from both + bipartite node sets. See :mod:`bipartite documentation + ` for further details on how + bipartite graphs are handled in NetworkX. + + In the case a personalization dictionary is not provided for top (bottom) + `alpha` (`beta`) will default to 1. This is because a damping factor + without a non-zero entry in the personalization vector will lead to the + algorithm converging to the zero vector. + + References + ---------- + .. [1] Xiangnan He, Ming Gao, Min-Yen Kan, and Dingxian Wang. 2017. + BiRank: Towards Ranking on Bipartite Graphs. IEEE Trans. on Knowl. + and Data Eng. 29, 1 (January 2017), 57–71. + https://arxiv.org/pdf/1708.04396 + + """ + import numpy as np + import scipy as sp + + # Initialize the sets of top and bottom nodes + top = set(nodes) + bottom = set(G) - top + top_count = len(top) + bottom_count = len(bottom) + + if top_count == 0 or bottom_count == 0: + raise nx.NetworkXAlgorithmError( + "The BiRank algorithm requires a bipartite graph with at least one" + "node in each set." + ) + + # Clean the personalization dictionaries + top_personalization = _clean_personalization_dict(top_personalization) + bottom_personalization = _clean_personalization_dict(bottom_personalization) + + # Set default values for alpha and beta if not provided + if alpha is None: + alpha = 0.8 if top_personalization else 1 + if beta is None: + beta = 0.8 if bottom_personalization else 1 + + if alpha < 0 or alpha > 1: + raise nx.NetworkXAlgorithmError("alpha must be in the interval [0, 1]") + if beta < 0 or beta > 1: + raise nx.NetworkXAlgorithmError("beta must be in the interval [0, 1]") + + # Initialize query vectors + p0 = np.array([top_personalization.get(n, 0) for n in top], dtype=float) + u0 = np.array([bottom_personalization.get(n, 0) for n in bottom], dtype=float) + + # Construct degree normalized biadjacency matrix `S` and its transpose + W = nx.bipartite.biadjacency_matrix(G, bottom, top, weight=weight, dtype=float) + p_degrees = W.sum(axis=0, dtype=float) + # Handle case where the node is disconnected - avoids warning + p_degrees[p_degrees == 0] = 1.0 + D_p = sp.sparse.dia_array( + ([1.0 / np.sqrt(p_degrees)], [0]), + shape=(top_count, top_count), + dtype=float, + ) + u_degrees = W.sum(axis=1, dtype=float) + u_degrees[u_degrees == 0] = 1.0 + D_u = sp.sparse.dia_array( + ([1.0 / np.sqrt(u_degrees)], [0]), + shape=(bottom_count, bottom_count), + dtype=float, + ) + S = D_u.tocsr() @ W @ D_p.tocsr() + S_T = S.T + + # Initialize birank vectors for iteration + p = np.ones(top_count, dtype=float) / top_count + u = beta * (S @ p) + (1 - beta) * u0 + + # Iterate until convergence + for _ in range(max_iter): + p_last = p + u_last = u + p = alpha * (S_T @ u) + (1 - alpha) * p0 + u = beta * (S @ p) + (1 - beta) * u0 + + # Continue iterating if the error (absolute if less than 1, relative otherwise) + # is above the tolerance threshold for either p or u + err_u = np.absolute((u_last - u) / np.maximum(1.0, u_last)).sum() + if err_u >= len(u) * tol: + continue + err_p = np.absolute((p_last - p) / np.maximum(1.0, p_last)).sum() + if err_p >= len(p) * tol: + continue + + # Handle edge case where if both alpha and beta are 1, scale is + # indeterminate, so normalization is required to return consistent results + if alpha == 1 and beta == 1: + p = p / np.linalg.norm(p, 1) + u = u / np.linalg.norm(u, 1) + + # If both error thresholds pass, return a single dictionary mapping + # nodes to their scores + return dict( + zip(itertools.chain(top, bottom), map(float, itertools.chain(p, u))) + ) + + # If we reach this point, we have not converged + raise nx.PowerIterationFailedConvergence(max_iter) + + +def _clean_personalization_dict(personalization): + """Filter out zero values from the personalization dictionary, + handle case where None is passed, ensure values are non-negative.""" + if personalization is None: + return {} + if any(value < 0 for value in personalization.values()): + raise nx.NetworkXAlgorithmError("Personalization values must be non-negative.") + return {node: value for node, value in personalization.items() if value != 0} diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/matching.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/matching.py new file mode 100644 index 0000000000000000000000000000000000000000..38a174780ac1eb7a42568aa6752b9adb82a2d984 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/matching.py @@ -0,0 +1,590 @@ +# This module uses material from the Wikipedia article Hopcroft--Karp algorithm +# , accessed on +# January 3, 2015, which is released under the Creative Commons +# Attribution-Share-Alike License 3.0 +# . That article includes +# pseudocode, which has been translated into the corresponding Python code. +# +# Portions of this module use code from David Eppstein's Python Algorithms and +# Data Structures (PADS) library, which is dedicated to the public domain (for +# proof, see ). +"""Provides functions for computing maximum cardinality matchings and minimum +weight full matchings in a bipartite graph. + +If you don't care about the particular implementation of the maximum matching +algorithm, simply use the :func:`maximum_matching`. If you do care, you can +import one of the named maximum matching algorithms directly. + +For example, to find a maximum matching in the complete bipartite graph with +two vertices on the left and three vertices on the right: + +>>> G = nx.complete_bipartite_graph(2, 3) +>>> left, right = nx.bipartite.sets(G) +>>> list(left) +[0, 1] +>>> list(right) +[2, 3, 4] +>>> nx.bipartite.maximum_matching(G) +{0: 2, 1: 3, 2: 0, 3: 1} + +The dictionary returned by :func:`maximum_matching` includes a mapping for +vertices in both the left and right vertex sets. + +Similarly, :func:`minimum_weight_full_matching` produces, for a complete +weighted bipartite graph, a matching whose cardinality is the cardinality of +the smaller of the two partitions, and for which the sum of the weights of the +edges included in the matching is minimal. + +""" + +import collections +import itertools + +import networkx as nx +from networkx.algorithms.bipartite import sets as bipartite_sets +from networkx.algorithms.bipartite.matrix import biadjacency_matrix + +__all__ = [ + "maximum_matching", + "hopcroft_karp_matching", + "eppstein_matching", + "to_vertex_cover", + "minimum_weight_full_matching", +] + +INFINITY = float("inf") + + +@nx._dispatchable +def hopcroft_karp_matching(G, top_nodes=None): + """Returns the maximum cardinality matching of the bipartite graph `G`. + + A matching is a set of edges that do not share any nodes. A maximum + cardinality matching is a matching with the most edges possible. It + is not always unique. Finding a matching in a bipartite graph can be + treated as a networkx flow problem. + + The functions ``hopcroft_karp_matching`` and ``maximum_matching`` + are aliases of the same function. + + Parameters + ---------- + G : NetworkX graph + + Undirected bipartite graph + + top_nodes : container of nodes + + Container with all nodes in one bipartite node set. If not supplied + it will be computed. But if more than one solution exists an exception + will be raised. + + Returns + ------- + matches : dictionary + + The matching is returned as a dictionary, `matches`, such that + ``matches[v] == w`` if node `v` is matched to node `w`. Unmatched + nodes do not occur as a key in `matches`. + + Raises + ------ + AmbiguousSolution + Raised if the input bipartite graph is disconnected and no container + with all nodes in one bipartite set is provided. When determining + the nodes in each bipartite set more than one valid solution is + possible if the input graph is disconnected. + + Notes + ----- + This function is implemented with the `Hopcroft--Karp matching algorithm + `_ for + bipartite graphs. + + See :mod:`bipartite documentation ` + for further details on how bipartite graphs are handled in NetworkX. + + See Also + -------- + maximum_matching + hopcroft_karp_matching + eppstein_matching + + References + ---------- + .. [1] John E. Hopcroft and Richard M. Karp. "An n^{5 / 2} Algorithm for + Maximum Matchings in Bipartite Graphs" In: **SIAM Journal of Computing** + 2.4 (1973), pp. 225--231. . + + """ + + # First we define some auxiliary search functions. + # + # If you are a human reading these auxiliary search functions, the "global" + # variables `leftmatches`, `rightmatches`, `distances`, etc. are defined + # below the functions, so that they are initialized close to the initial + # invocation of the search functions. + def breadth_first_search(): + for v in left: + if leftmatches[v] is None: + distances[v] = 0 + queue.append(v) + else: + distances[v] = INFINITY + distances[None] = INFINITY + while queue: + v = queue.popleft() + if distances[v] < distances[None]: + for u in G[v]: + if distances[rightmatches[u]] is INFINITY: + distances[rightmatches[u]] = distances[v] + 1 + queue.append(rightmatches[u]) + return distances[None] is not INFINITY + + def depth_first_search(v): + if v is not None: + for u in G[v]: + if distances[rightmatches[u]] == distances[v] + 1: + if depth_first_search(rightmatches[u]): + rightmatches[u] = v + leftmatches[v] = u + return True + distances[v] = INFINITY + return False + return True + + # Initialize the "global" variables that maintain state during the search. + left, right = bipartite_sets(G, top_nodes) + leftmatches = {v: None for v in left} + rightmatches = {v: None for v in right} + distances = {} + queue = collections.deque() + + # Implementation note: this counter is incremented as pairs are matched but + # it is currently not used elsewhere in the computation. + num_matched_pairs = 0 + while breadth_first_search(): + for v in left: + if leftmatches[v] is None: + if depth_first_search(v): + num_matched_pairs += 1 + + # Strip the entries matched to `None`. + leftmatches = {k: v for k, v in leftmatches.items() if v is not None} + rightmatches = {k: v for k, v in rightmatches.items() if v is not None} + + # At this point, the left matches and the right matches are inverses of one + # another. In other words, + # + # leftmatches == {v, k for k, v in rightmatches.items()} + # + # Finally, we combine both the left matches and right matches. + return dict(itertools.chain(leftmatches.items(), rightmatches.items())) + + +@nx._dispatchable +def eppstein_matching(G, top_nodes=None): + """Returns the maximum cardinality matching of the bipartite graph `G`. + + Parameters + ---------- + G : NetworkX graph + + Undirected bipartite graph + + top_nodes : container + + Container with all nodes in one bipartite node set. If not supplied + it will be computed. But if more than one solution exists an exception + will be raised. + + Returns + ------- + matches : dictionary + + The matching is returned as a dictionary, `matching`, such that + ``matching[v] == w`` if node `v` is matched to node `w`. Unmatched + nodes do not occur as a key in `matching`. + + Raises + ------ + AmbiguousSolution + Raised if the input bipartite graph is disconnected and no container + with all nodes in one bipartite set is provided. When determining + the nodes in each bipartite set more than one valid solution is + possible if the input graph is disconnected. + + Notes + ----- + This function is implemented with David Eppstein's version of the algorithm + Hopcroft--Karp algorithm (see :func:`hopcroft_karp_matching`), which + originally appeared in the `Python Algorithms and Data Structures library + (PADS) `_. + + See :mod:`bipartite documentation ` + for further details on how bipartite graphs are handled in NetworkX. + + See Also + -------- + + hopcroft_karp_matching + + """ + # Due to its original implementation, a directed graph is needed + # so that the two sets of bipartite nodes can be distinguished + left, right = bipartite_sets(G, top_nodes) + G = nx.DiGraph(G.edges(left)) + # initialize greedy matching (redundant, but faster than full search) + matching = {} + for u in G: + for v in G[u]: + if v not in matching: + matching[v] = u + break + while True: + # structure residual graph into layers + # pred[u] gives the neighbor in the previous layer for u in U + # preds[v] gives a list of neighbors in the previous layer for v in V + # unmatched gives a list of unmatched vertices in final layer of V, + # and is also used as a flag value for pred[u] when u is in the first + # layer + preds = {} + unmatched = [] + pred = {u: unmatched for u in G} + for v in matching: + del pred[matching[v]] + layer = list(pred) + + # repeatedly extend layering structure by another pair of layers + while layer and not unmatched: + newLayer = {} + for u in layer: + for v in G[u]: + if v not in preds: + newLayer.setdefault(v, []).append(u) + layer = [] + for v in newLayer: + preds[v] = newLayer[v] + if v in matching: + layer.append(matching[v]) + pred[matching[v]] = v + else: + unmatched.append(v) + + # did we finish layering without finding any alternating paths? + if not unmatched: + # TODO - The lines between --- were unused and were thus commented + # out. This whole commented chunk should be reviewed to determine + # whether it should be built upon or completely removed. + # --- + # unlayered = {} + # for u in G: + # # TODO Why is extra inner loop necessary? + # for v in G[u]: + # if v not in preds: + # unlayered[v] = None + # --- + # TODO Originally, this function returned a three-tuple: + # + # return (matching, list(pred), list(unlayered)) + # + # For some reason, the documentation for this function + # indicated that the second and third elements of the returned + # three-tuple would be the vertices in the left and right vertex + # sets, respectively, that are also in the maximum independent set. + # However, what I think the author meant was that the second + # element is the list of vertices that were unmatched and the third + # element was the list of vertices that were matched. Since that + # seems to be the case, they don't really need to be returned, + # since that information can be inferred from the matching + # dictionary. + + # All the matched nodes must be a key in the dictionary + for key in matching.copy(): + matching[matching[key]] = key + return matching + + # recursively search backward through layers to find alternating paths + # recursion returns true if found path, false otherwise + def recurse(v): + if v in preds: + L = preds.pop(v) + for u in L: + if u in pred: + pu = pred.pop(u) + if pu is unmatched or recurse(pu): + matching[v] = u + return True + return False + + for v in unmatched: + recurse(v) + + +def _is_connected_by_alternating_path(G, v, matched_edges, unmatched_edges, targets): + """Returns True if and only if the vertex `v` is connected to one of + the target vertices by an alternating path in `G`. + + An *alternating path* is a path in which every other edge is in the + specified maximum matching (and the remaining edges in the path are not in + the matching). An alternating path may have matched edges in the even + positions or in the odd positions, as long as the edges alternate between + 'matched' and 'unmatched'. + + `G` is an undirected bipartite NetworkX graph. + + `v` is a vertex in `G`. + + `matched_edges` is a set of edges present in a maximum matching in `G`. + + `unmatched_edges` is a set of edges not present in a maximum + matching in `G`. + + `targets` is a set of vertices. + + """ + + def _alternating_dfs(u, along_matched=True): + """Returns True if and only if `u` is connected to one of the + targets by an alternating path. + + `u` is a vertex in the graph `G`. + + If `along_matched` is True, this step of the depth-first search + will continue only through edges in the given matching. Otherwise, it + will continue only through edges *not* in the given matching. + + """ + visited = set() + # Follow matched edges when depth is even, + # and follow unmatched edges when depth is odd. + initial_depth = 0 if along_matched else 1 + stack = [(u, iter(G[u]), initial_depth)] + while stack: + parent, children, depth = stack[-1] + valid_edges = matched_edges if depth % 2 else unmatched_edges + try: + child = next(children) + if child not in visited: + if (parent, child) in valid_edges or (child, parent) in valid_edges: + if child in targets: + return True + visited.add(child) + stack.append((child, iter(G[child]), depth + 1)) + except StopIteration: + stack.pop() + return False + + # Check for alternating paths starting with edges in the matching, then + # check for alternating paths starting with edges not in the + # matching. + return _alternating_dfs(v, along_matched=True) or _alternating_dfs( + v, along_matched=False + ) + + +def _connected_by_alternating_paths(G, matching, targets): + """Returns the set of vertices that are connected to one of the target + vertices by an alternating path in `G` or are themselves a target. + + An *alternating path* is a path in which every other edge is in the + specified maximum matching (and the remaining edges in the path are not in + the matching). An alternating path may have matched edges in the even + positions or in the odd positions, as long as the edges alternate between + 'matched' and 'unmatched'. + + `G` is an undirected bipartite NetworkX graph. + + `matching` is a dictionary representing a maximum matching in `G`, as + returned by, for example, :func:`maximum_matching`. + + `targets` is a set of vertices. + + """ + # Get the set of matched edges and the set of unmatched edges. Only include + # one version of each undirected edge (for example, include edge (1, 2) but + # not edge (2, 1)). Using frozensets as an intermediary step we do not + # require nodes to be orderable. + edge_sets = {frozenset((u, v)) for u, v in matching.items()} + matched_edges = {tuple(edge) for edge in edge_sets} + unmatched_edges = { + (u, v) for (u, v) in G.edges() if frozenset((u, v)) not in edge_sets + } + + return { + v + for v in G + if v in targets + or _is_connected_by_alternating_path( + G, v, matched_edges, unmatched_edges, targets + ) + } + + +@nx._dispatchable +def to_vertex_cover(G, matching, top_nodes=None): + """Returns the minimum vertex cover corresponding to the given maximum + matching of the bipartite graph `G`. + + Parameters + ---------- + G : NetworkX graph + + Undirected bipartite graph + + matching : dictionary + + A dictionary whose keys are vertices in `G` and whose values are the + distinct neighbors comprising the maximum matching for `G`, as returned + by, for example, :func:`maximum_matching`. The dictionary *must* + represent the maximum matching. + + top_nodes : container + + Container with all nodes in one bipartite node set. If not supplied + it will be computed. But if more than one solution exists an exception + will be raised. + + Returns + ------- + vertex_cover : :class:`set` + + The minimum vertex cover in `G`. + + Raises + ------ + AmbiguousSolution + Raised if the input bipartite graph is disconnected and no container + with all nodes in one bipartite set is provided. When determining + the nodes in each bipartite set more than one valid solution is + possible if the input graph is disconnected. + + Notes + ----- + This function is implemented using the procedure guaranteed by `Konig's + theorem + `_, + which proves an equivalence between a maximum matching and a minimum vertex + cover in bipartite graphs. + + Since a minimum vertex cover is the complement of a maximum independent set + for any graph, one can compute the maximum independent set of a bipartite + graph this way: + + >>> G = nx.complete_bipartite_graph(2, 3) + >>> matching = nx.bipartite.maximum_matching(G) + >>> vertex_cover = nx.bipartite.to_vertex_cover(G, matching) + >>> independent_set = set(G) - vertex_cover + >>> print(list(independent_set)) + [2, 3, 4] + + See :mod:`bipartite documentation ` + for further details on how bipartite graphs are handled in NetworkX. + + """ + # This is a Python implementation of the algorithm described at + # . + L, R = bipartite_sets(G, top_nodes) + # Let U be the set of unmatched vertices in the left vertex set. + unmatched_vertices = set(G) - set(matching) + U = unmatched_vertices & L + # Let Z be the set of vertices that are either in U or are connected to U + # by alternating paths. + Z = _connected_by_alternating_paths(G, matching, U) + # At this point, every edge either has a right endpoint in Z or a left + # endpoint not in Z. This gives us the vertex cover. + return (L - Z) | (R & Z) + + +#: Returns the maximum cardinality matching in the given bipartite graph. +#: +#: This function is simply an alias for :func:`hopcroft_karp_matching`. +maximum_matching = hopcroft_karp_matching + + +@nx._dispatchable(edge_attrs="weight") +def minimum_weight_full_matching(G, top_nodes=None, weight="weight"): + r"""Returns a minimum weight full matching of the bipartite graph `G`. + + Let :math:`G = ((U, V), E)` be a weighted bipartite graph with real weights + :math:`w : E \to \mathbb{R}`. This function then produces a matching + :math:`M \subseteq E` with cardinality + + .. math:: + \lvert M \rvert = \min(\lvert U \rvert, \lvert V \rvert), + + which minimizes the sum of the weights of the edges included in the + matching, :math:`\sum_{e \in M} w(e)`, or raises an error if no such + matching exists. + + When :math:`\lvert U \rvert = \lvert V \rvert`, this is commonly + referred to as a perfect matching; here, since we allow + :math:`\lvert U \rvert` and :math:`\lvert V \rvert` to differ, we + follow Karp [1]_ and refer to the matching as *full*. + + Parameters + ---------- + G : NetworkX graph + + Undirected bipartite graph + + top_nodes : container + + Container with all nodes in one bipartite node set. If not supplied + it will be computed. + + weight : string, optional (default='weight') + + The edge data key used to provide each value in the matrix. + If None, then each edge has weight 1. + + Returns + ------- + matches : dictionary + + The matching is returned as a dictionary, `matches`, such that + ``matches[v] == w`` if node `v` is matched to node `w`. Unmatched + nodes do not occur as a key in `matches`. + + Raises + ------ + ValueError + Raised if no full matching exists. + + ImportError + Raised if SciPy is not available. + + Notes + ----- + The problem of determining a minimum weight full matching is also known as + the rectangular linear assignment problem. This implementation defers the + calculation of the assignment to SciPy. + + References + ---------- + .. [1] Richard Manning Karp: + An algorithm to Solve the m x n Assignment Problem in Expected Time + O(mn log n). + Networks, 10(2):143–152, 1980. + + """ + import numpy as np + import scipy as sp + + left, right = nx.bipartite.sets(G, top_nodes) + U = list(left) + V = list(right) + # We explicitly create the biadjacency matrix having infinities + # where edges are missing (as opposed to zeros, which is what one would + # get by using toarray on the sparse matrix). + weights_sparse = biadjacency_matrix( + G, row_order=U, column_order=V, weight=weight, format="coo" + ) + weights = np.full(weights_sparse.shape, np.inf) + weights[weights_sparse.row, weights_sparse.col] = weights_sparse.data + left_matches = sp.optimize.linear_sum_assignment(weights) + d = {U[u]: V[v] for u, v in zip(*left_matches)} + # d will contain the matching from edges in left to right; we need to + # add the ones from right to left as well. + d.update({v: u for u, v in d.items()}) + return d diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/matrix.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/matrix.py new file mode 100644 index 0000000000000000000000000000000000000000..5062dcdea91cfa3d7b5b67ec5c69a4815d14b650 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/matrix.py @@ -0,0 +1,232 @@ +""" +==================== +Biadjacency matrices +==================== +""" + +import itertools + +import networkx as nx +from networkx.convert_matrix import _generate_weighted_edges + +__all__ = ["biadjacency_matrix", "from_biadjacency_matrix"] + + +@nx._dispatchable(edge_attrs="weight") +def biadjacency_matrix( + G, row_order, column_order=None, dtype=None, weight="weight", format="csr" +): + r"""Returns the biadjacency matrix of the bipartite graph G. + + Let `G = (U, V, E)` be a bipartite graph with node sets + `U = u_{1},...,u_{r}` and `V = v_{1},...,v_{s}`. The biadjacency + matrix [1]_ is the `r` x `s` matrix `B` in which `b_{i,j} = 1` + if, and only if, `(u_i, v_j) \in E`. If the parameter `weight` is + not `None` and matches the name of an edge attribute, its value is + used instead of 1. + + Parameters + ---------- + G : graph + A NetworkX graph + + row_order : list of nodes + The rows of the matrix are ordered according to the list of nodes. + + column_order : list, optional + The columns of the matrix are ordered according to the list of nodes. + If column_order is None, then the ordering of columns is arbitrary. + + dtype : NumPy data-type, optional + A valid NumPy dtype used to initialize the array. If None, then the + NumPy default is used. + + weight : string or None, optional (default='weight') + The edge data key used to provide each value in the matrix. + If None, then each edge has weight 1. + + format : str in {'dense', 'bsr', 'csr', 'csc', 'coo', 'lil', 'dia', 'dok'} + The type of the matrix to be returned (default 'csr'). For + some algorithms different implementations of sparse matrices + can perform better. See [2]_ for details. + + Returns + ------- + M : SciPy sparse array + Biadjacency matrix representation of the bipartite graph G. + + Notes + ----- + No attempt is made to check that the input graph is bipartite. + + For directed bipartite graphs only successors are considered as neighbors. + To obtain an adjacency matrix with ones (or weight values) for both + predecessors and successors you have to generate two biadjacency matrices + where the rows of one of them are the columns of the other, and then add + one to the transpose of the other. + + See Also + -------- + adjacency_matrix + from_biadjacency_matrix + + References + ---------- + .. [1] https://en.wikipedia.org/wiki/Adjacency_matrix#Adjacency_matrix_of_a_bipartite_graph + .. [2] Scipy Dev. References, "Sparse Matrices", + https://docs.scipy.org/doc/scipy/reference/sparse.html + """ + import scipy as sp + + nlen = len(row_order) + if nlen == 0: + raise nx.NetworkXError("row_order is empty list") + if len(row_order) != len(set(row_order)): + msg = "Ambiguous ordering: `row_order` contained duplicates." + raise nx.NetworkXError(msg) + if column_order is None: + column_order = list(set(G) - set(row_order)) + mlen = len(column_order) + if len(column_order) != len(set(column_order)): + msg = "Ambiguous ordering: `column_order` contained duplicates." + raise nx.NetworkXError(msg) + + row_index = dict(zip(row_order, itertools.count())) + col_index = dict(zip(column_order, itertools.count())) + + if G.number_of_edges() == 0: + row, col, data = [], [], [] + else: + row, col, data = zip( + *( + (row_index[u], col_index[v], d.get(weight, 1)) + for u, v, d in G.edges(row_order, data=True) + if u in row_index and v in col_index + ) + ) + A = sp.sparse.coo_array((data, (row, col)), shape=(nlen, mlen), dtype=dtype) + try: + return A.asformat(format) + except ValueError as err: + raise nx.NetworkXError(f"Unknown sparse array format: {format}") from err + + +@nx._dispatchable(graphs=None, returns_graph=True) +def from_biadjacency_matrix( + A, + create_using=None, + edge_attribute="weight", + *, + row_order=None, + column_order=None, +): + r"""Creates a new bipartite graph from a biadjacency matrix given as a + SciPy sparse array. + + Parameters + ---------- + A : scipy sparse array + A biadjacency matrix representation of a graph + + create_using : NetworkX graph + Use specified graph for result. The default is Graph() + + edge_attribute : string + Name of edge attribute to store matrix numeric value. The data will + have the same type as the matrix entry (int, float, (real,imag)). + + row_order : list, optional (default: range(number of rows in `A`)) + A list of the nodes represented by the rows of the matrix `A`. Will + be represented in the graph as nodes with the `bipartite` attribute set + to 0. Must be the same length as the number of rows in `A`. + + column_order : list, optional (default: range(number of columns in `A`)) + A list of the nodes represented by the columns of the matrix `A`. Will + be represented in the graph as nodes with the `bipartite` attribute set + to 1. Must be the same length as the number of columns in `A`. + + Returns + ------- + G : NetworkX graph + A bipartite graph with edges from the biadjacency matrix `A`, and + nodes from `row_order` and `column_order`. + + Raises + ------ + ValueError + If `row_order` or `column_order` are provided and are not the same + length as the number of rows or columns in `A`, respectively. + + Notes + ----- + The nodes are labeled with the attribute `bipartite` set to an integer + 0 or 1 representing membership in the `top` set (`bipartite=0`) or `bottom` + set (`bipartite=1`) of the bipartite graph. + + If `create_using` is an instance of :class:`networkx.MultiGraph` or + :class:`networkx.MultiDiGraph` and the entries of `A` are of + type :class:`int`, then this function returns a multigraph (of the same + type as `create_using`) with parallel edges. In this case, `edge_attribute` + will be ignored. + + See Also + -------- + biadjacency_matrix + from_numpy_array + + References + ---------- + [1] https://en.wikipedia.org/wiki/Adjacency_matrix#Adjacency_matrix_of_a_bipartite_graph + """ + G = nx.empty_graph(0, create_using) + n, m = A.shape + # Check/set row_order and column_order to have correct length and default values + row_order, column_order = _validate_initialize_bipartite_nodelists( + A, row_order, column_order + ) + + # Make sure we get even the isolated nodes of the graph. + G.add_nodes_from(range(n), bipartite=0) + G.add_nodes_from(range(n, n + m), bipartite=1) + # Create an iterable over (u, v, w) triples and for each triple, add an + # edge from u to v with weight w. + triples = ((u, n + v, d) for (u, v, d) in _generate_weighted_edges(A)) + # If the entries in the adjacency matrix are integers and the graph is a + # multigraph, then create parallel edges, each with weight 1, for each + # entry in the adjacency matrix. Otherwise, create one edge for each + # positive entry in the adjacency matrix and set the weight of that edge to + # be the entry in the matrix. + if A.dtype.kind in ("i", "u") and G.is_multigraph(): + chain = itertools.chain.from_iterable + triples = chain(((u, v, 1) for d in range(w)) for (u, v, w) in triples) + G.add_weighted_edges_from(triples, weight=edge_attribute) + + # If the user provided nodelists, relabel the nodes of the graph inplace + mapping = dict( + itertools.chain(zip(range(n), row_order), zip(range(n, n + m), column_order)) + ) + if len(mapping): + nx.relabel_nodes(G, mapping, copy=False) + return G + + +def _validate_initialize_bipartite_nodelists(A, row_order, column_order): + n, m = A.shape + # Validate nodelists if provided + if row_order is not None: + if len(row_order) != n: + raise ValueError( + "Length of row_order does not match number of rows in A ({n})" + ) + else: + row_order = [] + + if column_order is not None: + if len(column_order) != m: + raise ValueError( + "Length of column_order does not match number of columns in A ({m})" + ) + else: + column_order = [] + + return row_order, column_order diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/projection.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/projection.py new file mode 100644 index 0000000000000000000000000000000000000000..7c2a26cf73ddf39e51fbd20d442abe736acedddd --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/projection.py @@ -0,0 +1,526 @@ +"""One-mode (unipartite) projections of bipartite graphs.""" + +import networkx as nx +from networkx.exception import NetworkXAlgorithmError +from networkx.utils import not_implemented_for + +__all__ = [ + "projected_graph", + "weighted_projected_graph", + "collaboration_weighted_projected_graph", + "overlap_weighted_projected_graph", + "generic_weighted_projected_graph", +] + + +@nx._dispatchable( + graphs="B", preserve_node_attrs=True, preserve_graph_attrs=True, returns_graph=True +) +def projected_graph(B, nodes, multigraph=False): + r"""Returns the projection of B onto one of its node sets. + + Returns the graph G that is the projection of the bipartite graph B + onto the specified nodes. They retain their attributes and are connected + in G if they have a common neighbor in B. + + Parameters + ---------- + B : NetworkX graph + The input graph should be bipartite. + + nodes : list or iterable + Nodes to project onto (the "bottom" nodes). + + multigraph: bool (default=False) + If True return a multigraph where the multiple edges represent multiple + shared neighbors. They edge key in the multigraph is assigned to the + label of the neighbor. + + Returns + ------- + Graph : NetworkX graph or multigraph + A graph that is the projection onto the given nodes. + + Examples + -------- + >>> from networkx.algorithms import bipartite + >>> B = nx.path_graph(4) + >>> G = bipartite.projected_graph(B, [1, 3]) + >>> list(G) + [1, 3] + >>> list(G.edges()) + [(1, 3)] + + If nodes `a`, and `b` are connected through both nodes 1 and 2 then + building a multigraph results in two edges in the projection onto + [`a`, `b`]: + + >>> B = nx.Graph() + >>> B.add_edges_from([("a", 1), ("b", 1), ("a", 2), ("b", 2)]) + >>> G = bipartite.projected_graph(B, ["a", "b"], multigraph=True) + >>> print([sorted((u, v)) for u, v in G.edges()]) + [['a', 'b'], ['a', 'b']] + + Notes + ----- + No attempt is made to verify that the input graph B is bipartite. + Returns a simple graph that is the projection of the bipartite graph B + onto the set of nodes given in list nodes. If multigraph=True then + a multigraph is returned with an edge for every shared neighbor. + + Directed graphs are allowed as input. The output will also then + be a directed graph with edges if there is a directed path between + the nodes. + + The graph and node properties are (shallow) copied to the projected graph. + + See :mod:`bipartite documentation ` + for further details on how bipartite graphs are handled in NetworkX. + + See Also + -------- + is_bipartite, + is_bipartite_node_set, + sets, + weighted_projected_graph, + collaboration_weighted_projected_graph, + overlap_weighted_projected_graph, + generic_weighted_projected_graph + """ + if B.is_multigraph(): + raise nx.NetworkXError("not defined for multigraphs") + if B.is_directed(): + directed = True + if multigraph: + G = nx.MultiDiGraph() + else: + G = nx.DiGraph() + else: + directed = False + if multigraph: + G = nx.MultiGraph() + else: + G = nx.Graph() + G.graph.update(B.graph) + G.add_nodes_from((n, B.nodes[n]) for n in nodes) + for u in nodes: + nbrs2 = {v for nbr in B[u] for v in B[nbr] if v != u} + if multigraph: + for n in nbrs2: + if directed: + links = set(B[u]) & set(B.pred[n]) + else: + links = set(B[u]) & set(B[n]) + for l in links: + if not G.has_edge(u, n, l): + G.add_edge(u, n, key=l) + else: + G.add_edges_from((u, n) for n in nbrs2) + return G + + +@not_implemented_for("multigraph") +@nx._dispatchable(graphs="B", returns_graph=True) +def weighted_projected_graph(B, nodes, ratio=False): + r"""Returns a weighted projection of B onto one of its node sets. + + The weighted projected graph is the projection of the bipartite + network B onto the specified nodes with weights representing the + number of shared neighbors or the ratio between actual shared + neighbors and possible shared neighbors if ``ratio is True`` [1]_. + The nodes retain their attributes and are connected in the resulting + graph if they have an edge to a common node in the original graph. + + Parameters + ---------- + B : NetworkX graph + The input graph should be bipartite. + + nodes : list or iterable + Distinct nodes to project onto (the "bottom" nodes). + + ratio: Bool (default=False) + If True, edge weight is the ratio between actual shared neighbors + and maximum possible shared neighbors (i.e., the size of the other + node set). If False, edges weight is the number of shared neighbors. + + Returns + ------- + Graph : NetworkX graph + A graph that is the projection onto the given nodes. + + Examples + -------- + >>> from networkx.algorithms import bipartite + >>> B = nx.path_graph(4) + >>> G = bipartite.weighted_projected_graph(B, [1, 3]) + >>> list(G) + [1, 3] + >>> list(G.edges(data=True)) + [(1, 3, {'weight': 1})] + >>> G = bipartite.weighted_projected_graph(B, [1, 3], ratio=True) + >>> list(G.edges(data=True)) + [(1, 3, {'weight': 0.5})] + + Notes + ----- + No attempt is made to verify that the input graph B is bipartite, or that + the input nodes are distinct. However, if the length of the input nodes is + greater than or equal to the nodes in the graph B, an exception is raised. + If the nodes are not distinct but don't raise this error, the output weights + will be incorrect. + The graph and node properties are (shallow) copied to the projected graph. + + See :mod:`bipartite documentation ` + for further details on how bipartite graphs are handled in NetworkX. + + See Also + -------- + is_bipartite, + is_bipartite_node_set, + sets, + collaboration_weighted_projected_graph, + overlap_weighted_projected_graph, + generic_weighted_projected_graph + projected_graph + + References + ---------- + .. [1] Borgatti, S.P. and Halgin, D. In press. "Analyzing Affiliation + Networks". In Carrington, P. and Scott, J. (eds) The Sage Handbook + of Social Network Analysis. Sage Publications. + """ + if B.is_directed(): + pred = B.pred + G = nx.DiGraph() + else: + pred = B.adj + G = nx.Graph() + G.graph.update(B.graph) + G.add_nodes_from((n, B.nodes[n]) for n in nodes) + n_top = len(B) - len(nodes) + + if n_top < 1: + raise NetworkXAlgorithmError( + f"the size of the nodes to project onto ({len(nodes)}) is >= the graph size ({len(B)}).\n" + "They are either not a valid bipartite partition or contain duplicates" + ) + + for u in nodes: + unbrs = set(B[u]) + nbrs2 = {n for nbr in unbrs for n in B[nbr]} - {u} + for v in nbrs2: + vnbrs = set(pred[v]) + common = unbrs & vnbrs + if not ratio: + weight = len(common) + else: + weight = len(common) / n_top + G.add_edge(u, v, weight=weight) + return G + + +@not_implemented_for("multigraph") +@nx._dispatchable(graphs="B", returns_graph=True) +def collaboration_weighted_projected_graph(B, nodes): + r"""Newman's weighted projection of B onto one of its node sets. + + The collaboration weighted projection is the projection of the + bipartite network B onto the specified nodes with weights assigned + using Newman's collaboration model [1]_: + + .. math:: + + w_{u, v} = \sum_k \frac{\delta_{u}^{k} \delta_{v}^{k}}{d_k - 1} + + where `u` and `v` are nodes from the bottom bipartite node set, + and `k` is a node of the top node set. + The value `d_k` is the degree of node `k` in the bipartite + network and `\delta_{u}^{k}` is 1 if node `u` is + linked to node `k` in the original bipartite graph or 0 otherwise. + + The nodes retain their attributes and are connected in the resulting + graph if have an edge to a common node in the original bipartite + graph. + + Parameters + ---------- + B : NetworkX graph + The input graph should be bipartite. + + nodes : list or iterable + Nodes to project onto (the "bottom" nodes). + + Returns + ------- + Graph : NetworkX graph + A graph that is the projection onto the given nodes. + + Examples + -------- + >>> from networkx.algorithms import bipartite + >>> B = nx.path_graph(5) + >>> B.add_edge(1, 5) + >>> G = bipartite.collaboration_weighted_projected_graph(B, [0, 2, 4, 5]) + >>> list(G) + [0, 2, 4, 5] + >>> for edge in sorted(G.edges(data=True)): + ... print(edge) + (0, 2, {'weight': 0.5}) + (0, 5, {'weight': 0.5}) + (2, 4, {'weight': 1.0}) + (2, 5, {'weight': 0.5}) + + Notes + ----- + No attempt is made to verify that the input graph B is bipartite. + The graph and node properties are (shallow) copied to the projected graph. + + See :mod:`bipartite documentation ` + for further details on how bipartite graphs are handled in NetworkX. + + See Also + -------- + is_bipartite, + is_bipartite_node_set, + sets, + weighted_projected_graph, + overlap_weighted_projected_graph, + generic_weighted_projected_graph, + projected_graph + + References + ---------- + .. [1] Scientific collaboration networks: II. + Shortest paths, weighted networks, and centrality, + M. E. J. Newman, Phys. Rev. E 64, 016132 (2001). + """ + if B.is_directed(): + pred = B.pred + G = nx.DiGraph() + else: + pred = B.adj + G = nx.Graph() + G.graph.update(B.graph) + G.add_nodes_from((n, B.nodes[n]) for n in nodes) + for u in nodes: + unbrs = set(B[u]) + nbrs2 = {n for nbr in unbrs for n in B[nbr] if n != u} + for v in nbrs2: + vnbrs = set(pred[v]) + common_degree = (len(B[n]) for n in unbrs & vnbrs) + weight = sum(1.0 / (deg - 1) for deg in common_degree if deg > 1) + G.add_edge(u, v, weight=weight) + return G + + +@not_implemented_for("multigraph") +@nx._dispatchable(graphs="B", returns_graph=True) +def overlap_weighted_projected_graph(B, nodes, jaccard=True): + r"""Overlap weighted projection of B onto one of its node sets. + + The overlap weighted projection is the projection of the bipartite + network B onto the specified nodes with weights representing + the Jaccard index between the neighborhoods of the two nodes in the + original bipartite network [1]_: + + .. math:: + + w_{v, u} = \frac{|N(u) \cap N(v)|}{|N(u) \cup N(v)|} + + or if the parameter 'jaccard' is False, the fraction of common + neighbors by minimum of both nodes degree in the original + bipartite graph [1]_: + + .. math:: + + w_{v, u} = \frac{|N(u) \cap N(v)|}{min(|N(u)|, |N(v)|)} + + The nodes retain their attributes and are connected in the resulting + graph if have an edge to a common node in the original bipartite graph. + + Parameters + ---------- + B : NetworkX graph + The input graph should be bipartite. + + nodes : list or iterable + Nodes to project onto (the "bottom" nodes). + + jaccard: Bool (default=True) + + Returns + ------- + Graph : NetworkX graph + A graph that is the projection onto the given nodes. + + Examples + -------- + >>> from networkx.algorithms import bipartite + >>> B = nx.path_graph(5) + >>> nodes = [0, 2, 4] + >>> G = bipartite.overlap_weighted_projected_graph(B, nodes) + >>> list(G) + [0, 2, 4] + >>> list(G.edges(data=True)) + [(0, 2, {'weight': 0.5}), (2, 4, {'weight': 0.5})] + >>> G = bipartite.overlap_weighted_projected_graph(B, nodes, jaccard=False) + >>> list(G.edges(data=True)) + [(0, 2, {'weight': 1.0}), (2, 4, {'weight': 1.0})] + + Notes + ----- + No attempt is made to verify that the input graph B is bipartite. + The graph and node properties are (shallow) copied to the projected graph. + + See :mod:`bipartite documentation ` + for further details on how bipartite graphs are handled in NetworkX. + + See Also + -------- + is_bipartite, + is_bipartite_node_set, + sets, + weighted_projected_graph, + collaboration_weighted_projected_graph, + generic_weighted_projected_graph, + projected_graph + + References + ---------- + .. [1] Borgatti, S.P. and Halgin, D. In press. Analyzing Affiliation + Networks. In Carrington, P. and Scott, J. (eds) The Sage Handbook + of Social Network Analysis. Sage Publications. + + """ + if B.is_directed(): + pred = B.pred + G = nx.DiGraph() + else: + pred = B.adj + G = nx.Graph() + G.graph.update(B.graph) + G.add_nodes_from((n, B.nodes[n]) for n in nodes) + for u in nodes: + unbrs = set(B[u]) + nbrs2 = {n for nbr in unbrs for n in B[nbr]} - {u} + for v in nbrs2: + vnbrs = set(pred[v]) + if jaccard: + wt = len(unbrs & vnbrs) / len(unbrs | vnbrs) + else: + wt = len(unbrs & vnbrs) / min(len(unbrs), len(vnbrs)) + G.add_edge(u, v, weight=wt) + return G + + +@not_implemented_for("multigraph") +@nx._dispatchable(graphs="B", preserve_all_attrs=True, returns_graph=True) +def generic_weighted_projected_graph(B, nodes, weight_function=None): + r"""Weighted projection of B with a user-specified weight function. + + The bipartite network B is projected on to the specified nodes + with weights computed by a user-specified function. This function + must accept as a parameter the neighborhood sets of two nodes and + return an integer or a float. + + The nodes retain their attributes and are connected in the resulting graph + if they have an edge to a common node in the original graph. + + Parameters + ---------- + B : NetworkX graph + The input graph should be bipartite. + + nodes : list or iterable + Nodes to project onto (the "bottom" nodes). + + weight_function : function + This function must accept as parameters the same input graph + that this function, and two nodes; and return an integer or a float. + The default function computes the number of shared neighbors. + + Returns + ------- + Graph : NetworkX graph + A graph that is the projection onto the given nodes. + + Examples + -------- + >>> from networkx.algorithms import bipartite + >>> # Define some custom weight functions + >>> def jaccard(G, u, v): + ... unbrs = set(G[u]) + ... vnbrs = set(G[v]) + ... return float(len(unbrs & vnbrs)) / len(unbrs | vnbrs) + >>> def my_weight(G, u, v, weight="weight"): + ... w = 0 + ... for nbr in set(G[u]) & set(G[v]): + ... w += G[u][nbr].get(weight, 1) + G[v][nbr].get(weight, 1) + ... return w + >>> # A complete bipartite graph with 4 nodes and 4 edges + >>> B = nx.complete_bipartite_graph(2, 2) + >>> # Add some arbitrary weight to the edges + >>> for i, (u, v) in enumerate(B.edges()): + ... B.edges[u, v]["weight"] = i + 1 + >>> for edge in B.edges(data=True): + ... print(edge) + (0, 2, {'weight': 1}) + (0, 3, {'weight': 2}) + (1, 2, {'weight': 3}) + (1, 3, {'weight': 4}) + >>> # By default, the weight is the number of shared neighbors + >>> G = bipartite.generic_weighted_projected_graph(B, [0, 1]) + >>> print(list(G.edges(data=True))) + [(0, 1, {'weight': 2})] + >>> # To specify a custom weight function use the weight_function parameter + >>> G = bipartite.generic_weighted_projected_graph( + ... B, [0, 1], weight_function=jaccard + ... ) + >>> print(list(G.edges(data=True))) + [(0, 1, {'weight': 1.0})] + >>> G = bipartite.generic_weighted_projected_graph( + ... B, [0, 1], weight_function=my_weight + ... ) + >>> print(list(G.edges(data=True))) + [(0, 1, {'weight': 10})] + + Notes + ----- + No attempt is made to verify that the input graph B is bipartite. + The graph and node properties are (shallow) copied to the projected graph. + + See :mod:`bipartite documentation ` + for further details on how bipartite graphs are handled in NetworkX. + + See Also + -------- + is_bipartite, + is_bipartite_node_set, + sets, + weighted_projected_graph, + collaboration_weighted_projected_graph, + overlap_weighted_projected_graph, + projected_graph + + """ + if B.is_directed(): + pred = B.pred + G = nx.DiGraph() + else: + pred = B.adj + G = nx.Graph() + if weight_function is None: + + def weight_function(G, u, v): + # Notice that we use set(pred[v]) for handling the directed case. + return len(set(G[u]) & set(pred[v])) + + G.graph.update(B.graph) + G.add_nodes_from((n, B.nodes[n]) for n in nodes) + for u in nodes: + nbrs2 = {n for nbr in set(B[u]) for n in B[nbr]} - {u} + for v in nbrs2: + weight = weight_function(B, u, v) + G.add_edge(u, v, weight=weight) + return G diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/redundancy.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/redundancy.py new file mode 100644 index 0000000000000000000000000000000000000000..c96f1b58a1b164649ef2f3adce1f5897d6da9dd1 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/redundancy.py @@ -0,0 +1,112 @@ +"""Node redundancy for bipartite graphs.""" + +from itertools import combinations + +import networkx as nx +from networkx import NetworkXError + +__all__ = ["node_redundancy"] + + +@nx._dispatchable +def node_redundancy(G, nodes=None): + r"""Computes the node redundancy coefficients for the nodes in the bipartite + graph `G`. + + The redundancy coefficient of a node `v` is the fraction of pairs of + neighbors of `v` that are both linked to other nodes. In a one-mode + projection these nodes would be linked together even if `v` were + not there. + + More formally, for any vertex `v`, the *redundancy coefficient of `v`* is + defined by + + .. math:: + + rc(v) = \frac{|\{\{u, w\} \subseteq N(v), + \: \exists v' \neq v,\: (v',u) \in E\: + \mathrm{and}\: (v',w) \in E\}|}{ \frac{|N(v)|(|N(v)|-1)}{2}}, + + where `N(v)` is the set of neighbors of `v` in `G` [1]_. + + Parameters + ---------- + G : graph + A bipartite graph + + nodes : list or iterable (optional) + Compute redundancy for these nodes. The default is all nodes in G. + + Returns + ------- + redundancy : dictionary + A dictionary keyed by node with the node redundancy value. + + Examples + -------- + Compute the redundancy coefficient of each node in a graph: + + >>> from networkx.algorithms import bipartite + >>> G = nx.cycle_graph(4) + >>> rc = bipartite.node_redundancy(G) + >>> rc[0] + 1.0 + + Compute the average redundancy for the graph: + + >>> from networkx.algorithms import bipartite + >>> G = nx.cycle_graph(4) + >>> rc = bipartite.node_redundancy(G) + >>> sum(rc.values()) / len(G) + 1.0 + + Compute the average redundancy for a set of nodes: + + >>> from networkx.algorithms import bipartite + >>> G = nx.cycle_graph(4) + >>> rc = bipartite.node_redundancy(G) + >>> nodes = [0, 2] + >>> sum(rc[n] for n in nodes) / len(nodes) + 1.0 + + Raises + ------ + NetworkXError + If any of the nodes in the graph (or in `nodes`, if specified) has + (out-)degree less than two (which would result in division by zero, + according to the definition of the redundancy coefficient). + + References + ---------- + .. [1] Latapy, Matthieu, Clémence Magnien, and Nathalie Del Vecchio (2008). + Basic notions for the analysis of large two-mode networks. + Social Networks 30(1), 31--48. + + """ + if nodes is None: + nodes = G + if any(len(G[v]) < 2 for v in nodes): + raise NetworkXError( + "Cannot compute redundancy coefficient for a node" + " that has fewer than two neighbors." + ) + # TODO This can be trivially parallelized. + return {v: _node_redundancy(G, v) for v in nodes} + + +def _node_redundancy(G, v): + """Returns the redundancy of the node `v` in the bipartite graph `G`. + + If `G` is a graph with `n` nodes, the redundancy of a node is the ratio + of the "overlap" of `v` to the maximum possible overlap of `v` + according to its degree. The overlap of `v` is the number of pairs of + neighbors that have mutual neighbors themselves, other than `v`. + + `v` must have at least two neighbors in `G`. + + """ + n = len(G[v]) + overlap = sum( + 1 for (u, w) in combinations(G[v], 2) if (set(G[u]) & set(G[w])) - {v} + ) + return (2 * overlap) / (n * (n - 1)) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/spectral.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/spectral.py new file mode 100644 index 0000000000000000000000000000000000000000..cb9388f6cb61cb3c5da865e22449f4e8f2d1e720 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/spectral.py @@ -0,0 +1,69 @@ +""" +Spectral bipartivity measure. +""" + +import networkx as nx + +__all__ = ["spectral_bipartivity"] + + +@nx._dispatchable(edge_attrs="weight") +def spectral_bipartivity(G, nodes=None, weight="weight"): + """Returns the spectral bipartivity. + + Parameters + ---------- + G : NetworkX graph + + nodes : list or container optional(default is all nodes) + Nodes to return value of spectral bipartivity contribution. + + weight : string or None optional (default = 'weight') + Edge data key to use for edge weights. If None, weights set to 1. + + Returns + ------- + sb : float or dict + A single number if the keyword nodes is not specified, or + a dictionary keyed by node with the spectral bipartivity contribution + of that node as the value. + + Examples + -------- + >>> from networkx.algorithms import bipartite + >>> G = nx.path_graph(4) + >>> bipartite.spectral_bipartivity(G) + 1.0 + + Notes + ----- + This implementation uses Numpy (dense) matrices which are not efficient + for storing large sparse graphs. + + See Also + -------- + color + + References + ---------- + .. [1] E. Estrada and J. A. Rodríguez-Velázquez, "Spectral measures of + bipartivity in complex networks", PhysRev E 72, 046105 (2005) + """ + import scipy as sp + + nodelist = list(G) # ordering of nodes in matrix + A = nx.to_numpy_array(G, nodelist, weight=weight) + expA = sp.linalg.expm(A) + expmA = sp.linalg.expm(-A) + coshA = 0.5 * (expA + expmA) + if nodes is None: + # return single number for entire graph + return float(coshA.diagonal().sum() / expA.diagonal().sum()) + else: + # contribution for individual nodes + index = dict(zip(nodelist, range(len(nodelist)))) + sb = {} + for n in nodes: + i = index[n] + sb[n] = coshA.item(i, i) / expA.item(i, i) + return sb diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f6e5db9021a32a6c7bf3ab45d896ed5f3d9f06d0 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_basic.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_basic.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9c8226397d7cb98a8d2d9cf9b39c29e289919577 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_basic.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_centrality.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_centrality.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8c0e7be4a83ff87697c94a6c7c89f5003b0f2ed9 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_centrality.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_cluster.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_cluster.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6a9e03b30a356d2114b3af89c71b25dd0353d84f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_cluster.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_covering.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_covering.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..10ccebccc2fe0de7d350f14c234d6fa6edb5b7b2 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_covering.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_edgelist.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_edgelist.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..746646b5e794d2f2f87cadf61d1fa0b916d7259e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_edgelist.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_extendability.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_extendability.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9586528a23740d14baf53b87c7ba863f686757c6 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_extendability.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_generators.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_generators.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9cb9ed9cb2b90886fcab4db9e810c8171dba6e5d Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_generators.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_link_analysis.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_link_analysis.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0184c5380edfd5d0205b2a5e588a85db3d5896f5 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_link_analysis.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_matching.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_matching.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a2784852274f364f8268812860f31a3448f602c6 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_matching.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_matrix.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_matrix.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0fd719fff7836dc0ba3fe9190a772aaf6dc68c6c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_matrix.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_project.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_project.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5cc8af9b53ba614f031c9dee9dd5412e75e1475f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_project.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_redundancy.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_redundancy.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f1a20e345b75381b61284e713c302141ed7cb1e9 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_redundancy.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_spectral_bipartivity.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_spectral_bipartivity.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0b1f815d71642ecde8e11b0b8e376d71231fa15f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/__pycache__/test_spectral_bipartivity.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_basic.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_basic.py new file mode 100644 index 0000000000000000000000000000000000000000..655506b4f74110b57cb37db277e2be50bb0be8f4 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_basic.py @@ -0,0 +1,125 @@ +import pytest + +import networkx as nx +from networkx.algorithms import bipartite + + +class TestBipartiteBasic: + def test_is_bipartite(self): + assert bipartite.is_bipartite(nx.path_graph(4)) + assert bipartite.is_bipartite(nx.DiGraph([(1, 0)])) + assert not bipartite.is_bipartite(nx.complete_graph(3)) + + def test_bipartite_color(self): + G = nx.path_graph(4) + c = bipartite.color(G) + assert c == {0: 1, 1: 0, 2: 1, 3: 0} + + def test_not_bipartite_color(self): + with pytest.raises(nx.NetworkXError): + c = bipartite.color(nx.complete_graph(4)) + + def test_bipartite_directed(self): + G = bipartite.random_graph(10, 10, 0.1, directed=True) + assert bipartite.is_bipartite(G) + + def test_bipartite_sets(self): + G = nx.path_graph(4) + X, Y = bipartite.sets(G) + assert X == {0, 2} + assert Y == {1, 3} + + def test_bipartite_sets_directed(self): + G = nx.path_graph(4) + D = G.to_directed() + X, Y = bipartite.sets(D) + assert X == {0, 2} + assert Y == {1, 3} + + def test_bipartite_sets_given_top_nodes(self): + G = nx.path_graph(4) + top_nodes = [0, 2] + X, Y = bipartite.sets(G, top_nodes) + assert X == {0, 2} + assert Y == {1, 3} + + def test_bipartite_sets_disconnected(self): + with pytest.raises(nx.AmbiguousSolution): + G = nx.path_graph(4) + G.add_edges_from([(5, 6), (6, 7)]) + X, Y = bipartite.sets(G) + + def test_is_bipartite_node_set(self): + G = nx.path_graph(4) + + with pytest.raises(nx.AmbiguousSolution): + bipartite.is_bipartite_node_set(G, [1, 1, 2, 3]) + + assert bipartite.is_bipartite_node_set(G, [0, 2]) + assert bipartite.is_bipartite_node_set(G, [1, 3]) + assert not bipartite.is_bipartite_node_set(G, [1, 2]) + G.add_edge(10, 20) + assert bipartite.is_bipartite_node_set(G, [0, 2, 10]) + assert bipartite.is_bipartite_node_set(G, [0, 2, 20]) + assert bipartite.is_bipartite_node_set(G, [1, 3, 10]) + assert bipartite.is_bipartite_node_set(G, [1, 3, 20]) + + def test_bipartite_density(self): + G = nx.path_graph(5) + X, Y = bipartite.sets(G) + density = len(list(G.edges())) / (len(X) * len(Y)) + assert bipartite.density(G, X) == density + D = nx.DiGraph(G.edges()) + assert bipartite.density(D, X) == density / 2.0 + assert bipartite.density(nx.Graph(), {}) == 0.0 + + def test_bipartite_degrees(self): + G = nx.path_graph(5) + X = {1, 3} + Y = {0, 2, 4} + u, d = bipartite.degrees(G, Y) + assert dict(u) == {1: 2, 3: 2} + assert dict(d) == {0: 1, 2: 2, 4: 1} + + def test_bipartite_weighted_degrees(self): + G = nx.path_graph(5) + G.add_edge(0, 1, weight=0.1, other=0.2) + X = {1, 3} + Y = {0, 2, 4} + u, d = bipartite.degrees(G, Y, weight="weight") + assert dict(u) == {1: 1.1, 3: 2} + assert dict(d) == {0: 0.1, 2: 2, 4: 1} + u, d = bipartite.degrees(G, Y, weight="other") + assert dict(u) == {1: 1.2, 3: 2} + assert dict(d) == {0: 0.2, 2: 2, 4: 1} + + def test_biadjacency_matrix_weight(self): + pytest.importorskip("scipy") + G = nx.path_graph(5) + G.add_edge(0, 1, weight=2, other=4) + X = [1, 3] + Y = [0, 2, 4] + M = bipartite.biadjacency_matrix(G, X, weight="weight") + assert M[0, 0] == 2 + M = bipartite.biadjacency_matrix(G, X, weight="other") + assert M[0, 0] == 4 + + def test_biadjacency_matrix(self): + pytest.importorskip("scipy") + tops = [2, 5, 10] + bots = [5, 10, 15] + for i in range(len(tops)): + G = bipartite.random_graph(tops[i], bots[i], 0.2) + top = [n for n, d in G.nodes(data=True) if d["bipartite"] == 0] + M = bipartite.biadjacency_matrix(G, top) + assert M.shape[0] == tops[i] + assert M.shape[1] == bots[i] + + def test_biadjacency_matrix_order(self): + pytest.importorskip("scipy") + G = nx.path_graph(5) + G.add_edge(0, 1, weight=2) + X = [3, 1] + Y = [4, 2, 0] + M = bipartite.biadjacency_matrix(G, X, Y, weight="weight") + assert M[1, 2] == 2 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_centrality.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_centrality.py new file mode 100644 index 0000000000000000000000000000000000000000..19fb5d117be94c688616a394ea3322e93bfa3e00 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_centrality.py @@ -0,0 +1,192 @@ +import pytest + +import networkx as nx +from networkx.algorithms import bipartite + + +class TestBipartiteCentrality: + @classmethod + def setup_class(cls): + cls.P4 = nx.path_graph(4) + cls.K3 = nx.complete_bipartite_graph(3, 3) + cls.C4 = nx.cycle_graph(4) + cls.davis = nx.davis_southern_women_graph() + cls.top_nodes = [ + n for n, d in cls.davis.nodes(data=True) if d["bipartite"] == 0 + ] + + def test_degree_centrality(self): + d = bipartite.degree_centrality(self.P4, [1, 3]) + answer = {0: 0.5, 1: 1.0, 2: 1.0, 3: 0.5} + assert d == answer + d = bipartite.degree_centrality(self.K3, [0, 1, 2]) + answer = {0: 1.0, 1: 1.0, 2: 1.0, 3: 1.0, 4: 1.0, 5: 1.0} + assert d == answer + d = bipartite.degree_centrality(self.C4, [0, 2]) + answer = {0: 1.0, 1: 1.0, 2: 1.0, 3: 1.0} + assert d == answer + + def test_betweenness_centrality(self): + c = bipartite.betweenness_centrality(self.P4, [1, 3]) + answer = {0: 0.0, 1: 1.0, 2: 1.0, 3: 0.0} + assert c == answer + c = bipartite.betweenness_centrality(self.K3, [0, 1, 2]) + answer = {0: 0.125, 1: 0.125, 2: 0.125, 3: 0.125, 4: 0.125, 5: 0.125} + assert c == answer + c = bipartite.betweenness_centrality(self.C4, [0, 2]) + answer = {0: 0.25, 1: 0.25, 2: 0.25, 3: 0.25} + assert c == answer + + def test_closeness_centrality(self): + c = bipartite.closeness_centrality(self.P4, [1, 3]) + answer = {0: 2.0 / 3, 1: 1.0, 2: 1.0, 3: 2.0 / 3} + assert c == answer + c = bipartite.closeness_centrality(self.K3, [0, 1, 2]) + answer = {0: 1.0, 1: 1.0, 2: 1.0, 3: 1.0, 4: 1.0, 5: 1.0} + assert c == answer + c = bipartite.closeness_centrality(self.C4, [0, 2]) + answer = {0: 1.0, 1: 1.0, 2: 1.0, 3: 1.0} + assert c == answer + G = nx.Graph() + G.add_node(0) + G.add_node(1) + c = bipartite.closeness_centrality(G, [0]) + assert c == {0: 0.0, 1: 0.0} + c = bipartite.closeness_centrality(G, [1]) + assert c == {0: 0.0, 1: 0.0} + + def test_bipartite_closeness_centrality_unconnected(self): + G = nx.complete_bipartite_graph(3, 3) + G.add_edge(6, 7) + c = bipartite.closeness_centrality(G, [0, 2, 4, 6], normalized=False) + answer = { + 0: 10.0 / 7, + 2: 10.0 / 7, + 4: 10.0 / 7, + 6: 10.0, + 1: 10.0 / 7, + 3: 10.0 / 7, + 5: 10.0 / 7, + 7: 10.0, + } + assert c == answer + + def test_davis_degree_centrality(self): + G = self.davis + deg = bipartite.degree_centrality(G, self.top_nodes) + answer = { + "E8": 0.78, + "E9": 0.67, + "E7": 0.56, + "Nora Fayette": 0.57, + "Evelyn Jefferson": 0.57, + "Theresa Anderson": 0.57, + "E6": 0.44, + "Sylvia Avondale": 0.50, + "Laura Mandeville": 0.50, + "Brenda Rogers": 0.50, + "Katherina Rogers": 0.43, + "E5": 0.44, + "Helen Lloyd": 0.36, + "E3": 0.33, + "Ruth DeSand": 0.29, + "Verne Sanderson": 0.29, + "E12": 0.33, + "Myra Liddel": 0.29, + "E11": 0.22, + "Eleanor Nye": 0.29, + "Frances Anderson": 0.29, + "Pearl Oglethorpe": 0.21, + "E4": 0.22, + "Charlotte McDowd": 0.29, + "E10": 0.28, + "Olivia Carleton": 0.14, + "Flora Price": 0.14, + "E2": 0.17, + "E1": 0.17, + "Dorothy Murchison": 0.14, + "E13": 0.17, + "E14": 0.17, + } + for node, value in answer.items(): + assert value == pytest.approx(deg[node], abs=1e-2) + + def test_davis_betweenness_centrality(self): + G = self.davis + bet = bipartite.betweenness_centrality(G, self.top_nodes) + answer = { + "E8": 0.24, + "E9": 0.23, + "E7": 0.13, + "Nora Fayette": 0.11, + "Evelyn Jefferson": 0.10, + "Theresa Anderson": 0.09, + "E6": 0.07, + "Sylvia Avondale": 0.07, + "Laura Mandeville": 0.05, + "Brenda Rogers": 0.05, + "Katherina Rogers": 0.05, + "E5": 0.04, + "Helen Lloyd": 0.04, + "E3": 0.02, + "Ruth DeSand": 0.02, + "Verne Sanderson": 0.02, + "E12": 0.02, + "Myra Liddel": 0.02, + "E11": 0.02, + "Eleanor Nye": 0.01, + "Frances Anderson": 0.01, + "Pearl Oglethorpe": 0.01, + "E4": 0.01, + "Charlotte McDowd": 0.01, + "E10": 0.01, + "Olivia Carleton": 0.01, + "Flora Price": 0.01, + "E2": 0.00, + "E1": 0.00, + "Dorothy Murchison": 0.00, + "E13": 0.00, + "E14": 0.00, + } + for node, value in answer.items(): + assert value == pytest.approx(bet[node], abs=1e-2) + + def test_davis_closeness_centrality(self): + G = self.davis + clos = bipartite.closeness_centrality(G, self.top_nodes) + answer = { + "E8": 0.85, + "E9": 0.79, + "E7": 0.73, + "Nora Fayette": 0.80, + "Evelyn Jefferson": 0.80, + "Theresa Anderson": 0.80, + "E6": 0.69, + "Sylvia Avondale": 0.77, + "Laura Mandeville": 0.73, + "Brenda Rogers": 0.73, + "Katherina Rogers": 0.73, + "E5": 0.59, + "Helen Lloyd": 0.73, + "E3": 0.56, + "Ruth DeSand": 0.71, + "Verne Sanderson": 0.71, + "E12": 0.56, + "Myra Liddel": 0.69, + "E11": 0.54, + "Eleanor Nye": 0.67, + "Frances Anderson": 0.67, + "Pearl Oglethorpe": 0.67, + "E4": 0.54, + "Charlotte McDowd": 0.60, + "E10": 0.55, + "Olivia Carleton": 0.59, + "Flora Price": 0.59, + "E2": 0.52, + "E1": 0.52, + "Dorothy Murchison": 0.65, + "E13": 0.52, + "E14": 0.52, + } + for node, value in answer.items(): + assert value == pytest.approx(clos[node], abs=1e-2) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_cluster.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_cluster.py new file mode 100644 index 0000000000000000000000000000000000000000..72e2dbadd64e9e768d1541b2ce742c2b62278929 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_cluster.py @@ -0,0 +1,84 @@ +import pytest + +import networkx as nx +from networkx.algorithms import bipartite +from networkx.algorithms.bipartite.cluster import cc_dot, cc_max, cc_min + + +def test_pairwise_bipartite_cc_functions(): + # Test functions for different kinds of bipartite clustering coefficients + # between pairs of nodes using 3 example graphs from figure 5 p. 40 + # Latapy et al (2008) + G1 = nx.Graph([(0, 2), (0, 3), (0, 4), (0, 5), (0, 6), (1, 5), (1, 6), (1, 7)]) + G2 = nx.Graph([(0, 2), (0, 3), (0, 4), (1, 3), (1, 4), (1, 5)]) + G3 = nx.Graph( + [(0, 2), (0, 3), (0, 4), (0, 5), (0, 6), (1, 5), (1, 6), (1, 7), (1, 8), (1, 9)] + ) + result = { + 0: [1 / 3.0, 2 / 3.0, 2 / 5.0], + 1: [1 / 2.0, 2 / 3.0, 2 / 3.0], + 2: [2 / 8.0, 2 / 5.0, 2 / 5.0], + } + for i, G in enumerate([G1, G2, G3]): + assert bipartite.is_bipartite(G) + assert cc_dot(set(G[0]), set(G[1])) == result[i][0] + assert cc_min(set(G[0]), set(G[1])) == result[i][1] + assert cc_max(set(G[0]), set(G[1])) == result[i][2] + + +def test_star_graph(): + G = nx.star_graph(3) + # all modes are the same + answer = {0: 0, 1: 1, 2: 1, 3: 1} + assert bipartite.clustering(G, mode="dot") == answer + assert bipartite.clustering(G, mode="min") == answer + assert bipartite.clustering(G, mode="max") == answer + + +def test_not_bipartite(): + with pytest.raises(nx.NetworkXError): + bipartite.clustering(nx.complete_graph(4)) + + +def test_bad_mode(): + with pytest.raises(nx.NetworkXError): + bipartite.clustering(nx.path_graph(4), mode="foo") + + +def test_path_graph(): + G = nx.path_graph(4) + answer = {0: 0.5, 1: 0.5, 2: 0.5, 3: 0.5} + assert bipartite.clustering(G, mode="dot") == answer + assert bipartite.clustering(G, mode="max") == answer + answer = {0: 1, 1: 1, 2: 1, 3: 1} + assert bipartite.clustering(G, mode="min") == answer + + +def test_average_path_graph(): + G = nx.path_graph(4) + assert bipartite.average_clustering(G, mode="dot") == 0.5 + assert bipartite.average_clustering(G, mode="max") == 0.5 + assert bipartite.average_clustering(G, mode="min") == 1 + + +def test_ra_clustering_davis(): + G = nx.davis_southern_women_graph() + cc4 = round(bipartite.robins_alexander_clustering(G), 3) + assert cc4 == 0.468 + + +def test_ra_clustering_square(): + G = nx.path_graph(4) + G.add_edge(0, 3) + assert bipartite.robins_alexander_clustering(G) == 1.0 + + +def test_ra_clustering_zero(): + G = nx.Graph() + assert bipartite.robins_alexander_clustering(G) == 0 + G.add_nodes_from(range(4)) + assert bipartite.robins_alexander_clustering(G) == 0 + G.add_edges_from([(0, 1), (2, 3), (3, 4)]) + assert bipartite.robins_alexander_clustering(G) == 0 + G.add_edge(1, 2) + assert bipartite.robins_alexander_clustering(G) == 0 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_covering.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_covering.py new file mode 100644 index 0000000000000000000000000000000000000000..9507e13492acbe505aa3394a24dbc41c095a037c --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_covering.py @@ -0,0 +1,33 @@ +import networkx as nx +from networkx.algorithms import bipartite + + +class TestMinEdgeCover: + """Tests for :func:`networkx.algorithms.bipartite.min_edge_cover`""" + + def test_empty_graph(self): + G = nx.Graph() + assert bipartite.min_edge_cover(G) == set() + + def test_graph_single_edge(self): + G = nx.Graph() + G.add_edge(0, 1) + assert bipartite.min_edge_cover(G) == {(0, 1), (1, 0)} + + def test_bipartite_default(self): + G = nx.Graph() + G.add_nodes_from([1, 2, 3, 4], bipartite=0) + G.add_nodes_from(["a", "b", "c"], bipartite=1) + G.add_edges_from([(1, "a"), (1, "b"), (2, "b"), (2, "c"), (3, "c"), (4, "a")]) + min_cover = bipartite.min_edge_cover(G) + assert nx.is_edge_cover(G, min_cover) + assert len(min_cover) == 8 + + def test_bipartite_explicit(self): + G = nx.Graph() + G.add_nodes_from([1, 2, 3, 4], bipartite=0) + G.add_nodes_from(["a", "b", "c"], bipartite=1) + G.add_edges_from([(1, "a"), (1, "b"), (2, "b"), (2, "c"), (3, "c"), (4, "a")]) + min_cover = bipartite.min_edge_cover(G, bipartite.eppstein_matching) + assert nx.is_edge_cover(G, min_cover) + assert len(min_cover) == 8 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_edgelist.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_edgelist.py new file mode 100644 index 0000000000000000000000000000000000000000..66be8a2f5b3e1f9486594c63015295ad6a270efa --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_edgelist.py @@ -0,0 +1,240 @@ +""" +Unit tests for bipartite edgelists. +""" + +import io + +import pytest + +import networkx as nx +from networkx.algorithms import bipartite +from networkx.utils import edges_equal, graphs_equal, nodes_equal + + +class TestEdgelist: + @classmethod + def setup_class(cls): + cls.G = nx.Graph(name="test") + e = [("a", "b"), ("b", "c"), ("c", "d"), ("d", "e"), ("e", "f"), ("a", "f")] + cls.G.add_edges_from(e) + cls.G.add_nodes_from(["a", "c", "e"], bipartite=0) + cls.G.add_nodes_from(["b", "d", "f"], bipartite=1) + cls.G.add_node("g", bipartite=0) + cls.DG = nx.DiGraph(cls.G) + cls.MG = nx.MultiGraph() + cls.MG.add_edges_from([(1, 2), (1, 2), (1, 2)]) + cls.MG.add_node(1, bipartite=0) + cls.MG.add_node(2, bipartite=1) + + def test_read_edgelist_1(self): + s = b"""\ +# comment line +1 2 +# comment line +2 3 +""" + bytesIO = io.BytesIO(s) + G = bipartite.read_edgelist(bytesIO, nodetype=int) + assert edges_equal(G.edges(), [(1, 2), (2, 3)]) + + def test_read_edgelist_3(self): + s = b"""\ +# comment line +1 2 {'weight':2.0} +# comment line +2 3 {'weight':3.0} +""" + bytesIO = io.BytesIO(s) + G = bipartite.read_edgelist(bytesIO, nodetype=int, data=False) + assert edges_equal(G.edges(), [(1, 2), (2, 3)]) + + bytesIO = io.BytesIO(s) + G = bipartite.read_edgelist(bytesIO, nodetype=int, data=True) + assert edges_equal( + G.edges(data=True), [(1, 2, {"weight": 2.0}), (2, 3, {"weight": 3.0})] + ) + + def test_write_edgelist_1(self): + fh = io.BytesIO() + G = nx.Graph() + G.add_edges_from([(1, 2), (2, 3)]) + G.add_node(1, bipartite=0) + G.add_node(2, bipartite=1) + G.add_node(3, bipartite=0) + bipartite.write_edgelist(G, fh, data=False) + fh.seek(0) + assert fh.read() == b"1 2\n3 2\n" + + def test_write_edgelist_2(self): + fh = io.BytesIO() + G = nx.Graph() + G.add_edges_from([(1, 2), (2, 3)]) + G.add_node(1, bipartite=0) + G.add_node(2, bipartite=1) + G.add_node(3, bipartite=0) + bipartite.write_edgelist(G, fh, data=True) + fh.seek(0) + assert fh.read() == b"1 2 {}\n3 2 {}\n" + + def test_write_edgelist_3(self): + fh = io.BytesIO() + G = nx.Graph() + G.add_edge(1, 2, weight=2.0) + G.add_edge(2, 3, weight=3.0) + G.add_node(1, bipartite=0) + G.add_node(2, bipartite=1) + G.add_node(3, bipartite=0) + bipartite.write_edgelist(G, fh, data=True) + fh.seek(0) + assert fh.read() == b"1 2 {'weight': 2.0}\n3 2 {'weight': 3.0}\n" + + def test_write_edgelist_4(self): + fh = io.BytesIO() + G = nx.Graph() + G.add_edge(1, 2, weight=2.0) + G.add_edge(2, 3, weight=3.0) + G.add_node(1, bipartite=0) + G.add_node(2, bipartite=1) + G.add_node(3, bipartite=0) + bipartite.write_edgelist(G, fh, data=[("weight")]) + fh.seek(0) + assert fh.read() == b"1 2 2.0\n3 2 3.0\n" + + def test_unicode(self, tmp_path): + G = nx.Graph() + name1 = chr(2344) + chr(123) + chr(6543) + name2 = chr(5543) + chr(1543) + chr(324) + G.add_edge(name1, "Radiohead", **{name2: 3}) + G.add_node(name1, bipartite=0) + G.add_node("Radiohead", bipartite=1) + + fname = tmp_path / "edgelist.txt" + bipartite.write_edgelist(G, fname) + H = bipartite.read_edgelist(fname) + assert graphs_equal(G, H) + + def test_latin1_issue(self, tmp_path): + G = nx.Graph() + name1 = chr(2344) + chr(123) + chr(6543) + name2 = chr(5543) + chr(1543) + chr(324) + G.add_edge(name1, "Radiohead", **{name2: 3}) + G.add_node(name1, bipartite=0) + G.add_node("Radiohead", bipartite=1) + + fname = tmp_path / "edgelist.txt" + with pytest.raises(UnicodeEncodeError): + bipartite.write_edgelist(G, fname, encoding="latin-1") + + def test_latin1(self, tmp_path): + G = nx.Graph() + name1 = "Bj" + chr(246) + "rk" + name2 = chr(220) + "ber" + G.add_edge(name1, "Radiohead", **{name2: 3}) + G.add_node(name1, bipartite=0) + G.add_node("Radiohead", bipartite=1) + + fname = tmp_path / "edgelist.txt" + bipartite.write_edgelist(G, fname, encoding="latin-1") + H = bipartite.read_edgelist(fname, encoding="latin-1") + assert graphs_equal(G, H) + + def test_edgelist_graph(self, tmp_path): + G = self.G + fname = tmp_path / "edgelist.txt" + bipartite.write_edgelist(G, fname) + H = bipartite.read_edgelist(fname) + H2 = bipartite.read_edgelist(fname) + assert H is not H2 # they should be different graphs + G.remove_node("g") # isolated nodes are not written in edgelist + assert nodes_equal(list(H), list(G)) + assert edges_equal(list(H.edges()), list(G.edges())) + + def test_edgelist_integers(self, tmp_path): + G = nx.convert_node_labels_to_integers(self.G) + fname = tmp_path / "edgelist.txt" + bipartite.write_edgelist(G, fname) + H = bipartite.read_edgelist(fname, nodetype=int) + # isolated nodes are not written in edgelist + G.remove_nodes_from(list(nx.isolates(G))) + assert nodes_equal(list(H), list(G)) + assert edges_equal(list(H.edges()), list(G.edges())) + + def test_edgelist_multigraph(self, tmp_path): + G = self.MG + fname = tmp_path / "edgelist.txt" + bipartite.write_edgelist(G, fname) + H = bipartite.read_edgelist(fname, nodetype=int, create_using=nx.MultiGraph()) + H2 = bipartite.read_edgelist(fname, nodetype=int, create_using=nx.MultiGraph()) + assert H is not H2 # they should be different graphs + assert nodes_equal(list(H), list(G)) + assert edges_equal(list(H.edges()), list(G.edges())) + + def test_empty_digraph(self): + with pytest.raises(nx.NetworkXNotImplemented): + bytesIO = io.BytesIO() + bipartite.write_edgelist(nx.DiGraph(), bytesIO) + + def test_raise_attribute(self): + with pytest.raises(AttributeError): + G = nx.path_graph(4) + bytesIO = io.BytesIO() + bipartite.write_edgelist(G, bytesIO) + + def test_parse_edgelist(self): + """Tests for conditions specific to + parse_edge_list method""" + + # ignore strings of length less than 2 + lines = ["1 2", "2 3", "3 1", "4", " "] + G = bipartite.parse_edgelist(lines, nodetype=int) + assert list(G.nodes) == [1, 2, 3] + + # Exception raised when node is not convertible + # to specified data type + with pytest.raises(TypeError, match=".*Failed to convert nodes"): + lines = ["a b", "b c", "c a"] + G = bipartite.parse_edgelist(lines, nodetype=int) + + # Exception raised when format of data is not + # convertible to dictionary object + with pytest.raises(TypeError, match=".*Failed to convert edge data"): + lines = ["1 2 3", "2 3 4", "3 1 2"] + G = bipartite.parse_edgelist(lines, nodetype=int) + + # Exception raised when edge data and data + # keys are not of same length + with pytest.raises(IndexError): + lines = ["1 2 3 4", "2 3 4"] + G = bipartite.parse_edgelist( + lines, nodetype=int, data=[("weight", int), ("key", int)] + ) + + # Exception raised when edge data is not + # convertible to specified data type + with pytest.raises(TypeError, match=".*Failed to convert key data"): + lines = ["1 2 3 a", "2 3 4 b"] + G = bipartite.parse_edgelist( + lines, nodetype=int, data=[("weight", int), ("key", int)] + ) + + +def test_bipartite_edgelist_consistent_strip_handling(): + """See gh-7462 + + Input when printed looks like: + + A B interaction 2 + B C interaction 4 + C A interaction + + Note the trailing \\t in the last line, which indicates the existence of + an empty data field. + """ + lines = io.StringIO( + "A\tB\tinteraction\t2\nB\tC\tinteraction\t4\nC\tA\tinteraction\t" + ) + descr = [("type", str), ("weight", str)] + # Should not raise + G = nx.bipartite.parse_edgelist(lines, delimiter="\t", data=descr) + expected = [("A", "B", "2"), ("A", "C", ""), ("B", "C", "4")] + assert sorted(G.edges(data="weight")) == expected diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_extendability.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_extendability.py new file mode 100644 index 0000000000000000000000000000000000000000..17b7124341bd6b0e82b5f01b8e5c6f8d1235efb9 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_extendability.py @@ -0,0 +1,334 @@ +import pytest + +import networkx as nx + + +def test_selfloops_raises(): + G = nx.ladder_graph(3) + G.add_edge(0, 0) + with pytest.raises(nx.NetworkXError, match=".*not bipartite"): + nx.bipartite.maximal_extendability(G) + + +def test_disconnected_raises(): + G = nx.ladder_graph(3) + G.add_node("a") + with pytest.raises(nx.NetworkXError, match=".*not connected"): + nx.bipartite.maximal_extendability(G) + + +def test_not_bipartite_raises(): + G = nx.complete_graph(5) + with pytest.raises(nx.NetworkXError, match=".*not bipartite"): + nx.bipartite.maximal_extendability(G) + + +def test_no_perfect_matching_raises(): + G = nx.Graph([(0, 1), (0, 2)]) + with pytest.raises(nx.NetworkXError, match=".*not contain a perfect matching"): + nx.bipartite.maximal_extendability(G) + + +def test_residual_graph_not_strongly_connected_raises(): + G = nx.Graph([(1, 2), (2, 3), (3, 4)]) + with pytest.raises( + nx.NetworkXError, match="The residual graph of G is not strongly connected" + ): + nx.bipartite.maximal_extendability(G) + + +def test_ladder_graph_is_1(): + G = nx.ladder_graph(3) + assert nx.bipartite.maximal_extendability(G) == 1 + + +def test_cubical_graph_is_2(): + G = nx.cubical_graph() + assert nx.bipartite.maximal_extendability(G) == 2 + + +def test_k_is_3(): + G = nx.Graph( + [ + (1, 6), + (1, 7), + (1, 8), + (1, 9), + (2, 6), + (2, 7), + (2, 8), + (2, 10), + (3, 6), + (3, 8), + (3, 9), + (3, 10), + (4, 7), + (4, 8), + (4, 9), + (4, 10), + (5, 6), + (5, 7), + (5, 9), + (5, 10), + ] + ) + assert nx.bipartite.maximal_extendability(G) == 3 + + +def test_k_is_4(): + G = nx.Graph( + [ + (8, 1), + (8, 2), + (8, 3), + (8, 4), + (8, 5), + (9, 1), + (9, 2), + (9, 3), + (9, 4), + (9, 7), + (10, 1), + (10, 2), + (10, 3), + (10, 4), + (10, 6), + (11, 1), + (11, 2), + (11, 5), + (11, 6), + (11, 7), + (12, 1), + (12, 3), + (12, 5), + (12, 6), + (12, 7), + (13, 2), + (13, 4), + (13, 5), + (13, 6), + (13, 7), + (14, 3), + (14, 4), + (14, 5), + (14, 6), + (14, 7), + ] + ) + assert nx.bipartite.maximal_extendability(G) == 4 + + +def test_k_is_5(): + G = nx.Graph( + [ + (8, 1), + (8, 2), + (8, 3), + (8, 4), + (8, 5), + (8, 6), + (9, 1), + (9, 2), + (9, 3), + (9, 4), + (9, 5), + (9, 7), + (10, 1), + (10, 2), + (10, 3), + (10, 4), + (10, 6), + (10, 7), + (11, 1), + (11, 2), + (11, 3), + (11, 5), + (11, 6), + (11, 7), + (12, 1), + (12, 2), + (12, 4), + (12, 5), + (12, 6), + (12, 7), + (13, 1), + (13, 3), + (13, 4), + (13, 5), + (13, 6), + (13, 7), + (14, 2), + (14, 3), + (14, 4), + (14, 5), + (14, 6), + (14, 7), + ] + ) + assert nx.bipartite.maximal_extendability(G) == 5 + + +def test_k_is_6(): + G = nx.Graph( + [ + (9, 1), + (9, 2), + (9, 3), + (9, 4), + (9, 5), + (9, 6), + (9, 7), + (10, 1), + (10, 2), + (10, 3), + (10, 4), + (10, 5), + (10, 6), + (10, 8), + (11, 1), + (11, 2), + (11, 3), + (11, 4), + (11, 5), + (11, 7), + (11, 8), + (12, 1), + (12, 2), + (12, 3), + (12, 4), + (12, 6), + (12, 7), + (12, 8), + (13, 1), + (13, 2), + (13, 3), + (13, 5), + (13, 6), + (13, 7), + (13, 8), + (14, 1), + (14, 2), + (14, 4), + (14, 5), + (14, 6), + (14, 7), + (14, 8), + (15, 1), + (15, 3), + (15, 4), + (15, 5), + (15, 6), + (15, 7), + (15, 8), + (16, 2), + (16, 3), + (16, 4), + (16, 5), + (16, 6), + (16, 7), + (16, 8), + ] + ) + assert nx.bipartite.maximal_extendability(G) == 6 + + +def test_k_is_7(): + G = nx.Graph( + [ + (1, 11), + (1, 12), + (1, 13), + (1, 14), + (1, 15), + (1, 16), + (1, 17), + (1, 18), + (2, 11), + (2, 12), + (2, 13), + (2, 14), + (2, 15), + (2, 16), + (2, 17), + (2, 19), + (3, 11), + (3, 12), + (3, 13), + (3, 14), + (3, 15), + (3, 16), + (3, 17), + (3, 20), + (4, 11), + (4, 12), + (4, 13), + (4, 14), + (4, 15), + (4, 16), + (4, 17), + (4, 18), + (4, 19), + (4, 20), + (5, 11), + (5, 12), + (5, 13), + (5, 14), + (5, 15), + (5, 16), + (5, 17), + (5, 18), + (5, 19), + (5, 20), + (6, 11), + (6, 12), + (6, 13), + (6, 14), + (6, 15), + (6, 16), + (6, 17), + (6, 18), + (6, 19), + (6, 20), + (7, 11), + (7, 12), + (7, 13), + (7, 14), + (7, 15), + (7, 16), + (7, 17), + (7, 18), + (7, 19), + (7, 20), + (8, 11), + (8, 12), + (8, 13), + (8, 14), + (8, 15), + (8, 16), + (8, 17), + (8, 18), + (8, 19), + (8, 20), + (9, 11), + (9, 12), + (9, 13), + (9, 14), + (9, 15), + (9, 16), + (9, 17), + (9, 18), + (9, 19), + (9, 20), + (10, 11), + (10, 12), + (10, 13), + (10, 14), + (10, 15), + (10, 16), + (10, 17), + (10, 18), + (10, 19), + (10, 20), + ] + ) + assert nx.bipartite.maximal_extendability(G) == 7 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_generators.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_generators.py new file mode 100644 index 0000000000000000000000000000000000000000..3c394db66e651adfc4382e1e8e97aba6f31ac495 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_generators.py @@ -0,0 +1,407 @@ +import numbers + +import pytest + +import networkx as nx + +from ..generators import ( + alternating_havel_hakimi_graph, + complete_bipartite_graph, + configuration_model, + gnmk_random_graph, + havel_hakimi_graph, + preferential_attachment_graph, + random_graph, + reverse_havel_hakimi_graph, +) + +""" +Generators - Bipartite +---------------------- +""" + + +class TestGeneratorsBipartite: + def test_complete_bipartite_graph(self): + G = complete_bipartite_graph(0, 0) + assert nx.is_isomorphic(G, nx.null_graph()) + + for i in [1, 5]: + G = complete_bipartite_graph(i, 0) + assert nx.is_isomorphic(G, nx.empty_graph(i)) + G = complete_bipartite_graph(0, i) + assert nx.is_isomorphic(G, nx.empty_graph(i)) + + G = complete_bipartite_graph(2, 2) + assert nx.is_isomorphic(G, nx.cycle_graph(4)) + + G = complete_bipartite_graph(1, 5) + assert nx.is_isomorphic(G, nx.star_graph(5)) + + G = complete_bipartite_graph(5, 1) + assert nx.is_isomorphic(G, nx.star_graph(5)) + + # complete_bipartite_graph(m1,m2) is a connected graph with + # m1+m2 nodes and m1*m2 edges + for m1, m2 in [(5, 11), (7, 3)]: + G = complete_bipartite_graph(m1, m2) + assert nx.number_of_nodes(G) == m1 + m2 + assert nx.number_of_edges(G) == m1 * m2 + + with pytest.raises(nx.NetworkXError): + complete_bipartite_graph(7, 3, create_using=nx.DiGraph) + with pytest.raises(nx.NetworkXError): + complete_bipartite_graph(7, 3, create_using=nx.MultiDiGraph) + + mG = complete_bipartite_graph(7, 3, create_using=nx.MultiGraph) + assert mG.is_multigraph() + assert sorted(mG.edges()) == sorted(G.edges()) + + mG = complete_bipartite_graph(7, 3, create_using=nx.MultiGraph) + assert mG.is_multigraph() + assert sorted(mG.edges()) == sorted(G.edges()) + + mG = complete_bipartite_graph(7, 3) # default to Graph + assert sorted(mG.edges()) == sorted(G.edges()) + assert not mG.is_multigraph() + assert not mG.is_directed() + + # specify nodes rather than number of nodes + for n1, n2 in [([1, 2], "ab"), (3, 2), (3, "ab"), ("ab", 3)]: + G = complete_bipartite_graph(n1, n2) + if isinstance(n1, numbers.Integral): + if isinstance(n2, numbers.Integral): + n2 = range(n1, n1 + n2) + n1 = range(n1) + elif isinstance(n2, numbers.Integral): + n2 = range(n2) + edges = {(u, v) for u in n1 for v in n2} + assert edges == set(G.edges) + assert G.size() == len(edges) + + # raise when node sets are not distinct + for n1, n2 in [([1, 2], 3), (3, [1, 2]), ("abc", "bcd")]: + pytest.raises(nx.NetworkXError, complete_bipartite_graph, n1, n2) + + def test_configuration_model(self): + aseq = [] + bseq = [] + G = configuration_model(aseq, bseq) + assert len(G) == 0 + + aseq = [0, 0] + bseq = [0, 0] + G = configuration_model(aseq, bseq) + assert len(G) == 4 + assert G.number_of_edges() == 0 + + aseq = [3, 3, 3, 3] + bseq = [2, 2, 2, 2, 2] + pytest.raises(nx.NetworkXError, configuration_model, aseq, bseq) + + aseq = [3, 3, 3, 3] + bseq = [2, 2, 2, 2, 2, 2] + G = configuration_model(aseq, bseq) + assert sorted(d for n, d in G.degree()) == [2, 2, 2, 2, 2, 2, 3, 3, 3, 3] + + aseq = [2, 2, 2, 2, 2, 2] + bseq = [3, 3, 3, 3] + G = configuration_model(aseq, bseq) + assert sorted(d for n, d in G.degree()) == [2, 2, 2, 2, 2, 2, 3, 3, 3, 3] + + aseq = [2, 2, 2, 1, 1, 1] + bseq = [3, 3, 3] + G = configuration_model(aseq, bseq) + assert G.is_multigraph() + assert not G.is_directed() + assert sorted(d for n, d in G.degree()) == [1, 1, 1, 2, 2, 2, 3, 3, 3] + + GU = nx.projected_graph(nx.Graph(G), range(len(aseq))) + assert GU.number_of_nodes() == 6 + + GD = nx.projected_graph(nx.Graph(G), range(len(aseq), len(aseq) + len(bseq))) + assert GD.number_of_nodes() == 3 + + G = reverse_havel_hakimi_graph(aseq, bseq, create_using=nx.Graph) + assert not G.is_multigraph() + assert not G.is_directed() + + pytest.raises( + nx.NetworkXError, configuration_model, aseq, bseq, create_using=nx.DiGraph() + ) + pytest.raises( + nx.NetworkXError, configuration_model, aseq, bseq, create_using=nx.DiGraph + ) + pytest.raises( + nx.NetworkXError, + configuration_model, + aseq, + bseq, + create_using=nx.MultiDiGraph, + ) + + def test_havel_hakimi_graph(self): + aseq = [] + bseq = [] + G = havel_hakimi_graph(aseq, bseq) + assert len(G) == 0 + + aseq = [0, 0] + bseq = [0, 0] + G = havel_hakimi_graph(aseq, bseq) + assert len(G) == 4 + assert G.number_of_edges() == 0 + + aseq = [3, 3, 3, 3] + bseq = [2, 2, 2, 2, 2] + pytest.raises(nx.NetworkXError, havel_hakimi_graph, aseq, bseq) + + bseq = [2, 2, 2, 2, 2, 2] + G = havel_hakimi_graph(aseq, bseq) + assert sorted(d for n, d in G.degree()) == [2, 2, 2, 2, 2, 2, 3, 3, 3, 3] + + aseq = [2, 2, 2, 2, 2, 2] + bseq = [3, 3, 3, 3] + G = havel_hakimi_graph(aseq, bseq) + assert G.is_multigraph() + assert not G.is_directed() + assert sorted(d for n, d in G.degree()) == [2, 2, 2, 2, 2, 2, 3, 3, 3, 3] + + GU = nx.projected_graph(nx.Graph(G), range(len(aseq))) + assert GU.number_of_nodes() == 6 + + GD = nx.projected_graph(nx.Graph(G), range(len(aseq), len(aseq) + len(bseq))) + assert GD.number_of_nodes() == 4 + + G = reverse_havel_hakimi_graph(aseq, bseq, create_using=nx.Graph) + assert not G.is_multigraph() + assert not G.is_directed() + + pytest.raises( + nx.NetworkXError, havel_hakimi_graph, aseq, bseq, create_using=nx.DiGraph + ) + pytest.raises( + nx.NetworkXError, havel_hakimi_graph, aseq, bseq, create_using=nx.DiGraph + ) + pytest.raises( + nx.NetworkXError, + havel_hakimi_graph, + aseq, + bseq, + create_using=nx.MultiDiGraph, + ) + + def test_reverse_havel_hakimi_graph(self): + aseq = [] + bseq = [] + G = reverse_havel_hakimi_graph(aseq, bseq) + assert len(G) == 0 + + aseq = [0, 0] + bseq = [0, 0] + G = reverse_havel_hakimi_graph(aseq, bseq) + assert len(G) == 4 + assert G.number_of_edges() == 0 + + aseq = [3, 3, 3, 3] + bseq = [2, 2, 2, 2, 2] + pytest.raises(nx.NetworkXError, reverse_havel_hakimi_graph, aseq, bseq) + + bseq = [2, 2, 2, 2, 2, 2] + G = reverse_havel_hakimi_graph(aseq, bseq) + assert sorted(d for n, d in G.degree()) == [2, 2, 2, 2, 2, 2, 3, 3, 3, 3] + + aseq = [2, 2, 2, 2, 2, 2] + bseq = [3, 3, 3, 3] + G = reverse_havel_hakimi_graph(aseq, bseq) + assert sorted(d for n, d in G.degree()) == [2, 2, 2, 2, 2, 2, 3, 3, 3, 3] + + aseq = [2, 2, 2, 1, 1, 1] + bseq = [3, 3, 3] + G = reverse_havel_hakimi_graph(aseq, bseq) + assert G.is_multigraph() + assert not G.is_directed() + assert sorted(d for n, d in G.degree()) == [1, 1, 1, 2, 2, 2, 3, 3, 3] + + GU = nx.projected_graph(nx.Graph(G), range(len(aseq))) + assert GU.number_of_nodes() == 6 + + GD = nx.projected_graph(nx.Graph(G), range(len(aseq), len(aseq) + len(bseq))) + assert GD.number_of_nodes() == 3 + + G = reverse_havel_hakimi_graph(aseq, bseq, create_using=nx.Graph) + assert not G.is_multigraph() + assert not G.is_directed() + + pytest.raises( + nx.NetworkXError, + reverse_havel_hakimi_graph, + aseq, + bseq, + create_using=nx.DiGraph, + ) + pytest.raises( + nx.NetworkXError, + reverse_havel_hakimi_graph, + aseq, + bseq, + create_using=nx.DiGraph, + ) + pytest.raises( + nx.NetworkXError, + reverse_havel_hakimi_graph, + aseq, + bseq, + create_using=nx.MultiDiGraph, + ) + + def test_alternating_havel_hakimi_graph(self): + aseq = [] + bseq = [] + G = alternating_havel_hakimi_graph(aseq, bseq) + assert len(G) == 0 + + aseq = [0, 0] + bseq = [0, 0] + G = alternating_havel_hakimi_graph(aseq, bseq) + assert len(G) == 4 + assert G.number_of_edges() == 0 + + aseq = [3, 3, 3, 3] + bseq = [2, 2, 2, 2, 2] + pytest.raises(nx.NetworkXError, alternating_havel_hakimi_graph, aseq, bseq) + + bseq = [2, 2, 2, 2, 2, 2] + G = alternating_havel_hakimi_graph(aseq, bseq) + assert sorted(d for n, d in G.degree()) == [2, 2, 2, 2, 2, 2, 3, 3, 3, 3] + + aseq = [2, 2, 2, 2, 2, 2] + bseq = [3, 3, 3, 3] + G = alternating_havel_hakimi_graph(aseq, bseq) + assert sorted(d for n, d in G.degree()) == [2, 2, 2, 2, 2, 2, 3, 3, 3, 3] + + aseq = [2, 2, 2, 1, 1, 1] + bseq = [3, 3, 3] + G = alternating_havel_hakimi_graph(aseq, bseq) + assert G.is_multigraph() + assert not G.is_directed() + assert sorted(d for n, d in G.degree()) == [1, 1, 1, 2, 2, 2, 3, 3, 3] + + GU = nx.projected_graph(nx.Graph(G), range(len(aseq))) + assert GU.number_of_nodes() == 6 + + GD = nx.projected_graph(nx.Graph(G), range(len(aseq), len(aseq) + len(bseq))) + assert GD.number_of_nodes() == 3 + + G = reverse_havel_hakimi_graph(aseq, bseq, create_using=nx.Graph) + assert not G.is_multigraph() + assert not G.is_directed() + + pytest.raises( + nx.NetworkXError, + alternating_havel_hakimi_graph, + aseq, + bseq, + create_using=nx.DiGraph, + ) + pytest.raises( + nx.NetworkXError, + alternating_havel_hakimi_graph, + aseq, + bseq, + create_using=nx.DiGraph, + ) + pytest.raises( + nx.NetworkXError, + alternating_havel_hakimi_graph, + aseq, + bseq, + create_using=nx.MultiDiGraph, + ) + + def test_preferential_attachment(self): + aseq = [3, 2, 1, 1] + G = preferential_attachment_graph(aseq, 0.5) + assert G.is_multigraph() + assert not G.is_directed() + + G = preferential_attachment_graph(aseq, 0.5, create_using=nx.Graph) + assert not G.is_multigraph() + assert not G.is_directed() + + pytest.raises( + nx.NetworkXError, + preferential_attachment_graph, + aseq, + 0.5, + create_using=nx.DiGraph(), + ) + pytest.raises( + nx.NetworkXError, + preferential_attachment_graph, + aseq, + 0.5, + create_using=nx.DiGraph(), + ) + pytest.raises( + nx.NetworkXError, + preferential_attachment_graph, + aseq, + 0.5, + create_using=nx.DiGraph(), + ) + + def test_random_graph(self): + n = 10 + m = 20 + G = random_graph(n, m, 0.9) + assert len(G) == 30 + assert nx.is_bipartite(G) + X, Y = nx.algorithms.bipartite.sets(G) + assert set(range(n)) == X + assert set(range(n, n + m)) == Y + + def test_random_digraph(self): + n = 10 + m = 20 + G = random_graph(n, m, 0.9, directed=True) + assert len(G) == 30 + assert nx.is_bipartite(G) + X, Y = nx.algorithms.bipartite.sets(G) + assert set(range(n)) == X + assert set(range(n, n + m)) == Y + + def test_gnmk_random_graph(self): + n = 10 + m = 20 + edges = 100 + # set seed because sometimes it is not connected + # which raises an error in bipartite.sets(G) below. + G = gnmk_random_graph(n, m, edges, seed=1234) + assert len(G) == n + m + assert nx.is_bipartite(G) + X, Y = nx.algorithms.bipartite.sets(G) + assert set(range(n)) == X + assert set(range(n, n + m)) == Y + assert edges == len(list(G.edges())) + + def test_gnmk_random_graph_complete(self): + n = 10 + m = 20 + edges = 200 + G = gnmk_random_graph(n, m, edges) + assert len(G) == n + m + assert nx.is_bipartite(G) + X, Y = nx.algorithms.bipartite.sets(G) + assert set(range(n)) == X + assert set(range(n, n + m)) == Y + assert edges == len(list(G.edges())) + + @pytest.mark.parametrize("n", (4, range(4), {0, 1, 2, 3})) + @pytest.mark.parametrize("m", (range(4, 7), {4, 5, 6})) + def test_complete_bipartite_graph_str(self, n, m): + """Ensure G.name is consistent for all inputs accepted by nodes_or_number. + See gh-7396""" + G = nx.complete_bipartite_graph(n, m) + ans = "Graph named 'complete_bipartite_graph(4, 3)' with 7 nodes and 12 edges" + assert str(G) == ans diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_link_analysis.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_link_analysis.py new file mode 100644 index 0000000000000000000000000000000000000000..6e46056eeb0c47fc6fd8ac333e1bcf1f000d6c56 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_link_analysis.py @@ -0,0 +1,218 @@ +import itertools + +import pytest + +import networkx as nx +from networkx.algorithms import bipartite + +pytest.importorskip("scipy") + + +class TestBipartiteLinkAnalysis: + @classmethod + def setup_class(cls): + cls.davis_southern_women_graph = nx.davis_southern_women_graph() + cls.women_bipartite_set = { + node + for node, bipartite in cls.davis_southern_women_graph.nodes( + data="bipartite" + ) + if bipartite == 0 + } + cls.gnmk_random_graph = nx.bipartite.generators.gnmk_random_graph( + 5 * 10**2, 10**2, 5 * 10**2, seed=27 + ) + cls.gnmk_random_graph_top_nodes = { + node + for node, bipartite in cls.gnmk_random_graph.nodes(data="bipartite") + if bipartite == 0 + } + + def test_collaborative_filtering_birank(self): + elist = [ + ("u1", "p1", 5), + ("u2", "p1", 5), + ("u2", "p2", 4), + ("u3", "p1", 3), + ("u3", "p3", 2), + ] + item_recommendation_graph = nx.DiGraph() + item_recommendation_graph.add_weighted_edges_from(elist, weight="rating") + product_nodes = ("p1", "p2", "p3") + u1_query = { + product: rating + for _, product, rating in item_recommendation_graph.edges( + nbunch="u1", data="rating" + ) + } + u1_birank_results = bipartite.birank( + item_recommendation_graph, + product_nodes, + alpha=0.8, + beta=1.0, + top_personalization=u1_query, + weight="rating", + ) + + assert u1_birank_results["p2"] > u1_birank_results["p3"] + + u1_birank_results_unweighted = bipartite.birank( + item_recommendation_graph, + product_nodes, + alpha=0.8, + beta=1.0, + top_personalization=u1_query, + weight=None, + ) + + assert u1_birank_results_unweighted["p2"] == pytest.approx( + u1_birank_results_unweighted["p3"], rel=2e-6 + ) + + def test_davis_birank(self): + scores = bipartite.birank( + self.davis_southern_women_graph, self.women_bipartite_set + ) + answer = { + "Laura Mandeville": 0.07, + "Olivia Carleton": 0.04, + "Frances Anderson": 0.05, + "Pearl Oglethorpe": 0.04, + "Katherina Rogers": 0.06, + "Flora Price": 0.04, + "Dorothy Murchison": 0.04, + "Helen Lloyd": 0.06, + "Theresa Anderson": 0.07, + "Eleanor Nye": 0.05, + "Evelyn Jefferson": 0.07, + "Sylvia Avondale": 0.07, + "Charlotte McDowd": 0.05, + "Verne Sanderson": 0.05, + "Myra Liddel": 0.05, + "Brenda Rogers": 0.07, + "Ruth DeSand": 0.05, + "Nora Fayette": 0.07, + "E8": 0.11, + "E7": 0.09, + "E10": 0.07, + "E9": 0.1, + "E13": 0.05, + "E3": 0.07, + "E12": 0.07, + "E11": 0.06, + "E2": 0.05, + "E5": 0.08, + "E6": 0.08, + "E14": 0.05, + "E4": 0.06, + "E1": 0.05, + } + + for node, value in answer.items(): + assert scores[node] == pytest.approx(value, abs=1e-2) + + def test_davis_birank_with_personalization(self): + women_personalization = {"Laura Mandeville": 1} + scores = bipartite.birank( + self.davis_southern_women_graph, + self.women_bipartite_set, + top_personalization=women_personalization, + ) + answer = { + "Laura Mandeville": 0.29, + "Olivia Carleton": 0.02, + "Frances Anderson": 0.06, + "Pearl Oglethorpe": 0.04, + "Katherina Rogers": 0.04, + "Flora Price": 0.02, + "Dorothy Murchison": 0.03, + "Helen Lloyd": 0.04, + "Theresa Anderson": 0.08, + "Eleanor Nye": 0.05, + "Evelyn Jefferson": 0.09, + "Sylvia Avondale": 0.05, + "Charlotte McDowd": 0.06, + "Verne Sanderson": 0.04, + "Myra Liddel": 0.03, + "Brenda Rogers": 0.08, + "Ruth DeSand": 0.05, + "Nora Fayette": 0.05, + "E8": 0.11, + "E7": 0.1, + "E10": 0.04, + "E9": 0.07, + "E13": 0.03, + "E3": 0.11, + "E12": 0.04, + "E11": 0.03, + "E2": 0.1, + "E5": 0.11, + "E6": 0.1, + "E14": 0.03, + "E4": 0.06, + "E1": 0.1, + } + + for node, value in answer.items(): + assert scores[node] == pytest.approx(value, abs=1e-2) + + def test_birank_empty_bipartite_set(self): + G = nx.Graph() + all_nodes = [1, 2, 3] + G.add_nodes_from(all_nodes) + + # Test with empty bipartite set + with pytest.raises(nx.NetworkXAlgorithmError): + bipartite.birank(G, all_nodes) + + @pytest.mark.parametrize( + "damping_factor,value", itertools.product(["alpha", "beta"], [-0.1, 1.1]) + ) + def test_birank_invalid_alpha_beta(self, damping_factor, value): + kwargs = {damping_factor: value} + with pytest.raises(nx.NetworkXAlgorithmError): + bipartite.birank( + self.davis_southern_women_graph, self.women_bipartite_set, **kwargs + ) + + def test_birank_power_iteration_failed_convergence(self): + with pytest.raises(nx.PowerIterationFailedConvergence): + bipartite.birank( + self.davis_southern_women_graph, self.women_bipartite_set, max_iter=1 + ) + + @pytest.mark.parametrize( + "personalization,alpha,beta", + itertools.product( + [ + # Concentrated case + lambda x: 1000 if x == 0 else 0, + # Uniform case + lambda x: 5, + # Zero case + lambda x: 0, + ], + [i / 2 for i in range(3)], + [i / 2 for i in range(3)], + ), + ) + def test_gnmk_convergence_birank(self, personalization, alpha, beta): + top_personalization_dict = { + node: personalization(node) for node in self.gnmk_random_graph_top_nodes + } + bipartite.birank( + self.gnmk_random_graph, + self.gnmk_random_graph_top_nodes, + top_personalization=top_personalization_dict, + alpha=alpha, + beta=beta, + ) + + def test_negative_personalization(self): + top_personalization_dict = {0: -1} + with pytest.raises(nx.NetworkXAlgorithmError): + bipartite.birank( + self.gnmk_random_graph, + self.gnmk_random_graph_top_nodes, + top_personalization=top_personalization_dict, + ) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_matching.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_matching.py new file mode 100644 index 0000000000000000000000000000000000000000..c24659ea8fcf01ab4a26a6c6959c4935ab9aad2d --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_matching.py @@ -0,0 +1,327 @@ +"""Unit tests for the :mod:`networkx.algorithms.bipartite.matching` module.""" + +import itertools + +import pytest + +import networkx as nx +from networkx.algorithms.bipartite.matching import ( + eppstein_matching, + hopcroft_karp_matching, + maximum_matching, + minimum_weight_full_matching, + to_vertex_cover, +) + + +class TestMatching: + """Tests for bipartite matching algorithms.""" + + def setup_method(self): + """Creates a bipartite graph for use in testing matching algorithms. + + The bipartite graph has a maximum cardinality matching that leaves + vertex 1 and vertex 10 unmatched. The first six numbers are the left + vertices and the next six numbers are the right vertices. + + """ + self.simple_graph = nx.complete_bipartite_graph(2, 3) + self.simple_solution = {0: 2, 1: 3, 2: 0, 3: 1} + + edges = [(0, 7), (0, 8), (2, 6), (2, 9), (3, 8), (4, 8), (4, 9), (5, 11)] + self.top_nodes = set(range(6)) + self.graph = nx.Graph() + self.graph.add_nodes_from(range(12)) + self.graph.add_edges_from(edges) + + # Example bipartite graph from issue 2127 + G = nx.Graph() + G.add_nodes_from( + [ + (1, "C"), + (1, "B"), + (0, "G"), + (1, "F"), + (1, "E"), + (0, "C"), + (1, "D"), + (1, "I"), + (0, "A"), + (0, "D"), + (0, "F"), + (0, "E"), + (0, "H"), + (1, "G"), + (1, "A"), + (0, "I"), + (0, "B"), + (1, "H"), + ] + ) + G.add_edge((1, "C"), (0, "A")) + G.add_edge((1, "B"), (0, "A")) + G.add_edge((0, "G"), (1, "I")) + G.add_edge((0, "G"), (1, "H")) + G.add_edge((1, "F"), (0, "A")) + G.add_edge((1, "F"), (0, "C")) + G.add_edge((1, "F"), (0, "E")) + G.add_edge((1, "E"), (0, "A")) + G.add_edge((1, "E"), (0, "C")) + G.add_edge((0, "C"), (1, "D")) + G.add_edge((0, "C"), (1, "I")) + G.add_edge((0, "C"), (1, "G")) + G.add_edge((0, "C"), (1, "H")) + G.add_edge((1, "D"), (0, "A")) + G.add_edge((1, "I"), (0, "A")) + G.add_edge((1, "I"), (0, "E")) + G.add_edge((0, "A"), (1, "G")) + G.add_edge((0, "A"), (1, "H")) + G.add_edge((0, "E"), (1, "G")) + G.add_edge((0, "E"), (1, "H")) + self.disconnected_graph = G + + def check_match(self, matching): + """Asserts that the matching is what we expect from the bipartite graph + constructed in the :meth:`setup` fixture. + + """ + # For the sake of brevity, rename `matching` to `M`. + M = matching + matched_vertices = frozenset(itertools.chain(*M.items())) + # Assert that the maximum number of vertices (10) is matched. + assert matched_vertices == frozenset(range(12)) - {1, 10} + # Assert that no vertex appears in two edges, or in other words, that + # the matching (u, v) and (v, u) both appear in the matching + # dictionary. + assert all(u == M[M[u]] for u in range(12) if u in M) + + def check_vertex_cover(self, vertices): + """Asserts that the given set of vertices is the vertex cover we + expected from the bipartite graph constructed in the :meth:`setup` + fixture. + + """ + # By Konig's theorem, the number of edges in a maximum matching equals + # the number of vertices in a minimum vertex cover. + assert len(vertices) == 5 + # Assert that the set is truly a vertex cover. + for u, v in self.graph.edges(): + assert u in vertices or v in vertices + # TODO Assert that the vertices are the correct ones. + + def test_eppstein_matching(self): + """Tests that David Eppstein's implementation of the Hopcroft--Karp + algorithm produces a maximum cardinality matching. + + """ + self.check_match(eppstein_matching(self.graph, self.top_nodes)) + + def test_hopcroft_karp_matching(self): + """Tests that the Hopcroft--Karp algorithm produces a maximum + cardinality matching in a bipartite graph. + + """ + self.check_match(hopcroft_karp_matching(self.graph, self.top_nodes)) + + def test_to_vertex_cover(self): + """Test for converting a maximum matching to a minimum vertex cover.""" + matching = maximum_matching(self.graph, self.top_nodes) + vertex_cover = to_vertex_cover(self.graph, matching, self.top_nodes) + self.check_vertex_cover(vertex_cover) + + def test_eppstein_matching_simple(self): + match = eppstein_matching(self.simple_graph) + assert match == self.simple_solution + + def test_hopcroft_karp_matching_simple(self): + match = hopcroft_karp_matching(self.simple_graph) + assert match == self.simple_solution + + def test_eppstein_matching_disconnected(self): + with pytest.raises(nx.AmbiguousSolution): + match = eppstein_matching(self.disconnected_graph) + + def test_hopcroft_karp_matching_disconnected(self): + with pytest.raises(nx.AmbiguousSolution): + match = hopcroft_karp_matching(self.disconnected_graph) + + def test_issue_2127(self): + """Test from issue 2127""" + # Build the example DAG + G = nx.DiGraph() + G.add_edge("A", "C") + G.add_edge("A", "B") + G.add_edge("C", "E") + G.add_edge("C", "D") + G.add_edge("E", "G") + G.add_edge("E", "F") + G.add_edge("G", "I") + G.add_edge("G", "H") + + tc = nx.transitive_closure(G) + btc = nx.Graph() + + # Create a bipartite graph based on the transitive closure of G + for v in tc.nodes(): + btc.add_node((0, v)) + btc.add_node((1, v)) + + for u, v in tc.edges(): + btc.add_edge((0, u), (1, v)) + + top_nodes = {n for n in btc if n[0] == 0} + matching = hopcroft_karp_matching(btc, top_nodes) + vertex_cover = to_vertex_cover(btc, matching, top_nodes) + independent_set = set(G) - {v for _, v in vertex_cover} + assert {"B", "D", "F", "I", "H"} == independent_set + + def test_vertex_cover_issue_2384(self): + G = nx.Graph([(0, 3), (1, 3), (1, 4), (2, 3)]) + matching = maximum_matching(G) + vertex_cover = to_vertex_cover(G, matching) + for u, v in G.edges(): + assert u in vertex_cover or v in vertex_cover + + def test_vertex_cover_issue_3306(self): + G = nx.Graph() + edges = [(0, 2), (1, 0), (1, 1), (1, 2), (2, 2)] + G.add_edges_from([((i, "L"), (j, "R")) for i, j in edges]) + + matching = maximum_matching(G) + vertex_cover = to_vertex_cover(G, matching) + for u, v in G.edges(): + assert u in vertex_cover or v in vertex_cover + + def test_unorderable_nodes(self): + a = object() + b = object() + c = object() + d = object() + e = object() + G = nx.Graph([(a, d), (b, d), (b, e), (c, d)]) + matching = maximum_matching(G) + vertex_cover = to_vertex_cover(G, matching) + for u, v in G.edges(): + assert u in vertex_cover or v in vertex_cover + + +def test_eppstein_matching(): + """Test in accordance to issue #1927""" + G = nx.Graph() + G.add_nodes_from(["a", 2, 3, 4], bipartite=0) + G.add_nodes_from([1, "b", "c"], bipartite=1) + G.add_edges_from([("a", 1), ("a", "b"), (2, "b"), (2, "c"), (3, "c"), (4, 1)]) + matching = eppstein_matching(G) + assert len(matching) == len(maximum_matching(G)) + assert all(x in set(matching.keys()) for x in set(matching.values())) + + +class TestMinimumWeightFullMatching: + @classmethod + def setup_class(cls): + pytest.importorskip("scipy") + + def test_minimum_weight_full_matching_incomplete_graph(self): + B = nx.Graph() + B.add_nodes_from([1, 2], bipartite=0) + B.add_nodes_from([3, 4], bipartite=1) + B.add_edge(1, 4, weight=100) + B.add_edge(2, 3, weight=100) + B.add_edge(2, 4, weight=50) + matching = minimum_weight_full_matching(B) + assert matching == {1: 4, 2: 3, 4: 1, 3: 2} + + def test_minimum_weight_full_matching_with_no_full_matching(self): + B = nx.Graph() + B.add_nodes_from([1, 2, 3], bipartite=0) + B.add_nodes_from([4, 5, 6], bipartite=1) + B.add_edge(1, 4, weight=100) + B.add_edge(2, 4, weight=100) + B.add_edge(3, 4, weight=50) + B.add_edge(3, 5, weight=50) + B.add_edge(3, 6, weight=50) + with pytest.raises(ValueError): + minimum_weight_full_matching(B) + + def test_minimum_weight_full_matching_square(self): + G = nx.complete_bipartite_graph(3, 3) + G.add_edge(0, 3, weight=400) + G.add_edge(0, 4, weight=150) + G.add_edge(0, 5, weight=400) + G.add_edge(1, 3, weight=400) + G.add_edge(1, 4, weight=450) + G.add_edge(1, 5, weight=600) + G.add_edge(2, 3, weight=300) + G.add_edge(2, 4, weight=225) + G.add_edge(2, 5, weight=300) + matching = minimum_weight_full_matching(G) + assert matching == {0: 4, 1: 3, 2: 5, 4: 0, 3: 1, 5: 2} + + def test_minimum_weight_full_matching_smaller_left(self): + G = nx.complete_bipartite_graph(3, 4) + G.add_edge(0, 3, weight=400) + G.add_edge(0, 4, weight=150) + G.add_edge(0, 5, weight=400) + G.add_edge(0, 6, weight=1) + G.add_edge(1, 3, weight=400) + G.add_edge(1, 4, weight=450) + G.add_edge(1, 5, weight=600) + G.add_edge(1, 6, weight=2) + G.add_edge(2, 3, weight=300) + G.add_edge(2, 4, weight=225) + G.add_edge(2, 5, weight=290) + G.add_edge(2, 6, weight=3) + matching = minimum_weight_full_matching(G) + assert matching == {0: 4, 1: 6, 2: 5, 4: 0, 5: 2, 6: 1} + + def test_minimum_weight_full_matching_smaller_top_nodes_right(self): + G = nx.complete_bipartite_graph(3, 4) + G.add_edge(0, 3, weight=400) + G.add_edge(0, 4, weight=150) + G.add_edge(0, 5, weight=400) + G.add_edge(0, 6, weight=1) + G.add_edge(1, 3, weight=400) + G.add_edge(1, 4, weight=450) + G.add_edge(1, 5, weight=600) + G.add_edge(1, 6, weight=2) + G.add_edge(2, 3, weight=300) + G.add_edge(2, 4, weight=225) + G.add_edge(2, 5, weight=290) + G.add_edge(2, 6, weight=3) + matching = minimum_weight_full_matching(G, top_nodes=[3, 4, 5, 6]) + assert matching == {0: 4, 1: 6, 2: 5, 4: 0, 5: 2, 6: 1} + + def test_minimum_weight_full_matching_smaller_right(self): + G = nx.complete_bipartite_graph(4, 3) + G.add_edge(0, 4, weight=400) + G.add_edge(0, 5, weight=400) + G.add_edge(0, 6, weight=300) + G.add_edge(1, 4, weight=150) + G.add_edge(1, 5, weight=450) + G.add_edge(1, 6, weight=225) + G.add_edge(2, 4, weight=400) + G.add_edge(2, 5, weight=600) + G.add_edge(2, 6, weight=290) + G.add_edge(3, 4, weight=1) + G.add_edge(3, 5, weight=2) + G.add_edge(3, 6, weight=3) + matching = minimum_weight_full_matching(G) + assert matching == {1: 4, 2: 6, 3: 5, 4: 1, 5: 3, 6: 2} + + def test_minimum_weight_full_matching_negative_weights(self): + G = nx.complete_bipartite_graph(2, 2) + G.add_edge(0, 2, weight=-2) + G.add_edge(0, 3, weight=0.2) + G.add_edge(1, 2, weight=-2) + G.add_edge(1, 3, weight=0.3) + matching = minimum_weight_full_matching(G) + assert matching == {0: 3, 1: 2, 2: 1, 3: 0} + + def test_minimum_weight_full_matching_different_weight_key(self): + G = nx.complete_bipartite_graph(2, 2) + G.add_edge(0, 2, mass=2) + G.add_edge(0, 3, mass=0.2) + G.add_edge(1, 2, mass=1) + G.add_edge(1, 3, mass=2) + matching = minimum_weight_full_matching(G, weight="mass") + assert matching == {0: 3, 1: 2, 2: 1, 3: 0} diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_matrix.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_matrix.py new file mode 100644 index 0000000000000000000000000000000000000000..0d8aa1a881edb7ffa20ca5f4450e69a904e6d9ce --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_matrix.py @@ -0,0 +1,138 @@ +import itertools + +import pytest + +import networkx as nx +from networkx.algorithms import bipartite +from networkx.utils import edges_equal + +np = pytest.importorskip("numpy") +sp = pytest.importorskip("scipy") + + +class TestBiadjacencyMatrix: + def test_biadjacency_matrix_weight(self): + G = nx.path_graph(5) + G.add_edge(0, 1, weight=2, other=4) + X = [1, 3] + Y = [0, 2, 4] + M = bipartite.biadjacency_matrix(G, X, weight="weight") + assert M[0, 0] == 2 + M = bipartite.biadjacency_matrix(G, X, weight="other") + assert M[0, 0] == 4 + + def test_biadjacency_matrix(self): + tops = [2, 5, 10] + bots = [5, 10, 15] + for i in range(len(tops)): + G = bipartite.random_graph(tops[i], bots[i], 0.2) + top = [n for n, d in G.nodes(data=True) if d["bipartite"] == 0] + M = bipartite.biadjacency_matrix(G, top) + assert M.shape[0] == tops[i] + assert M.shape[1] == bots[i] + + def test_biadjacency_matrix_order(self): + G = nx.path_graph(5) + G.add_edge(0, 1, weight=2) + X = [3, 1] + Y = [4, 2, 0] + M = bipartite.biadjacency_matrix(G, X, Y, weight="weight") + assert M[1, 2] == 2 + + def test_biadjacency_matrix_empty_graph(self): + G = nx.empty_graph(2) + M = nx.bipartite.biadjacency_matrix(G, [0]) + assert np.array_equal(M.toarray(), np.array([[0]])) + + def test_null_graph(self): + with pytest.raises(nx.NetworkXError): + bipartite.biadjacency_matrix(nx.Graph(), []) + + def test_empty_graph(self): + with pytest.raises(nx.NetworkXError): + bipartite.biadjacency_matrix(nx.Graph([(1, 0)]), []) + + def test_duplicate_row(self): + with pytest.raises(nx.NetworkXError): + bipartite.biadjacency_matrix(nx.Graph([(1, 0)]), [1, 1]) + + def test_duplicate_col(self): + with pytest.raises(nx.NetworkXError): + bipartite.biadjacency_matrix(nx.Graph([(1, 0)]), [0], [1, 1]) + + def test_format_keyword(self): + with pytest.raises(nx.NetworkXError): + bipartite.biadjacency_matrix(nx.Graph([(1, 0)]), [0], format="foo") + + def test_from_biadjacency_roundtrip(self): + B1 = nx.path_graph(5) + M = bipartite.biadjacency_matrix(B1, [0, 2, 4]) + B2 = bipartite.from_biadjacency_matrix(M) + assert nx.is_isomorphic(B1, B2) + + def test_from_biadjacency_weight(self): + M = sp.sparse.csc_array([[1, 2], [0, 3]]) + B = bipartite.from_biadjacency_matrix(M) + assert edges_equal(B.edges(), [(0, 2), (0, 3), (1, 3)]) + B = bipartite.from_biadjacency_matrix(M, edge_attribute="weight") + e = [(0, 2, {"weight": 1}), (0, 3, {"weight": 2}), (1, 3, {"weight": 3})] + assert edges_equal(B.edges(data=True), e) + + def test_from_biadjacency_multigraph(self): + M = sp.sparse.csc_array([[1, 2], [0, 3]]) + B = bipartite.from_biadjacency_matrix(M, create_using=nx.MultiGraph()) + assert edges_equal(B.edges(), [(0, 2), (0, 3), (0, 3), (1, 3), (1, 3), (1, 3)]) + + @pytest.mark.parametrize( + "row_order,column_order,create_using", + itertools.product( + (None, ("a", "b"), (25, (0, 5, 10))), + (None, ("c", "d"), (26, (0, 5, 10))), + (nx.Graph, nx.DiGraph, nx.MultiGraph, nx.MultiDiGraph), + ), + ) + def test_from_biadjacency_nodelist(self, row_order, column_order, create_using): + M = sp.sparse.csc_array([[1, 2], [0, 3]]) + B_default = bipartite.from_biadjacency_matrix(M, create_using=create_using()) + B = bipartite.from_biadjacency_matrix( + M, + create_using=create_using(), + row_order=row_order, + column_order=column_order, + ) + + row_order = row_order if row_order else list(range(M.shape[0])) + column_order = ( + column_order + if column_order + else list(range(M.shape[0], M.shape[0] + M.shape[1])) + ) + + top_map = dict(enumerate(row_order)) + + bottom_map = {idx + M.shape[0]: node for idx, node in enumerate(column_order)} + + def map_edges(edges): + return [(top_map[u], bottom_map[v]) for u, v in edges] + + mapped_edges = map_edges(B_default.edges()) + assert edges_equal(mapped_edges, B.edges()) + + def test_invalid_from_biadjacency_nodelist(self): + M = sp.sparse.csc_array([[1, 2], [0, 3]]) + # For when top nodelist has the wrong length + row_order_invalid = ["a", "b", "c"] + # For when bottom nodelist has the wrong length + column_order_invalid = ["c", "d", "e"] + with pytest.raises(ValueError): + bipartite.from_biadjacency_matrix( + M, + create_using=nx.MultiGraph(), + row_order=row_order_invalid, + ) + with pytest.raises(ValueError): + bipartite.from_biadjacency_matrix( + M, + create_using=nx.MultiGraph(), + column_order=column_order_invalid, + ) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_project.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_project.py new file mode 100644 index 0000000000000000000000000000000000000000..bf1c5cbeb69e84ae1f720446ec60e7d2f3aae8c9 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_project.py @@ -0,0 +1,409 @@ +import pytest + +import networkx as nx +from networkx.algorithms import bipartite +from networkx.utils import edges_equal, nodes_equal + + +class TestBipartiteProject: + def test_path_projected_graph(self): + G = nx.path_graph(4) + P = bipartite.projected_graph(G, [1, 3]) + assert nodes_equal(list(P), [1, 3]) + assert edges_equal(list(P.edges()), [(1, 3)]) + P = bipartite.projected_graph(G, [0, 2]) + assert nodes_equal(list(P), [0, 2]) + assert edges_equal(list(P.edges()), [(0, 2)]) + G = nx.MultiGraph([(0, 1)]) + with pytest.raises(nx.NetworkXError, match="not defined for multigraphs"): + bipartite.projected_graph(G, [0]) + + def test_path_projected_properties_graph(self): + G = nx.path_graph(4) + G.add_node(1, name="one") + G.add_node(2, name="two") + P = bipartite.projected_graph(G, [1, 3]) + assert nodes_equal(list(P), [1, 3]) + assert edges_equal(list(P.edges()), [(1, 3)]) + assert P.nodes[1]["name"] == G.nodes[1]["name"] + P = bipartite.projected_graph(G, [0, 2]) + assert nodes_equal(list(P), [0, 2]) + assert edges_equal(list(P.edges()), [(0, 2)]) + assert P.nodes[2]["name"] == G.nodes[2]["name"] + + def test_path_collaboration_projected_graph(self): + G = nx.path_graph(4) + P = bipartite.collaboration_weighted_projected_graph(G, [1, 3]) + assert nodes_equal(list(P), [1, 3]) + assert edges_equal(list(P.edges()), [(1, 3)]) + P[1][3]["weight"] = 1 + P = bipartite.collaboration_weighted_projected_graph(G, [0, 2]) + assert nodes_equal(list(P), [0, 2]) + assert edges_equal(list(P.edges()), [(0, 2)]) + P[0][2]["weight"] = 1 + + def test_directed_path_collaboration_projected_graph(self): + G = nx.DiGraph() + nx.add_path(G, range(4)) + P = bipartite.collaboration_weighted_projected_graph(G, [1, 3]) + assert nodes_equal(list(P), [1, 3]) + assert edges_equal(list(P.edges()), [(1, 3)]) + P[1][3]["weight"] = 1 + P = bipartite.collaboration_weighted_projected_graph(G, [0, 2]) + assert nodes_equal(list(P), [0, 2]) + assert edges_equal(list(P.edges()), [(0, 2)]) + P[0][2]["weight"] = 1 + + def test_path_weighted_projected_graph(self): + G = nx.path_graph(4) + + with pytest.raises(nx.NetworkXAlgorithmError): + bipartite.weighted_projected_graph(G, [1, 2, 3, 3]) + + P = bipartite.weighted_projected_graph(G, [1, 3]) + assert nodes_equal(list(P), [1, 3]) + assert edges_equal(list(P.edges()), [(1, 3)]) + P[1][3]["weight"] = 1 + P = bipartite.weighted_projected_graph(G, [0, 2]) + assert nodes_equal(list(P), [0, 2]) + assert edges_equal(list(P.edges()), [(0, 2)]) + P[0][2]["weight"] = 1 + + def test_digraph_weighted_projection(self): + G = nx.DiGraph([(0, 1), (1, 2), (2, 3), (3, 4)]) + P = bipartite.overlap_weighted_projected_graph(G, [1, 3]) + assert nx.get_edge_attributes(P, "weight") == {(1, 3): 1.0} + assert len(P) == 2 + + def test_path_weighted_projected_directed_graph(self): + G = nx.DiGraph() + nx.add_path(G, range(4)) + P = bipartite.weighted_projected_graph(G, [1, 3]) + assert nodes_equal(list(P), [1, 3]) + assert edges_equal(list(P.edges()), [(1, 3)], directed=True) + P[1][3]["weight"] = 1 + P = bipartite.weighted_projected_graph(G, [0, 2]) + assert nodes_equal(list(P), [0, 2]) + assert edges_equal(list(P.edges()), [(0, 2)], directed=True) + P[0][2]["weight"] = 1 + + def test_star_projected_graph(self): + G = nx.star_graph(3) + P = bipartite.projected_graph(G, [1, 2, 3]) + assert nodes_equal(list(P), [1, 2, 3]) + assert edges_equal(list(P.edges()), [(1, 2), (1, 3), (2, 3)]) + P = bipartite.weighted_projected_graph(G, [1, 2, 3]) + assert nodes_equal(list(P), [1, 2, 3]) + assert edges_equal(list(P.edges()), [(1, 2), (1, 3), (2, 3)]) + + P = bipartite.projected_graph(G, [0]) + assert nodes_equal(list(P), [0]) + assert edges_equal(list(P.edges()), []) + + def test_project_multigraph(self): + G = nx.Graph() + G.add_edge("a", 1) + G.add_edge("b", 1) + G.add_edge("a", 2) + G.add_edge("b", 2) + P = bipartite.projected_graph(G, "ab") + assert edges_equal(list(P.edges()), [("a", "b")]) + P = bipartite.weighted_projected_graph(G, "ab") + assert edges_equal(list(P.edges()), [("a", "b")]) + P = bipartite.projected_graph(G, "ab", multigraph=True) + assert edges_equal(list(P.edges()), [("a", "b"), ("a", "b")]) + + def test_project_collaboration(self): + G = nx.Graph() + G.add_edge("a", 1) + G.add_edge("b", 1) + G.add_edge("b", 2) + G.add_edge("c", 2) + G.add_edge("c", 3) + G.add_edge("c", 4) + G.add_edge("b", 4) + P = bipartite.collaboration_weighted_projected_graph(G, "abc") + assert P["a"]["b"]["weight"] == 1 + assert P["b"]["c"]["weight"] == 2 + + def test_directed_projection(self): + G = nx.DiGraph() + G.add_edge("A", 1) + G.add_edge(1, "B") + G.add_edge("A", 2) + G.add_edge("B", 2) + P = bipartite.projected_graph(G, "AB") + assert edges_equal(list(P.edges()), [("A", "B")], directed=True) + P = bipartite.weighted_projected_graph(G, "AB") + assert edges_equal(list(P.edges()), [("A", "B")], directed=True) + assert P["A"]["B"]["weight"] == 1 + + P = bipartite.projected_graph(G, "AB", multigraph=True) + assert edges_equal(list(P.edges()), [("A", "B")], directed=True) + + G = nx.DiGraph() + G.add_edge("A", 1) + G.add_edge(1, "B") + G.add_edge("A", 2) + G.add_edge(2, "B") + P = bipartite.projected_graph(G, "AB") + assert edges_equal(list(P.edges()), [("A", "B")], directed=True) + P = bipartite.weighted_projected_graph(G, "AB") + assert edges_equal(list(P.edges()), [("A", "B")], directed=True) + assert P["A"]["B"]["weight"] == 2 + + P = bipartite.projected_graph(G, "AB", multigraph=True) + assert edges_equal(list(P.edges()), [("A", "B"), ("A", "B")], directed=True) + + +class TestBipartiteWeightedProjection: + @classmethod + def setup_class(cls): + # Tore Opsahl's example + # http://toreopsahl.com/2009/05/01/projecting-two-mode-networks-onto-weighted-one-mode-networks/ + cls.G = nx.Graph() + cls.G.add_edge("A", 1) + cls.G.add_edge("A", 2) + cls.G.add_edge("B", 1) + cls.G.add_edge("B", 2) + cls.G.add_edge("B", 3) + cls.G.add_edge("B", 4) + cls.G.add_edge("B", 5) + cls.G.add_edge("C", 1) + cls.G.add_edge("D", 3) + cls.G.add_edge("E", 4) + cls.G.add_edge("E", 5) + cls.G.add_edge("E", 6) + cls.G.add_edge("F", 6) + # Graph based on figure 6 from Newman (2001) + cls.N = nx.Graph() + cls.N.add_edge("A", 1) + cls.N.add_edge("A", 2) + cls.N.add_edge("A", 3) + cls.N.add_edge("B", 1) + cls.N.add_edge("B", 2) + cls.N.add_edge("B", 3) + cls.N.add_edge("C", 1) + cls.N.add_edge("D", 1) + cls.N.add_edge("E", 3) + + def test_project_weighted_shared(self): + edges = [ + ("A", "B", 2), + ("A", "C", 1), + ("B", "C", 1), + ("B", "D", 1), + ("B", "E", 2), + ("E", "F", 1), + ] + Panswer = nx.Graph() + Panswer.add_weighted_edges_from(edges) + P = bipartite.weighted_projected_graph(self.G, "ABCDEF") + assert edges_equal(list(P.edges()), Panswer.edges()) + for u, v in list(P.edges()): + assert P[u][v]["weight"] == Panswer[u][v]["weight"] + + edges = [ + ("A", "B", 3), + ("A", "E", 1), + ("A", "C", 1), + ("A", "D", 1), + ("B", "E", 1), + ("B", "C", 1), + ("B", "D", 1), + ("C", "D", 1), + ] + Panswer = nx.Graph() + Panswer.add_weighted_edges_from(edges) + P = bipartite.weighted_projected_graph(self.N, "ABCDE") + assert edges_equal(list(P.edges()), Panswer.edges()) + for u, v in list(P.edges()): + assert P[u][v]["weight"] == Panswer[u][v]["weight"] + + def test_project_weighted_newman(self): + edges = [ + ("A", "B", 1.5), + ("A", "C", 0.5), + ("B", "C", 0.5), + ("B", "D", 1), + ("B", "E", 2), + ("E", "F", 1), + ] + Panswer = nx.Graph() + Panswer.add_weighted_edges_from(edges) + P = bipartite.collaboration_weighted_projected_graph(self.G, "ABCDEF") + assert edges_equal(list(P.edges()), Panswer.edges()) + for u, v in list(P.edges()): + assert P[u][v]["weight"] == Panswer[u][v]["weight"] + + edges = [ + ("A", "B", 11 / 6.0), + ("A", "E", 1 / 2.0), + ("A", "C", 1 / 3.0), + ("A", "D", 1 / 3.0), + ("B", "E", 1 / 2.0), + ("B", "C", 1 / 3.0), + ("B", "D", 1 / 3.0), + ("C", "D", 1 / 3.0), + ] + Panswer = nx.Graph() + Panswer.add_weighted_edges_from(edges) + P = bipartite.collaboration_weighted_projected_graph(self.N, "ABCDE") + assert edges_equal(list(P.edges()), Panswer.edges()) + for u, v in list(P.edges()): + assert P[u][v]["weight"] == Panswer[u][v]["weight"] + + def test_project_weighted_ratio(self): + edges = [ + ("A", "B", 2 / 6.0), + ("A", "C", 1 / 6.0), + ("B", "C", 1 / 6.0), + ("B", "D", 1 / 6.0), + ("B", "E", 2 / 6.0), + ("E", "F", 1 / 6.0), + ] + Panswer = nx.Graph() + Panswer.add_weighted_edges_from(edges) + P = bipartite.weighted_projected_graph(self.G, "ABCDEF", ratio=True) + assert edges_equal(list(P.edges()), Panswer.edges()) + for u, v in list(P.edges()): + assert P[u][v]["weight"] == Panswer[u][v]["weight"] + + edges = [ + ("A", "B", 3 / 3.0), + ("A", "E", 1 / 3.0), + ("A", "C", 1 / 3.0), + ("A", "D", 1 / 3.0), + ("B", "E", 1 / 3.0), + ("B", "C", 1 / 3.0), + ("B", "D", 1 / 3.0), + ("C", "D", 1 / 3.0), + ] + Panswer = nx.Graph() + Panswer.add_weighted_edges_from(edges) + P = bipartite.weighted_projected_graph(self.N, "ABCDE", ratio=True) + assert edges_equal(list(P.edges()), Panswer.edges()) + for u, v in list(P.edges()): + assert P[u][v]["weight"] == Panswer[u][v]["weight"] + + def test_project_weighted_overlap(self): + edges = [ + ("A", "B", 2 / 2.0), + ("A", "C", 1 / 1.0), + ("B", "C", 1 / 1.0), + ("B", "D", 1 / 1.0), + ("B", "E", 2 / 3.0), + ("E", "F", 1 / 1.0), + ] + Panswer = nx.Graph() + Panswer.add_weighted_edges_from(edges) + P = bipartite.overlap_weighted_projected_graph(self.G, "ABCDEF", jaccard=False) + assert edges_equal(list(P.edges()), Panswer.edges()) + for u, v in list(P.edges()): + assert P[u][v]["weight"] == Panswer[u][v]["weight"] + + edges = [ + ("A", "B", 3 / 3.0), + ("A", "E", 1 / 1.0), + ("A", "C", 1 / 1.0), + ("A", "D", 1 / 1.0), + ("B", "E", 1 / 1.0), + ("B", "C", 1 / 1.0), + ("B", "D", 1 / 1.0), + ("C", "D", 1 / 1.0), + ] + Panswer = nx.Graph() + Panswer.add_weighted_edges_from(edges) + P = bipartite.overlap_weighted_projected_graph(self.N, "ABCDE", jaccard=False) + assert edges_equal(list(P.edges()), Panswer.edges()) + for u, v in list(P.edges()): + assert P[u][v]["weight"] == Panswer[u][v]["weight"] + + def test_project_weighted_jaccard(self): + edges = [ + ("A", "B", 2 / 5.0), + ("A", "C", 1 / 2.0), + ("B", "C", 1 / 5.0), + ("B", "D", 1 / 5.0), + ("B", "E", 2 / 6.0), + ("E", "F", 1 / 3.0), + ] + Panswer = nx.Graph() + Panswer.add_weighted_edges_from(edges) + P = bipartite.overlap_weighted_projected_graph(self.G, "ABCDEF") + assert edges_equal(list(P.edges()), Panswer.edges()) + for u, v in list(P.edges()): + assert P[u][v]["weight"] == Panswer[u][v]["weight"] + + edges = [ + ("A", "B", 3 / 3.0), + ("A", "E", 1 / 3.0), + ("A", "C", 1 / 3.0), + ("A", "D", 1 / 3.0), + ("B", "E", 1 / 3.0), + ("B", "C", 1 / 3.0), + ("B", "D", 1 / 3.0), + ("C", "D", 1 / 1.0), + ] + Panswer = nx.Graph() + Panswer.add_weighted_edges_from(edges) + P = bipartite.overlap_weighted_projected_graph(self.N, "ABCDE") + assert edges_equal(list(P.edges()), Panswer.edges()) + for u, v in P.edges(): + assert P[u][v]["weight"] == Panswer[u][v]["weight"] + + def test_generic_weighted_projected_graph_simple(self): + def shared(G, u, v): + return len(set(G[u]) & set(G[v])) + + B = nx.path_graph(5) + G = bipartite.generic_weighted_projected_graph( + B, [0, 2, 4], weight_function=shared + ) + assert nodes_equal(list(G), [0, 2, 4]) + assert edges_equal( + list(G.edges(data=True)), + [(0, 2, {"weight": 1}), (2, 4, {"weight": 1})], + ) + + G = bipartite.generic_weighted_projected_graph(B, [0, 2, 4]) + assert nodes_equal(list(G), [0, 2, 4]) + assert edges_equal( + list(G.edges(data=True)), + [(0, 2, {"weight": 1}), (2, 4, {"weight": 1})], + ) + B = nx.DiGraph() + nx.add_path(B, range(5)) + G = bipartite.generic_weighted_projected_graph(B, [0, 2, 4]) + assert nodes_equal(list(G), [0, 2, 4]) + assert edges_equal( + list(G.edges(data=True)), + [(0, 2, {"weight": 1}), (2, 4, {"weight": 1})], + directed=True, + ) + + def test_generic_weighted_projected_graph_custom(self): + def jaccard(G, u, v): + unbrs = set(G[u]) + vnbrs = set(G[v]) + return len(unbrs & vnbrs) / len(unbrs | vnbrs) + + def my_weight(G, u, v, weight="weight"): + w = 0 + for nbr in set(G[u]) & set(G[v]): + w += G.edges[u, nbr].get(weight, 1) + G.edges[v, nbr].get(weight, 1) + return w + + B = nx.bipartite.complete_bipartite_graph(2, 2) + for i, (u, v) in enumerate(B.edges()): + B.edges[u, v]["weight"] = i + 1 + G = bipartite.generic_weighted_projected_graph( + B, [0, 1], weight_function=jaccard + ) + assert edges_equal(list(G.edges(data=True)), [(0, 1, {"weight": 1.0})]) + G = bipartite.generic_weighted_projected_graph( + B, [0, 1], weight_function=my_weight + ) + assert edges_equal(list(G.edges(data=True)), [(0, 1, {"weight": 10})]) + G = bipartite.generic_weighted_projected_graph(B, [0, 1]) + assert edges_equal(list(G.edges(data=True)), [(0, 1, {"weight": 2})]) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_redundancy.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_redundancy.py new file mode 100644 index 0000000000000000000000000000000000000000..8d979db8d8599b1ec59c2123d258bc29efaa4c9b --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_redundancy.py @@ -0,0 +1,35 @@ +"""Unit tests for the :mod:`networkx.algorithms.bipartite.redundancy` module.""" + +import pytest + +from networkx import NetworkXError, cycle_graph +from networkx.algorithms.bipartite import complete_bipartite_graph, node_redundancy + + +def test_no_redundant_nodes(): + G = complete_bipartite_graph(2, 2) + + # when nodes is None + rc = node_redundancy(G) + assert all(redundancy == 1 for redundancy in rc.values()) + + # when set of nodes is specified + rc = node_redundancy(G, (2, 3)) + assert rc == {2: 1.0, 3: 1.0} + + +def test_redundant_nodes(): + G = cycle_graph(6) + edge = {0, 3} + G.add_edge(*edge) + redundancy = node_redundancy(G) + for v in edge: + assert redundancy[v] == 2 / 3 + for v in set(G) - edge: + assert redundancy[v] == 1 + + +def test_not_enough_neighbors(): + with pytest.raises(NetworkXError): + G = complete_bipartite_graph(1, 2) + node_redundancy(G) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_spectral_bipartivity.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_spectral_bipartivity.py new file mode 100644 index 0000000000000000000000000000000000000000..b940649793d40aa73606914f3d48348761c329df --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_spectral_bipartivity.py @@ -0,0 +1,80 @@ +import pytest + +pytest.importorskip("scipy") + +import networkx as nx +from networkx.algorithms.bipartite import spectral_bipartivity as sb + +# Examples from Figure 1 +# E. Estrada and J. A. Rodríguez-Velázquez, "Spectral measures of +# bipartivity in complex networks", PhysRev E 72, 046105 (2005) + + +class TestSpectralBipartivity: + def test_star_like(self): + # star-like + + G = nx.star_graph(2) + G.add_edge(1, 2) + assert sb(G) == pytest.approx(0.843, abs=1e-3) + + G = nx.star_graph(3) + G.add_edge(1, 2) + assert sb(G) == pytest.approx(0.871, abs=1e-3) + + G = nx.star_graph(4) + G.add_edge(1, 2) + assert sb(G) == pytest.approx(0.890, abs=1e-3) + + def test_k23_like(self): + # K2,3-like + G = nx.complete_bipartite_graph(2, 3) + G.add_edge(0, 1) + assert sb(G) == pytest.approx(0.769, abs=1e-3) + + G = nx.complete_bipartite_graph(2, 3) + G.add_edge(2, 4) + assert sb(G) == pytest.approx(0.829, abs=1e-3) + + G = nx.complete_bipartite_graph(2, 3) + G.add_edge(2, 4) + G.add_edge(3, 4) + assert sb(G) == pytest.approx(0.731, abs=1e-3) + + G = nx.complete_bipartite_graph(2, 3) + G.add_edge(0, 1) + G.add_edge(2, 4) + assert sb(G) == pytest.approx(0.692, abs=1e-3) + + G = nx.complete_bipartite_graph(2, 3) + G.add_edge(2, 4) + G.add_edge(3, 4) + G.add_edge(0, 1) + assert sb(G) == pytest.approx(0.645, abs=1e-3) + + G = nx.complete_bipartite_graph(2, 3) + G.add_edge(2, 4) + G.add_edge(3, 4) + G.add_edge(2, 3) + assert sb(G) == pytest.approx(0.645, abs=1e-3) + + G = nx.complete_bipartite_graph(2, 3) + G.add_edge(2, 4) + G.add_edge(3, 4) + G.add_edge(2, 3) + G.add_edge(0, 1) + assert sb(G) == pytest.approx(0.597, abs=1e-3) + + def test_single_nodes(self): + # single nodes + G = nx.complete_bipartite_graph(2, 3) + G.add_edge(2, 4) + sbn = sb(G, nodes=[1, 2]) + assert sbn[1] == pytest.approx(0.85, abs=1e-2) + assert sbn[2] == pytest.approx(0.77, abs=1e-2) + + G = nx.complete_bipartite_graph(2, 3) + G.add_edge(0, 1) + sbn = sb(G, nodes=[1, 2]) + assert sbn[1] == pytest.approx(0.73, abs=1e-2) + assert sbn[2] == pytest.approx(0.82, abs=1e-2) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..c91a904a13496ecab5a3a6c8caa026970d99a540 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__init__.py @@ -0,0 +1,20 @@ +from .betweenness import * +from .betweenness_subset import * +from .closeness import * +from .current_flow_betweenness import * +from .current_flow_betweenness_subset import * +from .current_flow_closeness import * +from .degree_alg import * +from .dispersion import * +from .eigenvector import * +from .group import * +from .harmonic import * +from .katz import * +from .load import * +from .percolation import * +from .reaching import * +from .second_order import * +from .subgraph_alg import * +from .trophic import * +from .voterank_alg import * +from .laplacian import * diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8feb18976aaeb8540a778ff437be6779d32090c3 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/betweenness.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/betweenness.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..75f5f7896ef4ef62569910f3ba203fa0e9b65891 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/betweenness.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/betweenness_subset.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/betweenness_subset.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7b6e35776198a9a0b27359eeeed1593cdda6e4f2 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/betweenness_subset.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/closeness.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/closeness.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1c5e83733aac60c2fcd565f33a1eaff2d9efdb91 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/closeness.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/current_flow_betweenness.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/current_flow_betweenness.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e2753c30e6117e9490171cc695669db77274a233 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/current_flow_betweenness.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/current_flow_betweenness_subset.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/current_flow_betweenness_subset.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5386d2c7528f4e5cc96e1349c6290ca0bd341664 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/current_flow_betweenness_subset.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/current_flow_closeness.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/current_flow_closeness.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e32abc9fdd76d19707b1c61279a1584b931832ed Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/current_flow_closeness.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/degree_alg.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/degree_alg.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..05f99710759ab2f4311090449126628070ad857e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/degree_alg.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/dispersion.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/dispersion.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..390e25acf5864b295cd67e808ce95ead4fc14fb3 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/dispersion.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/eigenvector.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/eigenvector.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4def5866f15deefa529bf1f5ce96c4d2c05347a8 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/eigenvector.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/flow_matrix.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/flow_matrix.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fc13026936f5a45bff94f2376d236e0f3ef1d470 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/flow_matrix.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/group.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/group.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a40482647c69d6814c7861140f30cc9fbab7fec9 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/group.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/harmonic.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/harmonic.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..29fca27a759e2ab77db560cc1f5f8e28ed2c67af Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/harmonic.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/katz.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/katz.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e3d7258d65331c631f8a42bc688508193fe3092a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/katz.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/laplacian.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/laplacian.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5a3565cd820ab193e725ab1ce141f4cf1c4877d4 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/laplacian.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/load.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/load.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f77651f5603cde26ffad75cdc45f1132033b54ae Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/load.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/percolation.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/percolation.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3aed0a31491432f7fc781fc8e816e7837b9b7d1e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/percolation.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/reaching.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/reaching.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e935fc21251baf6bf40ca68a69680ff82850574f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/reaching.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/second_order.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/second_order.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2181799a39d15653033693b0d77dc344d21ff2ca Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/second_order.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/subgraph_alg.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/subgraph_alg.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..563103d0ffe015a839ad6fc2fca42f3c5a6d6381 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/subgraph_alg.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/trophic.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/trophic.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..44ffaf2c7dc9ae8983fb55b1a1d3228534f5d2fe Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/trophic.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/voterank_alg.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/voterank_alg.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4afb0d295d84fcd00cfcfa5dccc0f7895632934a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/__pycache__/voterank_alg.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/betweenness.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/betweenness.py new file mode 100644 index 0000000000000000000000000000000000000000..3c549cc8c3a80472ad987b01353833f08f410d95 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/betweenness.py @@ -0,0 +1,591 @@ +"""Betweenness centrality measures.""" + +import math +from collections import deque +from heapq import heappop, heappush +from itertools import count + +import networkx as nx +from networkx.algorithms.shortest_paths.weighted import _weight_function +from networkx.utils import py_random_state +from networkx.utils.decorators import not_implemented_for + +__all__ = ["betweenness_centrality", "edge_betweenness_centrality"] + + +@py_random_state("seed") +@nx._dispatchable(edge_attrs="weight") +def betweenness_centrality( + G, k=None, normalized=True, weight=None, endpoints=False, seed=None +): + r"""Compute the shortest-path betweenness centrality for nodes. + + Betweenness centrality of a node $v$ is the sum of the + fraction of all-pairs shortest paths that pass through $v$. + + .. math:: + + c_B(v) = \sum_{s, t \in V} \frac{\sigma(s, t | v)}{\sigma(s, t)} + + where $V$ is the set of nodes, $\sigma(s, t)$ is the number of + shortest $(s, t)$-paths, and $\sigma(s, t | v)$ is the number of + those paths passing through some node $v$ other than $s$ and $t$. + If $s = t$, $\sigma(s, t) = 1$, and if $v \in \{s, t\}$, + $\sigma(s, t | v) = 0$ [2]_. + The denominator $\sigma(s, t)$ is a normalization factor that can be + turned off to get the raw path counts. + + Parameters + ---------- + G : graph + A NetworkX graph. + + k : int, optional (default=None) + If `k` is not `None`, use `k` sampled nodes as sources for the considered paths. + The resulting sampled counts are then inflated to approximate betweenness. + Higher values of `k` give better approximation. Must have ``k <= len(G)``. + + normalized : bool, optional (default=True) + If `True`, the betweenness values are rescaled by dividing by the number of + possible $(s, t)$-pairs in the graph. + + weight : None or string, optional (default=None) + If `None`, all edge weights are 1. + Otherwise holds the name of the edge attribute used as weight. + Weights are used to calculate weighted shortest paths, so they are + interpreted as distances. + + endpoints : bool, optional (default=False) + If `True`, include the endpoints $s$ and $t$ in the shortest path counts. + This is taken into account when rescaling the values. + + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + Note that this is only used if ``k is not None``. + + Returns + ------- + nodes : dict + Dictionary of nodes with betweenness centrality as the value. + + See Also + -------- + betweenness_centrality_subset + edge_betweenness_centrality + load_centrality + + Notes + ----- + The algorithm is from Ulrik Brandes [1]_. + See [4]_ for the original first published version and [2]_ for details on + algorithms for variations and related metrics. + + For approximate betweenness calculations, set `k` to the number of sampled + nodes ("pivots") used as sources to estimate the betweenness values. + The formula then sums over $s$ is in these pivots, instead of over all nodes. + The resulting sum is then inflated to approximate the full sum. + For a discussion of how to choose `k` for efficiency, see [3]_. + + For weighted graphs the edge weights must be greater than zero. + Zero edge weights can produce an infinite number of equal length + paths between pairs of nodes. + + Directed graphs and undirected graphs count paths differently. + In directed graphs, each pair of source-target nodes is considered separately + in each direction, as the shortest paths can differ by direction. + However, in undirected graphs, each pair of nodes is considered only once, + as the shortest paths are symmetric. + This means the normalization factor to divide by is $N(N-1)$ for directed graphs + and $N(N-1)/2$ for undirected graphs, where $N = n$ (the number of nodes) + if endpoints are included and $N = n-1$ otherwise. + + This algorithm is not guaranteed to be correct if edge weights + are floating point numbers. As a workaround you can use integer + numbers by multiplying the relevant edge attributes by a convenient + constant factor (e.g. 100) and converting to integers. + + References + ---------- + .. [1] Ulrik Brandes: + A Faster Algorithm for Betweenness Centrality. + Journal of Mathematical Sociology 25(2):163--177, 2001. + https://doi.org/10.1080/0022250X.2001.9990249 + .. [2] Ulrik Brandes: + On Variants of Shortest-Path Betweenness + Centrality and their Generic Computation. + Social Networks 30(2):136--145, 2008. + https://doi.org/10.1016/j.socnet.2007.11.001 + .. [3] Ulrik Brandes and Christian Pich: + Centrality Estimation in Large Networks. + International Journal of Bifurcation and Chaos 17(7):2303--2318, 2007. + https://dx.doi.org/10.1142/S0218127407018403 + .. [4] Linton C. Freeman: + A set of measures of centrality based on betweenness. + Sociometry 40: 35--41, 1977 + https://doi.org/10.2307/3033543 + + Examples + -------- + Consider an undirected 3-path. Each pair of nodes has exactly one shortest + path between them. Since the graph is undirected, only ordered pairs are counted. + Of these (and when `endpoints` is `False`), none of the shortest paths pass + through 0 and 2, and only the shortest path between 0 and 2 passes through 1. + As such, the counts should be ``{0: 0, 1: 1, 2: 0}``. + + >>> G = nx.path_graph(3) + >>> nx.betweenness_centrality(G, normalized=False, endpoints=False) + {0: 0.0, 1: 1.0, 2: 0.0} + + If `endpoints` is `True`, we also need to count endpoints as being on the path: + $\sigma(s, t | s) = \sigma(s, t | t) = \sigma(s, t)$. + In our example, 0 is then part of two shortest paths (0 to 1 and 0 to 2); + similarly, 2 is part of two shortest paths (0 to 2 and 1 to 2). + 1 is part of all three shortest paths. This makes the new raw + counts ``{0: 2, 1: 3, 2: 2}``. + + >>> nx.betweenness_centrality(G, normalized=False, endpoints=True) + {0: 2.0, 1: 3.0, 2: 2.0} + + With normalization, the values are divided by the number of ordered $(s, t)$-pairs. + If we are not counting endpoints, there are $n - 1$ possible choices for $s$ + (all except the node we are computing betweenness centrality for), which in turn + leaves $n - 2$ possible choices for $t$ as $s \ne t$. + The total number of ordered pairs when `endpoints` is `False` is $(n - 1)(n - 2)/2 = 1$. + If `endpoints` is `True`, there are $n(n - 1)/2 = 3$ ordered $(s, t)$-pairs to divide by. + + >>> nx.betweenness_centrality(G, normalized=True, endpoints=False) + {0: 0.0, 1: 1.0, 2: 0.0} + >>> nx.betweenness_centrality(G, normalized=True, endpoints=True) + {0: 0.6666666666666666, 1: 1.0, 2: 0.6666666666666666} + + If the graph is directed instead, we now need to consider $(s, t)$-pairs + in both directions. Our example becomes a directed 3-path. + Without counting endpoints, we only have one path through 1 (0 to 2). + This means the raw counts are ``{0: 0, 1: 1, 2: 0}``. + + >>> DG = nx.path_graph(3, create_using=nx.DiGraph) + >>> nx.betweenness_centrality(DG, normalized=False, endpoints=False) + {0: 0.0, 1: 1.0, 2: 0.0} + + If we do include endpoints, the raw counts are ``{0: 2, 1: 3, 2: 2}``. + + >>> nx.betweenness_centrality(DG, normalized=False, endpoints=True) + {0: 2.0, 1: 3.0, 2: 2.0} + + If we want to normalize directed betweenness centrality, the raw counts + are normalized by the number of $(s, t)$-pairs. There are $n(n - 1)$ + possible paths with endpoints and $(n - 1)(n - 2)$ without endpoints. + In our example, that's 6 with endpoints and 2 without endpoints. + + >>> nx.betweenness_centrality(DG, normalized=True, endpoints=True) + {0: 0.3333333333333333, 1: 0.5, 2: 0.3333333333333333} + >>> nx.betweenness_centrality(DG, normalized=True, endpoints=False) + {0: 0.0, 1: 0.5, 2: 0.0} + + Computing the full betweenness centrality can be costly. + This function can also be used to compute approximate betweenness centrality + by setting `k`. This only determines the number of source nodes to sample; + all nodes are targets. + + For simplicity, we only consider the case where endpoints are included in the counts. + Since the partial sums only include `k` terms, instead of ``n``, + we multiply them by ``n / k``, to approximate the full sum. + As the sets of sources and targets are not the same anymore, + paths have to be counted in a directed way. We thus count each as half a path. + This ensures that the results approximate the standard betweenness for ``k == n``. + + For instance, in the undirected 3-path graph case, setting ``k = 2`` (with ``seed=42``) + selects nodes 0 and 2 as sources. + This means only shortest paths starting at these nodes are considered. + The raw counts with endpoints are ``{0: 3, 1: 4, 2: 3}``. Accounting for the partial sum + and applying the undirectedness half-path correction, we get + + >>> nx.betweenness_centrality(G, k=2, normalized=False, endpoints=True, seed=42) + {0: 2.25, 1: 3.0, 2: 2.25} + + When normalizing, we instead want to divide by the total number of $(s, t)$-pairs. + This is $k(n - 1)$ with endpoints. + + >>> nx.betweenness_centrality(G, k=2, normalized=True, endpoints=True, seed=42) + {0: 0.75, 1: 1.0, 2: 0.75} + """ + betweenness = dict.fromkeys(G, 0.0) # b[v]=0 for v in G + if k == len(G): + # This is done for performance; the result is the same regardless. + k = None + if k is None: + nodes = G + else: + nodes = seed.sample(list(G.nodes()), k) + for s in nodes: + # single source shortest paths + if weight is None: # use BFS + S, P, sigma, _ = _single_source_shortest_path_basic(G, s) + else: # use Dijkstra's algorithm + S, P, sigma, _ = _single_source_dijkstra_path_basic(G, s, weight) + # accumulation + if endpoints: + betweenness, _ = _accumulate_endpoints(betweenness, S, P, sigma, s) + else: + betweenness, _ = _accumulate_basic(betweenness, S, P, sigma, s) + # rescaling + betweenness = _rescale( + betweenness, + len(G), + normalized=normalized, + directed=G.is_directed(), + endpoints=endpoints, + sampled_nodes=None if k is None else nodes, + ) + return betweenness + + +@py_random_state("seed") +@nx._dispatchable(edge_attrs="weight") +def edge_betweenness_centrality(G, k=None, normalized=True, weight=None, seed=None): + r"""Compute betweenness centrality for edges. + + Betweenness centrality of an edge $e$ is the sum of the + fraction of all-pairs shortest paths that pass through $e$. + + .. math:: + + c_B(e) = \sum_{s, t \in V} \frac{\sigma(s, t | e)}{\sigma(s, t)} + + where $V$ is the set of nodes, $\sigma(s, t)$ is the number of + shortest $(s, t)$-paths, and $\sigma(s, t | e)$ is the number of + those paths passing through edge $e$ [1]_. + The denominator $\sigma(s, t)$ is a normalization factor that can be + turned off to get the raw path counts. + + Parameters + ---------- + G : graph + A NetworkX graph. + + k : int, optional (default=None) + If `k` is not `None`, use `k` sampled nodes as sources for the considered paths. + The resulting sampled counts are then inflated to approximate betweenness. + Higher values of `k` give better approximation. Must have ``k <= len(G)``. + + normalized : bool, optional (default=True) + If `True`, the betweenness values are rescaled by dividing by the number of + possible $(s, t)$-pairs in the graph. + + weight : None or string, optional (default=None) + If `None`, all edge weights are 1. + Otherwise holds the name of the edge attribute used as weight. + Weights are used to calculate weighted shortest paths, so they are + interpreted as distances. + + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + Note that this is only used if ``k is not None``. + + Returns + ------- + edges : dict + Dictionary of edges with betweenness centrality as the value. + + See Also + -------- + betweenness_centrality + edge_betweenness_centrality_subset + edge_load + + Notes + ----- + The algorithm is from Ulrik Brandes [1]_. + + For weighted graphs the edge weights must be greater than zero. + Zero edge weights can produce an infinite number of equal length + paths between pairs of nodes. + + References + ---------- + .. [1] Ulrik Brandes: On Variants of Shortest-Path Betweenness + Centrality and their Generic Computation. + Social Networks 30(2):136--145, 2008. + https://doi.org/10.1016/j.socnet.2007.11.001 + + Examples + -------- + Consider an undirected 3-path. Each pair of nodes has exactly one shortest + path between them. Since the graph is undirected, only ordered pairs are counted. + Each edge has two shortest paths passing through it. + As such, the raw counts should be ``{(0, 1): 2, (1, 2): 2}``. + + >>> G = nx.path_graph(3) + >>> nx.edge_betweenness_centrality(G, normalized=False) + {(0, 1): 2.0, (1, 2): 2.0} + + With normalization, the values are divided by the number of ordered $(s, t)$-pairs, + which is $n(n-1)/2$. For the 3-path, this is $3(3-1)/2 = 3$. + + >>> nx.edge_betweenness_centrality(G, normalized=True) + {(0, 1): 0.6666666666666666, (1, 2): 0.6666666666666666} + + For a directed graph, all $(s, t)$-pairs are considered. The normalization factor + is $n(n-1)$ to reflect this. + + >>> DG = nx.path_graph(3, create_using=nx.DiGraph) + >>> nx.edge_betweenness_centrality(DG, normalized=False) + {(0, 1): 2.0, (1, 2): 2.0} + >>> nx.edge_betweenness_centrality(DG, normalized=True) + {(0, 1): 0.3333333333333333, (1, 2): 0.3333333333333333} + + Computing the full edge betweenness centrality can be costly. + This function can also be used to compute approximate edge betweenness centrality + by setting `k`. This determines the number of source nodes to sample. + + Since the partial sums only include `k` terms, instead of ``n``, + we multiply them by ``n / k``, to approximate the full sum. + As the sets of sources and targets are not the same anymore, + paths have to be counted in a directed way. We thus count each as half a path. + This ensures that the results approximate the standard betweenness for ``k == n``. + + For instance, in the undirected 3-path graph case, setting ``k = 2`` (with ``seed=42``) + selects nodes 0 and 2 as sources. + This means only shortest paths starting at these nodes are considered. + The raw counts are ``{(0, 1): 3, (1, 2): 3}``. Accounting for the partial sum + and applying the undirectedness half-path correction, we get + + >>> nx.edge_betweenness_centrality(G, k=2, normalized=False, seed=42) + {(0, 1): 2.25, (1, 2): 2.25} + + When normalizing, we instead want to divide by the total number of $(s, t)$-pairs. + This is $k(n-1)$, which is $4$ in our case. + + >>> nx.edge_betweenness_centrality(G, k=2, normalized=True, seed=42) + {(0, 1): 0.75, (1, 2): 0.75} + """ + betweenness = dict.fromkeys(G, 0.0) # b[v]=0 for v in G + # b[e]=0 for e in G.edges() + betweenness.update(dict.fromkeys(G.edges(), 0.0)) + if k is None: + nodes = G + else: + nodes = seed.sample(list(G.nodes()), k) + for s in nodes: + # single source shortest paths + if weight is None: # use BFS + S, P, sigma, _ = _single_source_shortest_path_basic(G, s) + else: # use Dijkstra's algorithm + S, P, sigma, _ = _single_source_dijkstra_path_basic(G, s, weight) + # accumulation + betweenness = _accumulate_edges(betweenness, S, P, sigma, s) + # rescaling + for n in G: # remove nodes to only return edges + del betweenness[n] + betweenness = _rescale( + betweenness, + len(G), + normalized=normalized, + directed=G.is_directed(), + sampled_nodes=None if k is None else nodes, + ) + if G.is_multigraph(): + betweenness = _add_edge_keys(G, betweenness, weight=weight) + return betweenness + + +# helpers for betweenness centrality + + +def _single_source_shortest_path_basic(G, s): + S = [] + P = {} + for v in G: + P[v] = [] + sigma = dict.fromkeys(G, 0.0) # sigma[v]=0 for v in G + D = {} + sigma[s] = 1.0 + D[s] = 0 + Q = deque([s]) + while Q: # use BFS to find shortest paths + v = Q.popleft() + S.append(v) + Dv = D[v] + sigmav = sigma[v] + for w in G[v]: + if w not in D: + Q.append(w) + D[w] = Dv + 1 + if D[w] == Dv + 1: # this is a shortest path, count paths + sigma[w] += sigmav + P[w].append(v) # predecessors + return S, P, sigma, D + + +def _single_source_dijkstra_path_basic(G, s, weight): + weight = _weight_function(G, weight) + # modified from Eppstein + S = [] + P = {} + for v in G: + P[v] = [] + sigma = dict.fromkeys(G, 0.0) # sigma[v]=0 for v in G + D = {} + sigma[s] = 1.0 + seen = {s: 0} + c = count() + Q = [] # use Q as heap with (distance,node id) tuples + heappush(Q, (0, next(c), s, s)) + while Q: + (dist, _, pred, v) = heappop(Q) + if v in D: + continue # already searched this node. + sigma[v] += sigma[pred] # count paths + S.append(v) + D[v] = dist + for w, edgedata in G[v].items(): + vw_dist = dist + weight(v, w, edgedata) + if w not in D and (w not in seen or vw_dist < seen[w]): + seen[w] = vw_dist + heappush(Q, (vw_dist, next(c), v, w)) + sigma[w] = 0.0 + P[w] = [v] + elif vw_dist == seen[w]: # handle equal paths + sigma[w] += sigma[v] + P[w].append(v) + return S, P, sigma, D + + +def _accumulate_basic(betweenness, S, P, sigma, s): + delta = dict.fromkeys(S, 0) + while S: + w = S.pop() + coeff = (1 + delta[w]) / sigma[w] + for v in P[w]: + delta[v] += sigma[v] * coeff + if w != s: + betweenness[w] += delta[w] + return betweenness, delta + + +def _accumulate_endpoints(betweenness, S, P, sigma, s): + betweenness[s] += len(S) - 1 + delta = dict.fromkeys(S, 0) + while S: + w = S.pop() + coeff = (1 + delta[w]) / sigma[w] + for v in P[w]: + delta[v] += sigma[v] * coeff + if w != s: + betweenness[w] += delta[w] + 1 + return betweenness, delta + + +def _accumulate_edges(betweenness, S, P, sigma, s): + delta = dict.fromkeys(S, 0) + while S: + w = S.pop() + coeff = (1 + delta[w]) / sigma[w] + for v in P[w]: + c = sigma[v] * coeff + if (v, w) not in betweenness: + betweenness[(w, v)] += c + else: + betweenness[(v, w)] += c + delta[v] += c + if w != s: + betweenness[w] += delta[w] + return betweenness + + +def _rescale( + betweenness, n, *, normalized, directed, endpoints=True, sampled_nodes=None +): + # For edge betweenness, `endpoints` is always `True`. + + k = None if sampled_nodes is None else len(sampled_nodes) + # N is used to count the number of valid (s, t) pairs where s != t that + # could have a path pass through v. If endpoints is False, then v must + # not be the target t, hence why we subtract by 1. + N = n if endpoints else n - 1 + if N < 2: + # No rescaling necessary: b=0 for all nodes + return betweenness + + K_source = N if k is None else k + + if k is None or endpoints: + # No sampling adjustment needed + if normalized: + # Divide by the number of valid (s, t) node pairs that could have + # a path through v where s != t. + scale = 1 / (K_source * (N - 1)) + else: + # Scale to the full BC + if not directed: + # The non-normalized BC values are computed the same way for + # directed and undirected graphs: shortest paths are computed and + # counted for each *ordered* (s, t) pair. Undirected graphs should + # only count valid *unordered* node pairs {s, t}; that is, (s, t) + # and (t, s) should be counted only once. We correct for this here. + correction = 2 + else: + correction = 1 + scale = N / (K_source * correction) + + if scale != 1: + for v in betweenness: + betweenness[v] *= scale + return betweenness + + # Sampling adjustment needed when excluding endpoints when using k. In this + # case, we need to handle source nodes differently from non-source nodes, + # because source nodes can't include themselves since endpoints are excluded. + # Without this, k == n would be a special case that would violate the + # assumption that node `v` is not one of the (s, t) node pairs. + if normalized: + # NaN for undefined 0/0; there is no data for source node when k=1 + scale_source = 1 / ((K_source - 1) * (N - 1)) if K_source > 1 else math.nan + scale_nonsource = 1 / (K_source * (N - 1)) + else: + correction = 1 if directed else 2 + scale_source = N / ((K_source - 1) * correction) if K_source > 1 else math.nan + scale_nonsource = N / (K_source * correction) + + sampled_nodes = set(sampled_nodes) + for v in betweenness: + betweenness[v] *= scale_source if v in sampled_nodes else scale_nonsource + return betweenness + + +@not_implemented_for("graph") +def _add_edge_keys(G, betweenness, weight=None): + r"""Adds the corrected betweenness centrality (BC) values for multigraphs. + + Parameters + ---------- + G : NetworkX graph. + + betweenness : dictionary + Dictionary mapping adjacent node tuples to betweenness centrality values. + + weight : string or function + See `_weight_function` for details. Defaults to `None`. + + Returns + ------- + edges : dictionary + The parameter `betweenness` including edges with keys and their + betweenness centrality values. + + The BC value is divided among edges of equal weight. + """ + _weight = _weight_function(G, weight) + + edge_bc = dict.fromkeys(G.edges, 0.0) + for u, v in betweenness: + d = G[u][v] + wt = _weight(u, v, d) + keys = [k for k in d if _weight(u, v, {k: d[k]}) == wt] + bc = betweenness[(u, v)] / len(keys) + for k in keys: + edge_bc[(u, v, k)] = bc + + return edge_bc diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/betweenness_subset.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/betweenness_subset.py new file mode 100644 index 0000000000000000000000000000000000000000..94071b58c6a513e9a9e32f067c65307509271860 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/betweenness_subset.py @@ -0,0 +1,236 @@ +"""Betweenness centrality measures for subsets of nodes.""" + +import networkx as nx +from networkx.algorithms.centrality.betweenness import ( + _add_edge_keys, + _rescale, +) +from networkx.algorithms.centrality.betweenness import ( + _single_source_dijkstra_path_basic as dijkstra, +) +from networkx.algorithms.centrality.betweenness import ( + _single_source_shortest_path_basic as shortest_path, +) + +__all__ = [ + "betweenness_centrality_subset", + "edge_betweenness_centrality_subset", +] + + +@nx._dispatchable(edge_attrs="weight") +def betweenness_centrality_subset(G, sources, targets, normalized=False, weight=None): + r"""Compute betweenness centrality for a subset of nodes. + + .. math:: + + c_B(v) = \sum_{s \in S, t \in T} \frac{\sigma(s, t | v)}{\sigma(s, t)} + + where $S$ is the set of sources, $T$ is the set of targets, + $\sigma(s, t)$ is the number of shortest $(s, t)$-paths, + and $\sigma(s, t | v)$ is the number of those paths + passing through some node $v$ other than $s$ and $t$. + If $s = t$, $\sigma(s, t) = 1$, + and if $v \in \{s, t\}$, $\sigma(s, t | v) = 0$ [2]_. + The denominator $\sigma(s, t)$ is a normalization factor that can be + turned off to get the raw path counts. + + Parameters + ---------- + G : graph + A NetworkX graph. + + sources: list of nodes + Nodes to use as sources for shortest paths in betweenness. + + targets: list of nodes + Nodes to use as targets for shortest paths in betweenness. + + normalized : bool, optional (default=False) + If `True`, the betweenness values are rescaled by dividing by the number of + possible $(s, t)$-pairs in the graph. + + weight : None or string, optional (default=None) + If `None`, all edge weights are 1. + Otherwise holds the name of the edge attribute used as weight. + Weights are used to calculate weighted shortest paths, so they are + interpreted as distances. + + Returns + ------- + nodes : dict + Dictionary of nodes with betweenness centrality as the value. + + See Also + -------- + betweenness_centrality + edge_betweenness_centrality + edge_betweenness_centrality_subset + load_centrality + + Notes + ----- + The basic algorithm is from [1]_. + + For weighted graphs the edge weights must be greater than zero. + Zero edge weights can produce an infinite number of equal length + paths between pairs of nodes. + + The normalization might seem a little strange but it is + designed to make betweenness_centrality(G) be the same as + betweenness_centrality_subset(G,sources=G.nodes(),targets=G.nodes()). + + The total number of paths between source and target is counted + differently for directed and undirected graphs. Directed paths + are easy to count. Undirected paths are tricky: should a path + from ``u`` to ``v`` count as 1 undirected path or as 2 directed paths? + We are only counting the paths in one direction. They are + undirected paths but we are counting them in a directed way. + To count them as undirected paths, each should count as half a path. + + References + ---------- + .. [1] Ulrik Brandes, A Faster Algorithm for Betweenness Centrality. + Journal of Mathematical Sociology 25(2):163-177, 2001. + https://doi.org/10.1080/0022250X.2001.9990249 + .. [2] Ulrik Brandes: On Variants of Shortest-Path Betweenness + Centrality and their Generic Computation. + Social Networks 30(2):136-145, 2008. + https://doi.org/10.1016/j.socnet.2007.11.001 + """ + b = dict.fromkeys(G, 0.0) # b[v]=0 for v in G + for s in sources: + # single source shortest paths + if weight is None: # use BFS + S, P, sigma, _ = shortest_path(G, s) + else: # use Dijkstra's algorithm + S, P, sigma, _ = dijkstra(G, s, weight) + b = _accumulate_subset(b, S, P, sigma, s, targets) + b = _rescale( + b, len(G), normalized=normalized, directed=G.is_directed(), endpoints=False + ) + return b + + +@nx._dispatchable(edge_attrs="weight") +def edge_betweenness_centrality_subset( + G, sources, targets, normalized=False, weight=None +): + r"""Compute betweenness centrality for edges for a subset of nodes. + + .. math:: + + c_B(e) = \sum_{s \in S, t \in T} \frac{\sigma(s, t | e)}{\sigma(s, t)} + + where $S$ is the set of sources, $T$ is the set of targets, + $\sigma(s, t)$ is the number of shortest $(s, t)$-paths, + and $\sigma(s, t | e)$ is the number of those paths + passing through edge $e$ [1]_. + The denominator $\sigma(s, t)$ is a normalization factor that can be + turned off to get the raw path counts. + + Parameters + ---------- + G : graph + A networkx graph. + + sources: list of nodes + Nodes to use as sources for shortest paths in betweenness. + + targets: list of nodes + Nodes to use as targets for shortest paths in betweenness. + + normalized : bool, optional (default=False) + If `True`, the betweenness values are rescaled by dividing by the number of + possible $(s, t)$-pairs in the graph. + + weight : None or string, optional (default=None) + If `None`, all edge weights are 1. + Otherwise holds the name of the edge attribute used as weight. + Weights are used to calculate weighted shortest paths, so they are + interpreted as distances. + + Returns + ------- + edges : dict + Dictionary of edges with betweenness centrality as the value. + + See Also + -------- + betweenness_centrality + betweenness_centrality_subset + edge_betweenness_centrality + edge_load + + Notes + ----- + The basic algorithm is from [1]_. + + For weighted graphs the edge weights must be greater than zero. + Zero edge weights can produce an infinite number of equal length + paths between pairs of nodes. + + The normalization might seem a little strange but it is the same + as in edge_betweenness_centrality() and is designed to make + edge_betweenness_centrality(G) be the same as + edge_betweenness_centrality_subset(G,sources=G.nodes(),targets=G.nodes()). + + References + ---------- + .. [1] Ulrik Brandes: On Variants of Shortest-Path Betweenness + Centrality and their Generic Computation. + Social Networks 30(2):136-145, 2008. + https://doi.org/10.1016/j.socnet.2007.11.001 + """ + b = dict.fromkeys(G, 0.0) # b[v]=0 for v in G + b.update(dict.fromkeys(G.edges(), 0.0)) # b[e] for e in G.edges() + for s in sources: + # single source shortest paths + if weight is None: # use BFS + S, P, sigma, _ = shortest_path(G, s) + else: # use Dijkstra's algorithm + S, P, sigma, _ = dijkstra(G, s, weight) + b = _accumulate_edges_subset(b, S, P, sigma, s, targets) + for n in G: # remove nodes to only return edges + del b[n] + b = _rescale(b, len(G), normalized=normalized, directed=G.is_directed()) + if G.is_multigraph(): + b = _add_edge_keys(G, b, weight=weight) + return b + + +def _accumulate_subset(betweenness, S, P, sigma, s, targets): + delta = dict.fromkeys(S, 0.0) + target_set = set(targets) - {s} + while S: + w = S.pop() + if w in target_set: + coeff = (delta[w] + 1.0) / sigma[w] + else: + coeff = delta[w] / sigma[w] + for v in P[w]: + delta[v] += sigma[v] * coeff + if w != s: + betweenness[w] += delta[w] + return betweenness + + +def _accumulate_edges_subset(betweenness, S, P, sigma, s, targets): + """edge_betweenness_centrality_subset helper.""" + delta = dict.fromkeys(S, 0) + target_set = set(targets) + while S: + w = S.pop() + for v in P[w]: + if w in target_set: + c = (sigma[v] / sigma[w]) * (1.0 + delta[w]) + else: + c = delta[w] / len(P[w]) + if (v, w) not in betweenness: + betweenness[(w, v)] += c + else: + betweenness[(v, w)] += c + delta[v] += c + if w != s: + betweenness[w] += delta[w] + return betweenness diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/closeness.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/closeness.py new file mode 100644 index 0000000000000000000000000000000000000000..1cc2f9599f2a3af8fa653b8faef58a9a8f2d2355 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/closeness.py @@ -0,0 +1,282 @@ +""" +Closeness centrality measures. +""" + +import functools + +import networkx as nx +from networkx.exception import NetworkXError +from networkx.utils.decorators import not_implemented_for + +__all__ = ["closeness_centrality", "incremental_closeness_centrality"] + + +@nx._dispatchable(edge_attrs="distance") +def closeness_centrality(G, u=None, distance=None, wf_improved=True): + r"""Compute closeness centrality for nodes. + + Closeness centrality [1]_ of a node `u` is the reciprocal of the + average shortest path distance to `u` over all `n-1` reachable nodes. + + .. math:: + + C(u) = \frac{n - 1}{\sum_{v=1}^{n-1} d(v, u)}, + + where `d(v, u)` is the shortest-path distance between `v` and `u`, + and `n-1` is the number of nodes reachable from `u`. Notice that the + closeness distance function computes the incoming distance to `u` + for directed graphs. To use outward distance, act on `G.reverse()`. + + Notice that higher values of closeness indicate higher centrality. + + Wasserman and Faust propose an improved formula for graphs with + more than one connected component. The result is "a ratio of the + fraction of actors in the group who are reachable, to the average + distance" from the reachable actors [2]_. You might think this + scale factor is inverted but it is not. As is, nodes from small + components receive a smaller closeness value. Letting `N` denote + the number of nodes in the graph, + + .. math:: + + C_{WF}(u) = \frac{n-1}{N-1} \frac{n - 1}{\sum_{v=1}^{n-1} d(v, u)}, + + Parameters + ---------- + G : graph + A NetworkX graph + + u : node, optional + Return only the value for node u + + distance : edge attribute key, optional (default=None) + Use the specified edge attribute as the edge distance in shortest + path calculations. If `None` (the default) all edges have a distance of 1. + Absent edge attributes are assigned a distance of 1. Note that no check + is performed to ensure that edges have the provided attribute. + + wf_improved : bool, optional (default=True) + If True, scale by the fraction of nodes reachable. This gives the + Wasserman and Faust improved formula. For single component graphs + it is the same as the original formula. + + Returns + ------- + nodes : dictionary + Dictionary of nodes with closeness centrality as the value. + + Examples + -------- + >>> G = nx.Graph([(0, 1), (0, 2), (0, 3), (1, 2), (1, 3)]) + >>> nx.closeness_centrality(G) + {0: 1.0, 1: 1.0, 2: 0.75, 3: 0.75} + + See Also + -------- + betweenness_centrality, load_centrality, eigenvector_centrality, + degree_centrality, incremental_closeness_centrality + + Notes + ----- + The closeness centrality is normalized to `(n-1)/(|G|-1)` where + `n` is the number of nodes in the connected part of graph + containing the node. If the graph is not completely connected, + this algorithm computes the closeness centrality for each + connected part separately scaled by that parts size. + + If the 'distance' keyword is set to an edge attribute key then the + shortest-path length will be computed using Dijkstra's algorithm with + that edge attribute as the edge weight. + + The closeness centrality uses *inward* distance to a node, not outward. + If you want to use outword distances apply the function to `G.reverse()` + + In NetworkX 2.2 and earlier a bug caused Dijkstra's algorithm to use the + outward distance rather than the inward distance. If you use a 'distance' + keyword and a DiGraph, your results will change between v2.2 and v2.3. + + References + ---------- + .. [1] Linton C. Freeman: Centrality in networks: I. + Conceptual clarification. Social Networks 1:215-239, 1979. + https://doi.org/10.1016/0378-8733(78)90021-7 + .. [2] pg. 201 of Wasserman, S. and Faust, K., + Social Network Analysis: Methods and Applications, 1994, + Cambridge University Press. + """ + if G.is_directed(): + G = G.reverse() # create a reversed graph view + + if distance is not None: + # use Dijkstra's algorithm with specified attribute as edge weight + path_length = functools.partial( + nx.single_source_dijkstra_path_length, weight=distance + ) + else: + path_length = nx.single_source_shortest_path_length + + if u is None: + nodes = G.nodes + else: + nodes = [u] + closeness_dict = {} + for n in nodes: + sp = path_length(G, n) + totsp = sum(sp.values()) + len_G = len(G) + _closeness_centrality = 0.0 + if totsp > 0.0 and len_G > 1: + _closeness_centrality = (len(sp) - 1.0) / totsp + # normalize to number of nodes-1 in connected part + if wf_improved: + s = (len(sp) - 1.0) / (len_G - 1) + _closeness_centrality *= s + closeness_dict[n] = _closeness_centrality + if u is not None: + return closeness_dict[u] + return closeness_dict + + +@not_implemented_for("directed") +@nx._dispatchable(mutates_input=True) +def incremental_closeness_centrality( + G, edge, prev_cc=None, insertion=True, wf_improved=True +): + r"""Incremental closeness centrality for nodes. + + Compute closeness centrality for nodes using level-based work filtering + as described in Incremental Algorithms for Closeness Centrality by Sariyuce et al. + + Level-based work filtering detects unnecessary updates to the closeness + centrality and filters them out. + + --- + From "Incremental Algorithms for Closeness Centrality": + + Theorem 1: Let :math:`G = (V, E)` be a graph and u and v be two vertices in V + such that there is no edge (u, v) in E. Let :math:`G' = (V, E \cup uv)` + Then :math:`cc[s] = cc'[s]` if and only if :math:`\left|dG(s, u) - dG(s, v)\right| \leq 1`. + + Where :math:`dG(u, v)` denotes the length of the shortest path between + two vertices u, v in a graph G, cc[s] is the closeness centrality for a + vertex s in V, and cc'[s] is the closeness centrality for a + vertex s in V, with the (u, v) edge added. + --- + + We use Theorem 1 to filter out updates when adding or removing an edge. + When adding an edge (u, v), we compute the shortest path lengths from all + other nodes to u and to v before the node is added. When removing an edge, + we compute the shortest path lengths after the edge is removed. Then we + apply Theorem 1 to use previously computed closeness centrality for nodes + where :math:`\left|dG(s, u) - dG(s, v)\right| \leq 1`. This works only for + undirected, unweighted graphs; the distance argument is not supported. + + Closeness centrality [1]_ of a node `u` is the reciprocal of the + sum of the shortest path distances from `u` to all `n-1` other nodes. + Since the sum of distances depends on the number of nodes in the + graph, closeness is normalized by the sum of minimum possible + distances `n-1`. + + .. math:: + + C(u) = \frac{n - 1}{\sum_{v=1}^{n-1} d(v, u)}, + + where `d(v, u)` is the shortest-path distance between `v` and `u`, + and `n` is the number of nodes in the graph. + + Notice that higher values of closeness indicate higher centrality. + + Parameters + ---------- + G : graph + A NetworkX graph + + edge : tuple + The modified edge (u, v) in the graph. + + prev_cc : dictionary + The previous closeness centrality for all nodes in the graph. + + insertion : bool, optional + If True (default) the edge was inserted, otherwise it was deleted from the graph. + + wf_improved : bool, optional (default=True) + If True, scale by the fraction of nodes reachable. This gives the + Wasserman and Faust improved formula. For single component graphs + it is the same as the original formula. + + Returns + ------- + nodes : dictionary + Dictionary of nodes with closeness centrality as the value. + + See Also + -------- + betweenness_centrality, load_centrality, eigenvector_centrality, + degree_centrality, closeness_centrality + + Notes + ----- + The closeness centrality is normalized to `(n-1)/(|G|-1)` where + `n` is the number of nodes in the connected part of graph + containing the node. If the graph is not completely connected, + this algorithm computes the closeness centrality for each + connected part separately. + + References + ---------- + .. [1] Freeman, L.C., 1979. Centrality in networks: I. + Conceptual clarification. Social Networks 1, 215--239. + https://doi.org/10.1016/0378-8733(78)90021-7 + .. [2] Sariyuce, A.E. ; Kaya, K. ; Saule, E. ; Catalyiirek, U.V. Incremental + Algorithms for Closeness Centrality. 2013 IEEE International Conference on Big Data + http://sariyuce.com/papers/bigdata13.pdf + """ + if prev_cc is not None and set(prev_cc.keys()) != set(G.nodes()): + raise NetworkXError("prev_cc and G do not have the same nodes") + + # Unpack edge + (u, v) = edge + path_length = nx.single_source_shortest_path_length + + if insertion: + # For edge insertion, we want shortest paths before the edge is inserted + du = path_length(G, u) + dv = path_length(G, v) + + G.add_edge(u, v) + else: + G.remove_edge(u, v) + + # For edge removal, we want shortest paths after the edge is removed + du = path_length(G, u) + dv = path_length(G, v) + + if prev_cc is None: + return nx.closeness_centrality(G) + + nodes = G.nodes() + closeness_dict = {} + for n in nodes: + if n in du and n in dv and abs(du[n] - dv[n]) <= 1: + closeness_dict[n] = prev_cc[n] + else: + sp = path_length(G, n) + totsp = sum(sp.values()) + len_G = len(G) + _closeness_centrality = 0.0 + if totsp > 0.0 and len_G > 1: + _closeness_centrality = (len(sp) - 1.0) / totsp + # normalize to number of nodes-1 in connected part + if wf_improved: + s = (len(sp) - 1.0) / (len_G - 1) + _closeness_centrality *= s + closeness_dict[n] = _closeness_centrality + + # Leave the graph as we found it + if insertion: + G.remove_edge(u, v) + else: + G.add_edge(u, v) + + return closeness_dict diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/current_flow_betweenness.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/current_flow_betweenness.py new file mode 100644 index 0000000000000000000000000000000000000000..ce2e211c5dd790f12a22bf4c80aec8e7016eb27f --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/current_flow_betweenness.py @@ -0,0 +1,364 @@ +"""Current-flow betweenness centrality measures.""" + +import networkx as nx +from networkx.algorithms.centrality.flow_matrix import ( + CGInverseLaplacian, + FullInverseLaplacian, + SuperLUInverseLaplacian, + flow_matrix_row, +) +from networkx.utils import ( + not_implemented_for, + py_random_state, + reverse_cuthill_mckee_ordering, +) + +__all__ = [ + "current_flow_betweenness_centrality", + "approximate_current_flow_betweenness_centrality", + "edge_current_flow_betweenness_centrality", +] + + +@not_implemented_for("directed") +@py_random_state("seed") +@nx._dispatchable(edge_attrs="weight") +def approximate_current_flow_betweenness_centrality( + G, + normalized=True, + weight=None, + dtype=float, + solver="full", + epsilon=0.5, + kmax=10000, + seed=None, + *, + sample_weight=1, +): + r"""Compute the approximate current-flow betweenness centrality for nodes. + + Approximates the current-flow betweenness centrality within absolute + error of epsilon with high probability [1]_. + + + Parameters + ---------- + G : graph + A NetworkX graph + + normalized : bool, optional (default=True) + If True the betweenness values are normalized by 2/[(n-1)(n-2)] where + n is the number of nodes in G. + + weight : string or None, optional (default=None) + Key for edge data used as the edge weight. + If None, then use 1 as each edge weight. + The weight reflects the capacity or the strength of the + edge. + + dtype : data type (float) + Default data type for internal matrices. + Set to np.float32 for lower memory consumption. + + solver : string (default='full') + Type of linear solver to use for computing the flow matrix. + Options are "full" (uses most memory), "lu" (recommended), and + "cg" (uses least memory). + + epsilon: float + Absolute error tolerance. Note that smaller values of `epsilon` lead to + higher numbers of sample pairs (``k``) and thus more computation time. The number + of sample pairs is approximately ``(c/epsilon)^2 * log(n)`` where ``n`` is the + number of nodes. + + kmax: int + Maximum number of sample node pairs to use for approximation. + + sample_weight : float (default=1) + Multiplicative factor for the number of sample node pairs used in approximation. + Higher values may improve accuracy at the expense of increased computation time. + + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + + Returns + ------- + nodes : dictionary + Dictionary of nodes with betweenness centrality as the value. + + See Also + -------- + current_flow_betweenness_centrality + + Notes + ----- + The running time is $O((1/\epsilon^2)m{\sqrt k} \log n)$ + and the space required is $O(m)$ for $n$ nodes and $m$ edges. + + If the edges have a 'weight' attribute they will be used as + weights in this algorithm. Unspecified weights are set to 1. + + References + ---------- + .. [1] Ulrik Brandes and Daniel Fleischer: + Centrality Measures Based on Current Flow. + Proc. 22nd Symp. Theoretical Aspects of Computer Science (STACS '05). + LNCS 3404, pp. 533-544. Springer-Verlag, 2005. + https://doi.org/10.1007/978-3-540-31856-9_44 + """ + import numpy as np + + if not nx.is_connected(G): + raise nx.NetworkXError("Graph not connected.") + + n = G.number_of_nodes() + + # For small graphs (n < 3), betweenness centrality is always 0 for all nodes + # since no node can be "between" any pair of other nodes + if n < 3: + return dict.fromkeys(G, 0.0) + + if epsilon <= 0: + raise nx.NetworkXError(f"Epsilon must be positive. Got {epsilon=}.") + + if sample_weight <= 0: + raise nx.NetworkXError(f"Sample weight must be positive. Got {sample_weight=}.") + + nb = (n - 1.0) * (n - 2.0) # normalization factor + cstar = n * (n - 1) / nb + k = int(sample_weight * np.ceil((cstar / epsilon) ** 2 * np.log(n))) + if k > kmax: + msg = f"Number random pairs k>kmax ({k}>{kmax}) " + raise nx.NetworkXError(msg, "Increase kmax or epsilon") + + solvername = { + "full": FullInverseLaplacian, + "lu": SuperLUInverseLaplacian, + "cg": CGInverseLaplacian, + } + ordering = list(reverse_cuthill_mckee_ordering(G)) + # make a copy with integer labels according to rcm ordering + # this could be done without a copy if we really wanted to + H = nx.relabel_nodes(G, dict(zip(ordering, range(n)))) + L = nx.laplacian_matrix(H, nodelist=range(n), weight=weight).asformat("csc") + L = L.astype(dtype) + C = solvername[solver](L, dtype=dtype) # initialize solver + betweenness = dict.fromkeys(H, 0.0) + cstar2k = cstar / (2 * k) + for _ in range(k): + s, t = pair = seed.sample(range(n), 2) + b = np.zeros(n, dtype=dtype) + b[s] = 1 + b[t] = -1 + p = C.solve(b) + for v in H: + if v in pair: + continue + for nbr in H[v]: + w = H[v][nbr].get(weight, 1.0) + betweenness[v] += float(w * np.abs(p[v] - p[nbr]) * cstar2k) + if normalized: + factor = 1.0 + else: + factor = nb / 2.0 + # remap to original node names and "unnormalize" if required + return {ordering[k]: v * factor for k, v in betweenness.items()} + + +@not_implemented_for("directed") +@nx._dispatchable(edge_attrs="weight") +def current_flow_betweenness_centrality( + G, normalized=True, weight=None, dtype=float, solver="full" +): + r"""Compute current-flow betweenness centrality for nodes. + + Current-flow betweenness centrality uses an electrical current + model for information spreading in contrast to betweenness + centrality which uses shortest paths. + + Current-flow betweenness centrality is also known as + random-walk betweenness centrality [2]_. + + Parameters + ---------- + G : graph + A NetworkX graph + + normalized : bool, optional (default=True) + If True the betweenness values are normalized by 2/[(n-1)(n-2)] where + n is the number of nodes in G. + + weight : string or None, optional (default=None) + Key for edge data used as the edge weight. + If None, then use 1 as each edge weight. + The weight reflects the capacity or the strength of the + edge. + + dtype : data type (float) + Default data type for internal matrices. + Set to np.float32 for lower memory consumption. + + solver : string (default='full') + Type of linear solver to use for computing the flow matrix. + Options are "full" (uses most memory), "lu" (recommended), and + "cg" (uses least memory). + + Returns + ------- + nodes : dictionary + Dictionary of nodes with betweenness centrality as the value. + + See Also + -------- + approximate_current_flow_betweenness_centrality + betweenness_centrality + edge_betweenness_centrality + edge_current_flow_betweenness_centrality + + Notes + ----- + Current-flow betweenness can be computed in $O(I(n-1)+mn \log n)$ + time [1]_, where $I(n-1)$ is the time needed to compute the + inverse Laplacian. For a full matrix this is $O(n^3)$ but using + sparse methods you can achieve $O(nm{\sqrt k})$ where $k$ is the + Laplacian matrix condition number. + + The space required is $O(nw)$ where $w$ is the width of the sparse + Laplacian matrix. Worse case is $w=n$ for $O(n^2)$. + + If the edges have a 'weight' attribute they will be used as + weights in this algorithm. Unspecified weights are set to 1. + + References + ---------- + .. [1] Centrality Measures Based on Current Flow. + Ulrik Brandes and Daniel Fleischer, + Proc. 22nd Symp. Theoretical Aspects of Computer Science (STACS '05). + LNCS 3404, pp. 533-544. Springer-Verlag, 2005. + https://doi.org/10.1007/978-3-540-31856-9_44 + + .. [2] A measure of betweenness centrality based on random walks, + M. E. J. Newman, Social Networks 27, 39-54 (2005). + """ + if not nx.is_connected(G): + raise nx.NetworkXError("Graph not connected.") + N = G.number_of_nodes() + ordering = list(reverse_cuthill_mckee_ordering(G)) + # make a copy with integer labels according to rcm ordering + # this could be done without a copy if we really wanted to + H = nx.relabel_nodes(G, dict(zip(ordering, range(N)))) + betweenness = dict.fromkeys(H, 0.0) # b[n]=0 for n in H + for row, (s, t) in flow_matrix_row(H, weight=weight, dtype=dtype, solver=solver): + pos = dict(zip(row.argsort()[::-1], range(N))) + for i in range(N): + betweenness[s] += (i - pos[i]) * row.item(i) + betweenness[t] += (N - i - 1 - pos[i]) * row.item(i) + if normalized: + nb = (N - 1.0) * (N - 2.0) # normalization factor + else: + nb = 2.0 + return {ordering[n]: (b - n) * 2.0 / nb for n, b in betweenness.items()} + + +@not_implemented_for("directed") +@nx._dispatchable(edge_attrs="weight") +def edge_current_flow_betweenness_centrality( + G, normalized=True, weight=None, dtype=float, solver="full" +): + r"""Compute current-flow betweenness centrality for edges. + + Current-flow betweenness centrality uses an electrical current + model for information spreading in contrast to betweenness + centrality which uses shortest paths. + + Current-flow betweenness centrality is also known as + random-walk betweenness centrality [2]_. + + Parameters + ---------- + G : graph + A NetworkX graph + + normalized : bool, optional (default=True) + If True the betweenness values are normalized by 2/[(n-1)(n-2)] where + n is the number of nodes in G. + + weight : string or None, optional (default=None) + Key for edge data used as the edge weight. + If None, then use 1 as each edge weight. + The weight reflects the capacity or the strength of the + edge. + + dtype : data type (default=float) + Default data type for internal matrices. + Set to np.float32 for lower memory consumption. + + solver : string (default='full') + Type of linear solver to use for computing the flow matrix. + Options are "full" (uses most memory), "lu" (recommended), and + "cg" (uses least memory). + + Returns + ------- + nodes : dictionary + Dictionary of edge tuples with betweenness centrality as the value. + + Raises + ------ + NetworkXError + The algorithm does not support DiGraphs. + If the input graph is an instance of DiGraph class, NetworkXError + is raised. + + See Also + -------- + betweenness_centrality + edge_betweenness_centrality + current_flow_betweenness_centrality + + Notes + ----- + Current-flow betweenness can be computed in $O(I(n-1)+mn \log n)$ + time [1]_, where $I(n-1)$ is the time needed to compute the + inverse Laplacian. For a full matrix this is $O(n^3)$ but using + sparse methods you can achieve $O(nm{\sqrt k})$ where $k$ is the + Laplacian matrix condition number. + + The space required is $O(nw)$ where $w$ is the width of the sparse + Laplacian matrix. Worse case is $w=n$ for $O(n^2)$. + + If the edges have a 'weight' attribute they will be used as + weights in this algorithm. Unspecified weights are set to 1. + + References + ---------- + .. [1] Centrality Measures Based on Current Flow. + Ulrik Brandes and Daniel Fleischer, + Proc. 22nd Symp. Theoretical Aspects of Computer Science (STACS '05). + LNCS 3404, pp. 533-544. Springer-Verlag, 2005. + https://doi.org/10.1007/978-3-540-31856-9_44 + + .. [2] A measure of betweenness centrality based on random walks, + M. E. J. Newman, Social Networks 27, 39-54 (2005). + """ + if not nx.is_connected(G): + raise nx.NetworkXError("Graph not connected.") + N = G.number_of_nodes() + ordering = list(reverse_cuthill_mckee_ordering(G)) + # make a copy with integer labels according to rcm ordering + # this could be done without a copy if we really wanted to + H = nx.relabel_nodes(G, dict(zip(ordering, range(N)))) + edges = (tuple(sorted((u, v))) for u, v in H.edges()) + betweenness = dict.fromkeys(edges, 0.0) + if normalized: + nb = (N - 1.0) * (N - 2.0) # normalization factor + else: + nb = 2.0 + for row, (e) in flow_matrix_row(H, weight=weight, dtype=dtype, solver=solver): + pos = dict(zip(row.argsort()[::-1], range(1, N + 1))) + for i in range(N): + betweenness[e] += (i + 1 - pos[i]) * row.item(i) + betweenness[e] += (N - i - pos[i]) * row.item(i) + betweenness[e] /= nb + return {(ordering[s], ordering[t]): b for (s, t), b in betweenness.items()} diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/current_flow_betweenness_subset.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/current_flow_betweenness_subset.py new file mode 100644 index 0000000000000000000000000000000000000000..911718c80bd50589abe645e44e862add4fc8dbcd --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/current_flow_betweenness_subset.py @@ -0,0 +1,227 @@ +"""Current-flow betweenness centrality measures for subsets of nodes.""" + +import networkx as nx +from networkx.algorithms.centrality.flow_matrix import flow_matrix_row +from networkx.utils import not_implemented_for, reverse_cuthill_mckee_ordering + +__all__ = [ + "current_flow_betweenness_centrality_subset", + "edge_current_flow_betweenness_centrality_subset", +] + + +@not_implemented_for("directed") +@nx._dispatchable(edge_attrs="weight") +def current_flow_betweenness_centrality_subset( + G, sources, targets, normalized=True, weight=None, dtype=float, solver="lu" +): + r"""Compute current-flow betweenness centrality for subsets of nodes. + + Current-flow betweenness centrality uses an electrical current + model for information spreading in contrast to betweenness + centrality which uses shortest paths. + + Current-flow betweenness centrality is also known as + random-walk betweenness centrality [2]_. + + Parameters + ---------- + G : graph + A NetworkX graph + + sources: list of nodes + Nodes to use as sources for current + + targets: list of nodes + Nodes to use as sinks for current + + normalized : bool, optional (default=True) + If True the betweenness values are normalized by b=b/(n-1)(n-2) where + n is the number of nodes in G. + + weight : string or None, optional (default=None) + Key for edge data used as the edge weight. + If None, then use 1 as each edge weight. + The weight reflects the capacity or the strength of the + edge. + + dtype: data type (float) + Default data type for internal matrices. + Set to np.float32 for lower memory consumption. + + solver: string (default='lu') + Type of linear solver to use for computing the flow matrix. + Options are "full" (uses most memory), "lu" (recommended), and + "cg" (uses least memory). + + Returns + ------- + nodes : dictionary + Dictionary of nodes with betweenness centrality as the value. + + See Also + -------- + approximate_current_flow_betweenness_centrality + betweenness_centrality + edge_betweenness_centrality + edge_current_flow_betweenness_centrality + + Notes + ----- + Current-flow betweenness can be computed in $O(I(n-1)+mn \log n)$ + time [1]_, where $I(n-1)$ is the time needed to compute the + inverse Laplacian. For a full matrix this is $O(n^3)$ but using + sparse methods you can achieve $O(nm{\sqrt k})$ where $k$ is the + Laplacian matrix condition number. + + The space required is $O(nw)$ where $w$ is the width of the sparse + Laplacian matrix. Worse case is $w=n$ for $O(n^2)$. + + If the edges have a 'weight' attribute they will be used as + weights in this algorithm. Unspecified weights are set to 1. + + References + ---------- + .. [1] Centrality Measures Based on Current Flow. + Ulrik Brandes and Daniel Fleischer, + Proc. 22nd Symp. Theoretical Aspects of Computer Science (STACS '05). + LNCS 3404, pp. 533-544. Springer-Verlag, 2005. + https://doi.org/10.1007/978-3-540-31856-9_44 + + .. [2] A measure of betweenness centrality based on random walks, + M. E. J. Newman, Social Networks 27, 39-54 (2005). + """ + import numpy as np + + from networkx.utils import reverse_cuthill_mckee_ordering + + if not nx.is_connected(G): + raise nx.NetworkXError("Graph not connected.") + N = G.number_of_nodes() + ordering = list(reverse_cuthill_mckee_ordering(G)) + # make a copy with integer labels according to rcm ordering + # this could be done without a copy if we really wanted to + mapping = dict(zip(ordering, range(N))) + H = nx.relabel_nodes(G, mapping) + betweenness = dict.fromkeys(H, 0.0) # b[n]=0 for n in H + for row, (s, t) in flow_matrix_row(H, weight=weight, dtype=dtype, solver=solver): + for ss in sources: + i = mapping[ss] + for tt in targets: + j = mapping[tt] + betweenness[s] += 0.5 * abs(row.item(i) - row.item(j)) + betweenness[t] += 0.5 * abs(row.item(i) - row.item(j)) + if normalized: + nb = (N - 1.0) * (N - 2.0) # normalization factor + else: + nb = 2.0 + for node in H: + betweenness[node] = betweenness[node] / nb + 1.0 / (2 - N) + return {ordering[node]: value for node, value in betweenness.items()} + + +@not_implemented_for("directed") +@nx._dispatchable(edge_attrs="weight") +def edge_current_flow_betweenness_centrality_subset( + G, sources, targets, normalized=True, weight=None, dtype=float, solver="lu" +): + r"""Compute current-flow betweenness centrality for edges using subsets + of nodes. + + Current-flow betweenness centrality uses an electrical current + model for information spreading in contrast to betweenness + centrality which uses shortest paths. + + Current-flow betweenness centrality is also known as + random-walk betweenness centrality [2]_. + + Parameters + ---------- + G : graph + A NetworkX graph + + sources: list of nodes + Nodes to use as sources for current + + targets: list of nodes + Nodes to use as sinks for current + + normalized : bool, optional (default=True) + If True the betweenness values are normalized by b=b/(n-1)(n-2) where + n is the number of nodes in G. + + weight : string or None, optional (default=None) + Key for edge data used as the edge weight. + If None, then use 1 as each edge weight. + The weight reflects the capacity or the strength of the + edge. + + dtype: data type (float) + Default data type for internal matrices. + Set to np.float32 for lower memory consumption. + + solver: string (default='lu') + Type of linear solver to use for computing the flow matrix. + Options are "full" (uses most memory), "lu" (recommended), and + "cg" (uses least memory). + + Returns + ------- + nodes : dict + Dictionary of edge tuples with betweenness centrality as the value. + + See Also + -------- + betweenness_centrality + edge_betweenness_centrality + current_flow_betweenness_centrality + + Notes + ----- + Current-flow betweenness can be computed in $O(I(n-1)+mn \log n)$ + time [1]_, where $I(n-1)$ is the time needed to compute the + inverse Laplacian. For a full matrix this is $O(n^3)$ but using + sparse methods you can achieve $O(nm{\sqrt k})$ where $k$ is the + Laplacian matrix condition number. + + The space required is $O(nw)$ where $w$ is the width of the sparse + Laplacian matrix. Worse case is $w=n$ for $O(n^2)$. + + If the edges have a 'weight' attribute they will be used as + weights in this algorithm. Unspecified weights are set to 1. + + References + ---------- + .. [1] Centrality Measures Based on Current Flow. + Ulrik Brandes and Daniel Fleischer, + Proc. 22nd Symp. Theoretical Aspects of Computer Science (STACS '05). + LNCS 3404, pp. 533-544. Springer-Verlag, 2005. + https://doi.org/10.1007/978-3-540-31856-9_44 + + .. [2] A measure of betweenness centrality based on random walks, + M. E. J. Newman, Social Networks 27, 39-54 (2005). + """ + import numpy as np + + if not nx.is_connected(G): + raise nx.NetworkXError("Graph not connected.") + N = G.number_of_nodes() + ordering = list(reverse_cuthill_mckee_ordering(G)) + # make a copy with integer labels according to rcm ordering + # this could be done without a copy if we really wanted to + mapping = dict(zip(ordering, range(N))) + H = nx.relabel_nodes(G, mapping) + edges = (tuple(sorted((u, v))) for u, v in H.edges()) + betweenness = dict.fromkeys(edges, 0.0) + if normalized: + nb = (N - 1.0) * (N - 2.0) # normalization factor + else: + nb = 2.0 + for row, (e) in flow_matrix_row(H, weight=weight, dtype=dtype, solver=solver): + for ss in sources: + i = mapping[ss] + for tt in targets: + j = mapping[tt] + betweenness[e] += 0.5 * abs(row.item(i) - row.item(j)) + betweenness[e] /= nb + return {(ordering[s], ordering[t]): value for (s, t), value in betweenness.items()} diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/current_flow_closeness.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/current_flow_closeness.py new file mode 100644 index 0000000000000000000000000000000000000000..67f86397bdcd61b344256b2b4c08f2c21986e05a --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/current_flow_closeness.py @@ -0,0 +1,96 @@ +"""Current-flow closeness centrality measures.""" + +import networkx as nx +from networkx.algorithms.centrality.flow_matrix import ( + CGInverseLaplacian, + FullInverseLaplacian, + SuperLUInverseLaplacian, +) +from networkx.utils import not_implemented_for, reverse_cuthill_mckee_ordering + +__all__ = ["current_flow_closeness_centrality", "information_centrality"] + + +@not_implemented_for("directed") +@nx._dispatchable(edge_attrs="weight") +def current_flow_closeness_centrality(G, weight=None, dtype=float, solver="lu"): + """Compute current-flow closeness centrality for nodes. + + Current-flow closeness centrality is variant of closeness + centrality based on effective resistance between nodes in + a network. This metric is also known as information centrality. + + Parameters + ---------- + G : graph + A NetworkX graph. + + weight : None or string, optional (default=None) + If None, all edge weights are considered equal. + Otherwise holds the name of the edge attribute used as weight. + The weight reflects the capacity or the strength of the + edge. + + dtype: data type (default=float) + Default data type for internal matrices. + Set to np.float32 for lower memory consumption. + + solver: string (default='lu') + Type of linear solver to use for computing the flow matrix. + Options are "full" (uses most memory), "lu" (recommended), and + "cg" (uses least memory). + + Returns + ------- + nodes : dictionary + Dictionary of nodes with current flow closeness centrality as the value. + + See Also + -------- + closeness_centrality + + Notes + ----- + The algorithm is from Brandes [1]_. + + See also [2]_ for the original definition of information centrality. + + References + ---------- + .. [1] Ulrik Brandes and Daniel Fleischer, + Centrality Measures Based on Current Flow. + Proc. 22nd Symp. Theoretical Aspects of Computer Science (STACS '05). + LNCS 3404, pp. 533-544. Springer-Verlag, 2005. + https://doi.org/10.1007/978-3-540-31856-9_44 + + .. [2] Karen Stephenson and Marvin Zelen: + Rethinking centrality: Methods and examples. + Social Networks 11(1):1-37, 1989. + https://doi.org/10.1016/0378-8733(89)90016-6 + """ + if not nx.is_connected(G): + raise nx.NetworkXError("Graph not connected.") + solvername = { + "full": FullInverseLaplacian, + "lu": SuperLUInverseLaplacian, + "cg": CGInverseLaplacian, + } + N = G.number_of_nodes() + ordering = list(reverse_cuthill_mckee_ordering(G)) + # make a copy with integer labels according to rcm ordering + # this could be done without a copy if we really wanted to + H = nx.relabel_nodes(G, dict(zip(ordering, range(N)))) + betweenness = dict.fromkeys(H, 0.0) # b[n]=0 for n in H + N = H.number_of_nodes() + L = nx.laplacian_matrix(H, nodelist=range(N), weight=weight).asformat("csc") + L = L.astype(dtype) + C2 = solvername[solver](L, width=1, dtype=dtype) # initialize solver + for v in H: + col = C2.get_row(v) + for w in H: + betweenness[v] += col.item(v) - 2 * col.item(w) + betweenness[w] += col.item(v) + return {ordering[node]: 1 / value for node, value in betweenness.items()} + + +information_centrality = current_flow_closeness_centrality diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/degree_alg.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/degree_alg.py new file mode 100644 index 0000000000000000000000000000000000000000..b3c1e321be3f9f3febce5a9104bde09924847001 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/degree_alg.py @@ -0,0 +1,150 @@ +"""Degree centrality measures.""" + +import networkx as nx +from networkx.utils.decorators import not_implemented_for + +__all__ = ["degree_centrality", "in_degree_centrality", "out_degree_centrality"] + + +@nx._dispatchable +def degree_centrality(G): + """Compute the degree centrality for nodes. + + The degree centrality for a node v is the fraction of nodes it + is connected to. + + Parameters + ---------- + G : graph + A networkx graph + + Returns + ------- + nodes : dictionary + Dictionary of nodes with degree centrality as the value. + + Examples + -------- + >>> G = nx.Graph([(0, 1), (0, 2), (0, 3), (1, 2), (1, 3)]) + >>> nx.degree_centrality(G) + {0: 1.0, 1: 1.0, 2: 0.6666666666666666, 3: 0.6666666666666666} + + See Also + -------- + betweenness_centrality, load_centrality, eigenvector_centrality + + Notes + ----- + The degree centrality values are normalized by dividing by the maximum + possible degree in a simple graph n-1 where n is the number of nodes in G. + + For multigraphs or graphs with self loops the maximum degree might + be higher than n-1 and values of degree centrality greater than 1 + are possible. + """ + if len(G) <= 1: + return {n: 1 for n in G} + + s = 1.0 / (len(G) - 1.0) + centrality = {n: d * s for n, d in G.degree()} + return centrality + + +@not_implemented_for("undirected") +@nx._dispatchable +def in_degree_centrality(G): + """Compute the in-degree centrality for nodes. + + The in-degree centrality for a node v is the fraction of nodes its + incoming edges are connected to. + + Parameters + ---------- + G : graph + A NetworkX graph + + Returns + ------- + nodes : dictionary + Dictionary of nodes with in-degree centrality as values. + + Raises + ------ + NetworkXNotImplemented + If G is undirected. + + Examples + -------- + >>> G = nx.DiGraph([(0, 1), (0, 2), (0, 3), (1, 2), (1, 3)]) + >>> nx.in_degree_centrality(G) + {0: 0.0, 1: 0.3333333333333333, 2: 0.6666666666666666, 3: 0.6666666666666666} + + See Also + -------- + degree_centrality, out_degree_centrality + + Notes + ----- + The degree centrality values are normalized by dividing by the maximum + possible degree in a simple graph n-1 where n is the number of nodes in G. + + For multigraphs or graphs with self loops the maximum degree might + be higher than n-1 and values of degree centrality greater than 1 + are possible. + """ + if len(G) <= 1: + return {n: 1 for n in G} + + s = 1.0 / (len(G) - 1.0) + centrality = {n: d * s for n, d in G.in_degree()} + return centrality + + +@not_implemented_for("undirected") +@nx._dispatchable +def out_degree_centrality(G): + """Compute the out-degree centrality for nodes. + + The out-degree centrality for a node v is the fraction of nodes its + outgoing edges are connected to. + + Parameters + ---------- + G : graph + A NetworkX graph + + Returns + ------- + nodes : dictionary + Dictionary of nodes with out-degree centrality as values. + + Raises + ------ + NetworkXNotImplemented + If G is undirected. + + Examples + -------- + >>> G = nx.DiGraph([(0, 1), (0, 2), (0, 3), (1, 2), (1, 3)]) + >>> nx.out_degree_centrality(G) + {0: 1.0, 1: 0.6666666666666666, 2: 0.0, 3: 0.0} + + See Also + -------- + degree_centrality, in_degree_centrality + + Notes + ----- + The degree centrality values are normalized by dividing by the maximum + possible degree in a simple graph n-1 where n is the number of nodes in G. + + For multigraphs or graphs with self loops the maximum degree might + be higher than n-1 and values of degree centrality greater than 1 + are possible. + """ + if len(G) <= 1: + return {n: 1 for n in G} + + s = 1.0 / (len(G) - 1.0) + centrality = {n: d * s for n, d in G.out_degree()} + return centrality diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/dispersion.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/dispersion.py new file mode 100644 index 0000000000000000000000000000000000000000..a3fa68583a9d18a40e6fbd4c8267e25f7a13c60a --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/dispersion.py @@ -0,0 +1,107 @@ +from itertools import combinations + +import networkx as nx + +__all__ = ["dispersion"] + + +@nx._dispatchable +def dispersion(G, u=None, v=None, normalized=True, alpha=1.0, b=0.0, c=0.0): + r"""Calculate dispersion between `u` and `v` in `G`. + + A link between two actors (`u` and `v`) has a high dispersion when their + mutual ties (`s` and `t`) are not well connected with each other. + + Parameters + ---------- + G : graph + A NetworkX graph. + u : node, optional + The source for the dispersion score (e.g. ego node of the network). + v : node, optional + The target of the dispersion score if specified. + normalized : bool + If True (default) normalize by the embeddedness of the nodes (u and v). + alpha, b, c : float + Parameters for the normalization procedure. When `normalized` is True, + the dispersion value is normalized by:: + + result = ((dispersion + b) ** alpha) / (embeddedness + c) + + as long as the denominator is nonzero. + + Returns + ------- + nodes : dictionary + If u (v) is specified, returns a dictionary of nodes with dispersion + score for all "target" ("source") nodes. If neither u nor v is + specified, returns a dictionary of dictionaries for all nodes 'u' in the + graph with a dispersion score for each node 'v'. + + Notes + ----- + This implementation follows Lars Backstrom and Jon Kleinberg [1]_. Typical + usage would be to run dispersion on the ego network $G_u$ if $u$ were + specified. Running :func:`dispersion` with neither $u$ nor $v$ specified + can take some time to complete. + + References + ---------- + .. [1] Romantic Partnerships and the Dispersion of Social Ties: + A Network Analysis of Relationship Status on Facebook. + Lars Backstrom, Jon Kleinberg. + https://arxiv.org/pdf/1310.6753v1.pdf + + """ + + def _dispersion(G_u, u, v): + """dispersion for all nodes 'v' in a ego network G_u of node 'u'""" + u_nbrs = set(G_u[u]) + ST = {n for n in G_u[v] if n in u_nbrs} + set_uv = {u, v} + # all possible ties of connections that u and b share + possib = combinations(ST, 2) + total = 0 + for s, t in possib: + # neighbors of s that are in G_u, not including u and v + nbrs_s = u_nbrs.intersection(G_u[s]) - set_uv + # s and t are not directly connected + if t not in nbrs_s: + # s and t do not share a connection + if nbrs_s.isdisjoint(G_u[t]): + # tick for disp(u, v) + total += 1 + # neighbors that u and v share + embeddedness = len(ST) + + dispersion_val = total + if normalized: + dispersion_val = (total + b) ** alpha + if embeddedness + c != 0: + dispersion_val /= embeddedness + c + + return dispersion_val + + if u is None: + # v and u are not specified + if v is None: + results = {n: {} for n in G} + for u in G: + for v in G[u]: + results[u][v] = _dispersion(G, u, v) + # u is not specified, but v is + else: + results = dict.fromkeys(G[v], {}) + for u in G[v]: + results[u] = _dispersion(G, v, u) + else: + # u is specified with no target v + if v is None: + results = dict.fromkeys(G[u], {}) + for v in G[u]: + results[v] = _dispersion(G, u, v) + # both u and v are specified + else: + results = _dispersion(G, u, v) + + return results diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/eigenvector.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/eigenvector.py new file mode 100644 index 0000000000000000000000000000000000000000..b8cf63e8dc3562df2d570c3590501a51654367ff --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/eigenvector.py @@ -0,0 +1,357 @@ +"""Functions for computing eigenvector centrality.""" + +import math + +import networkx as nx +from networkx.utils import not_implemented_for + +__all__ = ["eigenvector_centrality", "eigenvector_centrality_numpy"] + + +@not_implemented_for("multigraph") +@nx._dispatchable(edge_attrs="weight") +def eigenvector_centrality(G, max_iter=100, tol=1.0e-6, nstart=None, weight=None): + r"""Compute the eigenvector centrality for the graph G. + + Eigenvector centrality computes the centrality for a node by adding + the centrality of its predecessors. The centrality for node $i$ is the + $i$-th element of a left eigenvector associated with the eigenvalue $\lambda$ + of maximum modulus that is positive. Such an eigenvector $x$ is + defined up to a multiplicative constant by the equation + + .. math:: + + \lambda x^T = x^T A, + + where $A$ is the adjacency matrix of the graph G. By definition of + row-column product, the equation above is equivalent to + + .. math:: + + \lambda x_i = \sum_{j\to i}x_j. + + That is, adding the eigenvector centralities of the predecessors of + $i$ one obtains the eigenvector centrality of $i$ multiplied by + $\lambda$. In the case of undirected graphs, $x$ also solves the familiar + right-eigenvector equation $Ax = \lambda x$. + + By virtue of the Perron–Frobenius theorem [1]_, if G is strongly + connected there is a unique eigenvector $x$, and all its entries + are strictly positive. + + If G is not strongly connected there might be several left + eigenvectors associated with $\lambda$, and some of their elements + might be zero. + + Parameters + ---------- + G : graph + A networkx graph. + + max_iter : integer, optional (default=100) + Maximum number of power iterations. + + tol : float, optional (default=1.0e-6) + Error tolerance (in Euclidean norm) used to check convergence in + power iteration. + + nstart : dictionary, optional (default=None) + Starting value of power iteration for each node. Must have a nonzero + projection on the desired eigenvector for the power method to converge. + If None, this implementation uses an all-ones vector, which is a safe + choice. + + weight : None or string, optional (default=None) + If None, all edge weights are considered equal. Otherwise holds the + name of the edge attribute used as weight. In this measure the + weight is interpreted as the connection strength. + + Returns + ------- + nodes : dictionary + Dictionary of nodes with eigenvector centrality as the value. The + associated vector has unit Euclidean norm and the values are + nonegative. + + Examples + -------- + >>> G = nx.path_graph(4) + >>> centrality = nx.eigenvector_centrality(G) + >>> sorted((v, f"{c:0.2f}") for v, c in centrality.items()) + [(0, '0.37'), (1, '0.60'), (2, '0.60'), (3, '0.37')] + + Raises + ------ + NetworkXPointlessConcept + If the graph G is the null graph. + + NetworkXError + If each value in `nstart` is zero. + + PowerIterationFailedConvergence + If the algorithm fails to converge to the specified tolerance + within the specified number of iterations of the power iteration + method. + + See Also + -------- + eigenvector_centrality_numpy + :func:`~networkx.algorithms.link_analysis.pagerank_alg.pagerank` + :func:`~networkx.algorithms.link_analysis.hits_alg.hits` + + Notes + ----- + Eigenvector centrality was introduced by Landau [2]_ for chess + tournaments. It was later rediscovered by Wei [3]_ and then + popularized by Kendall [4]_ in the context of sport ranking. Berge + introduced a general definition for graphs based on social connections + [5]_. Bonacich [6]_ reintroduced again eigenvector centrality and made + it popular in link analysis. + + This function computes the left dominant eigenvector, which corresponds + to adding the centrality of predecessors: this is the usual approach. + To add the centrality of successors first reverse the graph with + ``G.reverse()``. + + The implementation uses power iteration [7]_ to compute a dominant + eigenvector starting from the provided vector `nstart`. Convergence is + guaranteed as long as `nstart` has a nonzero projection on a dominant + eigenvector, which certainly happens using the default value. + + The method stops when the change in the computed vector between two + iterations is smaller than an error tolerance of ``G.number_of_nodes() + * tol`` or after ``max_iter`` iterations, but in the second case it + raises an exception. + + This implementation uses $(A + I)$ rather than the adjacency matrix + $A$ because the change preserves eigenvectors, but it shifts the + spectrum, thus guaranteeing convergence even for networks with + negative eigenvalues of maximum modulus. + + References + ---------- + .. [1] Abraham Berman and Robert J. Plemmons. + "Nonnegative Matrices in the Mathematical Sciences." + Classics in Applied Mathematics. SIAM, 1994. + + .. [2] Edmund Landau. + "Zur relativen Wertbemessung der Turnierresultate." + Deutsches Wochenschach, 11:366–369, 1895. + + .. [3] Teh-Hsing Wei. + "The Algebraic Foundations of Ranking Theory." + PhD thesis, University of Cambridge, 1952. + + .. [4] Maurice G. Kendall. + "Further contributions to the theory of paired comparisons." + Biometrics, 11(1):43–62, 1955. + https://www.jstor.org/stable/3001479 + + .. [5] Claude Berge + "Théorie des graphes et ses applications." + Dunod, Paris, France, 1958. + + .. [6] Phillip Bonacich. + "Technique for analyzing overlapping memberships." + Sociological Methodology, 4:176–185, 1972. + https://www.jstor.org/stable/270732 + + .. [7] Power iteration:: https://en.wikipedia.org/wiki/Power_iteration + + """ + if len(G) == 0: + raise nx.NetworkXPointlessConcept( + "cannot compute centrality for the null graph" + ) + # If no initial vector is provided, start with the all-ones vector. + if nstart is None: + nstart = {v: 1 for v in G} + if all(v == 0 for v in nstart.values()): + raise nx.NetworkXError("initial vector cannot have all zero values") + # Normalize the initial vector so that each entry is in [0, 1]. This is + # guaranteed to never have a divide-by-zero error by the previous line. + nstart_sum = sum(nstart.values()) + x = {k: v / nstart_sum for k, v in nstart.items()} + nnodes = G.number_of_nodes() + # make up to max_iter iterations + for _ in range(max_iter): + xlast = x + x = xlast.copy() # Start with xlast times I to iterate with (A+I) + # do the multiplication y^T = x^T A (left eigenvector) + for n in x: + for nbr in G[n]: + w = G[n][nbr].get(weight, 1) if weight else 1 + x[nbr] += xlast[n] * w + # Normalize the vector. The normalization denominator `norm` + # should never be zero by the Perron--Frobenius + # theorem. However, in case it is due to numerical error, we + # assume the norm to be one instead. + norm = math.hypot(*x.values()) or 1 + x = {k: v / norm for k, v in x.items()} + # Check for convergence (in the L_1 norm). + if sum(abs(x[n] - xlast[n]) for n in x) < nnodes * tol: + return x + raise nx.PowerIterationFailedConvergence(max_iter) + + +@nx._dispatchable(edge_attrs="weight") +def eigenvector_centrality_numpy(G, weight=None, max_iter=50, tol=0): + r"""Compute the eigenvector centrality for the graph `G`. + + Eigenvector centrality computes the centrality for a node by adding + the centrality of its predecessors. The centrality for node $i$ is the + $i$-th element of a left eigenvector associated with the eigenvalue $\lambda$ + of maximum modulus that is positive. Such an eigenvector $x$ is + defined up to a multiplicative constant by the equation + + .. math:: + + \lambda x^T = x^T A, + + where $A$ is the adjacency matrix of the graph `G`. By definition of + row-column product, the equation above is equivalent to + + .. math:: + + \lambda x_i = \sum_{j\to i}x_j. + + That is, adding the eigenvector centralities of the predecessors of + $i$ one obtains the eigenvector centrality of $i$ multiplied by + $\lambda$. In the case of undirected graphs, $x$ also solves the familiar + right-eigenvector equation $Ax = \lambda x$. + + By virtue of the Perron--Frobenius theorem [1]_, if `G` is (strongly) + connected, there is a unique eigenvector $x$, and all its entries + are strictly positive. + + However, if `G` is not (strongly) connected, there might be several left + eigenvectors associated with $\lambda$, and some of their elements + might be zero. + Depending on the method used to choose eigenvectors, round-off error can affect + which of the infinitely many eigenvectors is reported. + This can lead to inconsistent results for the same graph, + which the underlying implementation is not robust to. + For this reason, only (strongly) connected graphs are accepted. + + Parameters + ---------- + G : graph + A connected NetworkX graph. + + weight : None or string, optional (default=None) + If ``None``, all edge weights are considered equal. Otherwise holds the + name of the edge attribute used as weight. In this measure the + weight is interpreted as the connection strength. + + max_iter : integer, optional (default=50) + Maximum number of Arnoldi update iterations allowed. + + tol : float, optional (default=0) + Relative accuracy for eigenvalues (stopping criterion). + The default value of 0 implies machine precision. + + Returns + ------- + nodes : dict of nodes + Dictionary of nodes with eigenvector centrality as the value. The + associated vector has unit Euclidean norm and the values are + nonnegative. + + Examples + -------- + >>> G = nx.path_graph(4) + >>> centrality = nx.eigenvector_centrality_numpy(G) + >>> print([f"{node} {centrality[node]:0.2f}" for node in centrality]) + ['0 0.37', '1 0.60', '2 0.60', '3 0.37'] + + Raises + ------ + NetworkXPointlessConcept + If the graph `G` is the null graph. + + ArpackNoConvergence + When the requested convergence is not obtained. The currently + converged eigenvalues and eigenvectors can be found as + eigenvalues and eigenvectors attributes of the exception object. + + AmbiguousSolution + If `G` is not connected. + + See Also + -------- + :func:`scipy.sparse.linalg.eigs` + eigenvector_centrality + :func:`~networkx.algorithms.link_analysis.pagerank_alg.pagerank` + :func:`~networkx.algorithms.link_analysis.hits_alg.hits` + + Notes + ----- + Eigenvector centrality was introduced by Landau [2]_ for chess + tournaments. It was later rediscovered by Wei [3]_ and then + popularized by Kendall [4]_ in the context of sport ranking. Berge + introduced a general definition for graphs based on social connections + [5]_. Bonacich [6]_ reintroduced again eigenvector centrality and made + it popular in link analysis. + + This function computes the left dominant eigenvector, which corresponds + to adding the centrality of predecessors: this is the usual approach. + To add the centrality of successors first reverse the graph with + ``G.reverse()``. + + This implementation uses the + :func:`SciPy sparse eigenvalue solver` (ARPACK) + to find the largest eigenvalue/eigenvector pair using Arnoldi iterations + [7]_. + + References + ---------- + .. [1] Abraham Berman and Robert J. Plemmons. + "Nonnegative Matrices in the Mathematical Sciences". + Classics in Applied Mathematics. SIAM, 1994. + + .. [2] Edmund Landau. + "Zur relativen Wertbemessung der Turnierresultate". + Deutsches Wochenschach, 11:366--369, 1895. + + .. [3] Teh-Hsing Wei. + "The Algebraic Foundations of Ranking Theory". + PhD thesis, University of Cambridge, 1952. + + .. [4] Maurice G. Kendall. + "Further contributions to the theory of paired comparisons". + Biometrics, 11(1):43--62, 1955. + https://www.jstor.org/stable/3001479 + + .. [5] Claude Berge. + "Théorie des graphes et ses applications". + Dunod, Paris, France, 1958. + + .. [6] Phillip Bonacich. + "Technique for analyzing overlapping memberships". + Sociological Methodology, 4:176--185, 1972. + https://www.jstor.org/stable/270732 + + .. [7] Arnoldi, W. E. (1951). + "The principle of minimized iterations in the solution of the matrix eigenvalue problem". + Quarterly of Applied Mathematics. 9 (1): 17--29. + https://doi.org/10.1090/qam/42792 + """ + import numpy as np + import scipy as sp + + if len(G) == 0: + raise nx.NetworkXPointlessConcept( + "cannot compute centrality for the null graph" + ) + connected = nx.is_strongly_connected(G) if G.is_directed() else nx.is_connected(G) + if not connected: # See gh-6888. + raise nx.AmbiguousSolution( + "`eigenvector_centrality_numpy` does not give consistent results for disconnected graphs" + ) + M = nx.to_scipy_sparse_array(G, nodelist=list(G), weight=weight, dtype=float) + _, eigenvector = sp.sparse.linalg.eigs( + M.T, k=1, which="LR", maxiter=max_iter, tol=tol + ) + largest = eigenvector.flatten().real + norm = np.sign(largest.sum()) * sp.linalg.norm(largest) + return dict(zip(G, (largest / norm).tolist())) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/flow_matrix.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/flow_matrix.py new file mode 100644 index 0000000000000000000000000000000000000000..e72b5e976c003c9e870f0c17e0fea25bb6e0596a --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/flow_matrix.py @@ -0,0 +1,130 @@ +# Helpers for current-flow betweenness and current-flow closeness +# Lazy computations for inverse Laplacian and flow-matrix rows. +import networkx as nx + + +@nx._dispatchable(edge_attrs="weight") +def flow_matrix_row(G, weight=None, dtype=float, solver="lu"): + # Generate a row of the current-flow matrix + import numpy as np + + solvername = { + "full": FullInverseLaplacian, + "lu": SuperLUInverseLaplacian, + "cg": CGInverseLaplacian, + } + n = G.number_of_nodes() + L = nx.laplacian_matrix(G, nodelist=range(n), weight=weight).asformat("csc") + L = L.astype(dtype) + C = solvername[solver](L, dtype=dtype) # initialize solver + w = C.w # w is the Laplacian matrix width + # row-by-row flow matrix + for u, v in sorted(sorted((u, v)) for u, v in G.edges()): + B = np.zeros(w, dtype=dtype) + c = G[u][v].get(weight, 1.0) + B[u % w] = c + B[v % w] = -c + # get only the rows needed in the inverse laplacian + # and multiply to get the flow matrix row + row = B @ C.get_rows(u, v) + yield row, (u, v) + + +# Class to compute the inverse laplacian only for specified rows +# Allows computation of the current-flow matrix without storing entire +# inverse laplacian matrix +class InverseLaplacian: + def __init__(self, L, width=None, dtype=None): + global np + import numpy as np + + (n, n) = L.shape + self.dtype = dtype + self.n = n + if width is None: + self.w = self.width(L) + else: + self.w = width + self.C = np.zeros((self.w, n), dtype=dtype) + self.L1 = L[1:, 1:] + self.init_solver(L) + + def init_solver(self, L): + pass + + def solve(self, r): + raise nx.NetworkXError("Implement solver") + + def solve_inverse(self, r): + raise nx.NetworkXError("Implement solver") + + def get_rows(self, r1, r2): + for r in range(r1, r2 + 1): + self.C[r % self.w, 1:] = self.solve_inverse(r) + return self.C + + def get_row(self, r): + self.C[r % self.w, 1:] = self.solve_inverse(r) + return self.C[r % self.w] + + def width(self, L): + m = 0 + for i, row in enumerate(L): + w = 0 + y = np.nonzero(row)[-1] + if len(y) > 0: + v = y - i + w = v.max() - v.min() + 1 + m = max(w, m) + return m + + +class FullInverseLaplacian(InverseLaplacian): + def init_solver(self, L): + self.IL = np.zeros(L.shape, dtype=self.dtype) + self.IL[1:, 1:] = np.linalg.inv(self.L1.todense()) + + def solve(self, rhs): + s = np.zeros(rhs.shape, dtype=self.dtype) + s = self.IL @ rhs + return s + + def solve_inverse(self, r): + return self.IL[r, 1:] + + +class SuperLUInverseLaplacian(InverseLaplacian): + def init_solver(self, L): + import scipy as sp + + self.lusolve = sp.sparse.linalg.factorized(self.L1.tocsc()) + + def solve_inverse(self, r): + rhs = np.zeros(self.n, dtype=self.dtype) + rhs[r] = 1 + return self.lusolve(rhs[1:]) + + def solve(self, rhs): + s = np.zeros(rhs.shape, dtype=self.dtype) + s[1:] = self.lusolve(rhs[1:]) + return s + + +class CGInverseLaplacian(InverseLaplacian): + def init_solver(self, L): + global sp + import scipy as sp + + ilu = sp.sparse.linalg.spilu(self.L1.tocsc()) + n = self.n - 1 + self.M = sp.sparse.linalg.LinearOperator(shape=(n, n), matvec=ilu.solve) + + def solve(self, rhs): + s = np.zeros(rhs.shape, dtype=self.dtype) + s[1:] = sp.sparse.linalg.cg(self.L1, rhs[1:], M=self.M, atol=0)[0] + return s + + def solve_inverse(self, r): + rhs = np.zeros(self.n, self.dtype) + rhs[r] = 1 + return sp.sparse.linalg.cg(self.L1, rhs[1:], M=self.M, atol=0)[0] diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/group.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/group.py new file mode 100644 index 0000000000000000000000000000000000000000..cff1d4719663d8eef6b4e7e255a1f319b4c2e499 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/group.py @@ -0,0 +1,787 @@ +"""Group centrality measures.""" + +from copy import deepcopy + +import networkx as nx +from networkx.algorithms.centrality.betweenness import ( + _accumulate_endpoints, + _single_source_dijkstra_path_basic, + _single_source_shortest_path_basic, +) +from networkx.utils.decorators import not_implemented_for + +__all__ = [ + "group_betweenness_centrality", + "group_closeness_centrality", + "group_degree_centrality", + "group_in_degree_centrality", + "group_out_degree_centrality", + "prominent_group", +] + + +@nx._dispatchable(edge_attrs="weight") +def group_betweenness_centrality(G, C, normalized=True, weight=None, endpoints=False): + r"""Compute the group betweenness centrality for a group of nodes. + + Group betweenness centrality of a group of nodes $C$ is the sum of the + fraction of all-pairs shortest paths that pass through any vertex in $C$ + + .. math:: + + c_B(v) =\sum_{s,t \in V} \frac{\sigma(s, t|v)}{\sigma(s, t)} + + where $V$ is the set of nodes, $\sigma(s, t)$ is the number of + shortest $(s, t)$-paths, and $\sigma(s, t|C)$ is the number of + those paths passing through some node in group $C$. Note that + $(s, t)$ are not members of the group ($V-C$ is the set of nodes + in $V$ that are not in $C$). + + Parameters + ---------- + G : graph + A NetworkX graph. + + C : list or set or list of lists or list of sets + A group or a list of groups containing nodes which belong to G, for which group betweenness + centrality is to be calculated. + + normalized : bool, optional (default=True) + If True, group betweenness is normalized by `1/((|V|-|C|)(|V|-|C|-1))` + where `|V|` is the number of nodes in G and `|C|` is the number of nodes in C. + + weight : None or string, optional (default=None) + If None, all edge weights are considered equal. + Otherwise holds the name of the edge attribute used as weight. + The weight of an edge is treated as the length or distance between the two sides. + + endpoints : bool, optional (default=False) + If True include the endpoints in the shortest path counts. + + Raises + ------ + NodeNotFound + If node(s) in C are not present in G. + + Returns + ------- + betweenness : list of floats or float + If C is a single group then return a float. If C is a list with + several groups then return a list of group betweenness centralities. + + See Also + -------- + betweenness_centrality + + Notes + ----- + Group betweenness centrality is described in [1]_ and its importance discussed in [3]_. + The initial implementation of the algorithm is mentioned in [2]_. This function uses + an improved algorithm presented in [4]_. + + The number of nodes in the group must be a maximum of n - 2 where `n` + is the total number of nodes in the graph. + + For weighted graphs the edge weights must be greater than zero. + Zero edge weights can produce an infinite number of equal length + paths between pairs of nodes. + + The total number of paths between source and target is counted + differently for directed and undirected graphs. Directed paths + between "u" and "v" are counted as two possible paths (one each + direction) while undirected paths between "u" and "v" are counted + as one path. Said another way, the sum in the expression above is + over all ``s != t`` for directed graphs and for ``s < t`` for undirected graphs. + + + References + ---------- + .. [1] M G Everett and S P Borgatti: + The Centrality of Groups and Classes. + Journal of Mathematical Sociology. 23(3): 181-201. 1999. + http://www.analytictech.com/borgatti/group_centrality.htm + .. [2] Ulrik Brandes: + On Variants of Shortest-Path Betweenness + Centrality and their Generic Computation. + Social Networks 30(2):136-145, 2008. + http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.9610&rep=rep1&type=pdf + .. [3] Sourav Medya et. al.: + Group Centrality Maximization via Network Design. + SIAM International Conference on Data Mining, SDM 2018, 126–134. + https://sites.cs.ucsb.edu/~arlei/pubs/sdm18.pdf + .. [4] Rami Puzis, Yuval Elovici, and Shlomi Dolev. + "Fast algorithm for successive computation of group betweenness centrality." + https://journals.aps.org/pre/pdf/10.1103/PhysRevE.76.056709 + + """ + GBC = [] # initialize betweenness + list_of_groups = True + # check weather C contains one or many groups + if any(el in G for el in C): + C = [C] + list_of_groups = False + set_v = {node for group in C for node in group} + if set_v - G.nodes: # element(s) of C not in G + raise nx.NodeNotFound(f"The node(s) {set_v - G.nodes} are in C but not in G.") + + # pre-processing + PB, sigma, D = _group_preprocessing(G, set_v, weight) + + # the algorithm for each group + for group in C: + group = set(group) # set of nodes in group + # initialize the matrices of the sigma and the PB + GBC_group = 0 + sigma_m = deepcopy(sigma) + PB_m = deepcopy(PB) + sigma_m_v = deepcopy(sigma_m) + PB_m_v = deepcopy(PB_m) + for v in group: + GBC_group += PB_m[v][v] + for x in group: + for y in group: + dxvy = 0 + dxyv = 0 + dvxy = 0 + if not ( + sigma_m[x][y] == 0 or sigma_m[x][v] == 0 or sigma_m[v][y] == 0 + ): + if D[x][v] == D[x][y] + D[y][v]: + dxyv = sigma_m[x][y] * sigma_m[y][v] / sigma_m[x][v] + if D[x][y] == D[x][v] + D[v][y]: + dxvy = sigma_m[x][v] * sigma_m[v][y] / sigma_m[x][y] + if D[v][y] == D[v][x] + D[x][y]: + dvxy = sigma_m[v][x] * sigma[x][y] / sigma[v][y] + sigma_m_v[x][y] = sigma_m[x][y] * (1 - dxvy) + PB_m_v[x][y] = PB_m[x][y] - PB_m[x][y] * dxvy + if y != v: + PB_m_v[x][y] -= PB_m[x][v] * dxyv + if x != v: + PB_m_v[x][y] -= PB_m[v][y] * dvxy + sigma_m, sigma_m_v = sigma_m_v, sigma_m + PB_m, PB_m_v = PB_m_v, PB_m + + # endpoints + v, c = len(G), len(group) + if not endpoints: + scale = 0 + # if the graph is connected then subtract the endpoints from + # the count for all the nodes in the graph. else count how many + # nodes are connected to the group's nodes and subtract that. + if nx.is_directed(G): + if nx.is_strongly_connected(G): + scale = c * (2 * v - c - 1) + elif nx.is_connected(G): + scale = c * (2 * v - c - 1) + if scale == 0: + for group_node1 in group: + for node in D[group_node1]: + if node != group_node1: + if node in group: + scale += 1 + else: + scale += 2 + GBC_group -= scale + + # normalized + if normalized: + scale = 1 / ((v - c) * (v - c - 1)) + GBC_group *= scale + + # If undirected than count only the undirected edges + elif not G.is_directed(): + GBC_group /= 2 + + GBC.append(GBC_group) + if list_of_groups: + return GBC + return GBC[0] + + +def _group_preprocessing(G, set_v, weight): + sigma = {} + delta = {} + D = {} + betweenness = dict.fromkeys(G, 0) + for s in G: + if weight is None: # use BFS + S, P, sigma[s], D[s] = _single_source_shortest_path_basic(G, s) + else: # use Dijkstra's algorithm + S, P, sigma[s], D[s] = _single_source_dijkstra_path_basic(G, s, weight) + betweenness, delta[s] = _accumulate_endpoints(betweenness, S, P, sigma[s], s) + for i in delta[s]: # add the paths from s to i and rescale sigma + if s != i: + delta[s][i] += 1 + if weight is not None: + sigma[s][i] = sigma[s][i] / 2 + # building the path betweenness matrix only for nodes that appear in the group + PB = dict.fromkeys(G) + for group_node1 in set_v: + PB[group_node1] = dict.fromkeys(G, 0.0) + for group_node2 in set_v: + if group_node2 not in D[group_node1]: + continue + for node in G: + # if node is connected to the two group nodes than continue + if group_node2 in D[node] and group_node1 in D[node]: + if ( + D[node][group_node2] + == D[node][group_node1] + D[group_node1][group_node2] + ): + PB[group_node1][group_node2] += ( + delta[node][group_node2] + * sigma[node][group_node1] + * sigma[group_node1][group_node2] + / sigma[node][group_node2] + ) + return PB, sigma, D + + +@nx._dispatchable(edge_attrs="weight") +def prominent_group( + G, k, weight=None, C=None, endpoints=False, normalized=True, greedy=False +): + r"""Find the prominent group of size $k$ in graph $G$. The prominence of the + group is evaluated by the group betweenness centrality. + + Group betweenness centrality of a group of nodes $C$ is the sum of the + fraction of all-pairs shortest paths that pass through any vertex in $C$ + + .. math:: + + c_B(v) =\sum_{s,t \in V} \frac{\sigma(s, t|v)}{\sigma(s, t)} + + where $V$ is the set of nodes, $\sigma(s, t)$ is the number of + shortest $(s, t)$-paths, and $\sigma(s, t|C)$ is the number of + those paths passing through some node in group $C$. Note that + $(s, t)$ are not members of the group ($V-C$ is the set of nodes + in $V$ that are not in $C$). + + Parameters + ---------- + G : graph + A NetworkX graph. + + k : int + The number of nodes in the group. + + normalized : bool, optional (default=True) + If True, group betweenness is normalized by ``1/((|V|-|C|)(|V|-|C|-1))`` + where ``|V|`` is the number of nodes in G and ``|C|`` is the number of + nodes in C. + + weight : None or string, optional (default=None) + If None, all edge weights are considered equal. + Otherwise holds the name of the edge attribute used as weight. + The weight of an edge is treated as the length or distance between the two sides. + + endpoints : bool, optional (default=False) + If True include the endpoints in the shortest path counts. + + C : list or set, optional (default=None) + list of nodes which won't be candidates of the prominent group. + + greedy : bool, optional (default=False) + Using a naive greedy algorithm in order to find non-optimal prominent + group. For scale free networks the results are negligibly below the optimal + results. + + Raises + ------ + NodeNotFound + If node(s) in C are not present in G. + + Returns + ------- + max_GBC : float + The group betweenness centrality of the prominent group. + + max_group : list + The list of nodes in the prominent group. + + See Also + -------- + betweenness_centrality, group_betweenness_centrality + + Notes + ----- + Group betweenness centrality is described in [1]_ and its importance discussed in [3]_. + The algorithm is described in [2]_ and is based on techniques mentioned in [4]_. + + The number of nodes in the group must be a maximum of ``n - 2`` where ``n`` + is the total number of nodes in the graph. + + For weighted graphs the edge weights must be greater than zero. + Zero edge weights can produce an infinite number of equal length + paths between pairs of nodes. + + The total number of paths between source and target is counted + differently for directed and undirected graphs. Directed paths + between "u" and "v" are counted as two possible paths (one each + direction) while undirected paths between "u" and "v" are counted + as one path. Said another way, the sum in the expression above is + over all ``s != t`` for directed graphs and for ``s < t`` for undirected graphs. + + References + ---------- + .. [1] M G Everett and S P Borgatti: + The Centrality of Groups and Classes. + Journal of Mathematical Sociology. 23(3): 181-201. 1999. + http://www.analytictech.com/borgatti/group_centrality.htm + .. [2] Rami Puzis, Yuval Elovici, and Shlomi Dolev: + "Finding the Most Prominent Group in Complex Networks" + AI communications 20(4): 287-296, 2007. + https://www.researchgate.net/profile/Rami_Puzis2/publication/220308855 + .. [3] Sourav Medya et. al.: + Group Centrality Maximization via Network Design. + SIAM International Conference on Data Mining, SDM 2018, 126–134. + https://sites.cs.ucsb.edu/~arlei/pubs/sdm18.pdf + .. [4] Rami Puzis, Yuval Elovici, and Shlomi Dolev. + "Fast algorithm for successive computation of group betweenness centrality." + https://journals.aps.org/pre/pdf/10.1103/PhysRevE.76.056709 + """ + import numpy as np + import pandas as pd + + if C is not None: + C = set(C) + if C - G.nodes: # element(s) of C not in G + raise nx.NodeNotFound(f"The node(s) {C - G.nodes} are in C but not in G.") + nodes = list(G.nodes - C) + else: + nodes = list(G.nodes) + DF_tree = nx.Graph() + DF_tree.__networkx_cache__ = None # Disable caching + PB, sigma, D = _group_preprocessing(G, nodes, weight) + betweenness = pd.DataFrame.from_dict(PB) + if C is not None: + for node in C: + # remove from the betweenness all the nodes not part of the group + betweenness = betweenness.drop(index=node) + betweenness = betweenness.drop(columns=node) + CL = [node for _, node in sorted(zip(np.diag(betweenness), nodes), reverse=True)] + max_GBC = 0 + max_group = [] + DF_tree.add_node( + 1, + CL=CL, + betweenness=betweenness, + GBC=0, + GM=[], + sigma=sigma, + cont=dict(zip(nodes, np.diag(betweenness))), + ) + + # the algorithm + DF_tree.nodes[1]["heu"] = 0 + for i in range(k): + DF_tree.nodes[1]["heu"] += DF_tree.nodes[1]["cont"][DF_tree.nodes[1]["CL"][i]] + max_GBC, DF_tree, max_group = _dfbnb( + G, k, DF_tree, max_GBC, 1, D, max_group, nodes, greedy + ) + + v = len(G) + if not endpoints: + scale = 0 + # if the graph is connected then subtract the endpoints from + # the count for all the nodes in the graph. else count how many + # nodes are connected to the group's nodes and subtract that. + if nx.is_directed(G): + if nx.is_strongly_connected(G): + scale = k * (2 * v - k - 1) + elif nx.is_connected(G): + scale = k * (2 * v - k - 1) + if scale == 0: + for group_node1 in max_group: + for node in D[group_node1]: + if node != group_node1: + if node in max_group: + scale += 1 + else: + scale += 2 + max_GBC -= scale + + # normalized + if normalized: + scale = 1 / ((v - k) * (v - k - 1)) + max_GBC *= scale + + # If undirected then count only the undirected edges + elif not G.is_directed(): + max_GBC /= 2 + max_GBC = float(f"{max_GBC:.2f}") + return max_GBC, max_group + + +def _dfbnb(G, k, DF_tree, max_GBC, root, D, max_group, nodes, greedy): + # stopping condition - if we found a group of size k and with higher GBC then prune + if len(DF_tree.nodes[root]["GM"]) == k and DF_tree.nodes[root]["GBC"] > max_GBC: + return DF_tree.nodes[root]["GBC"], DF_tree, DF_tree.nodes[root]["GM"] + # stopping condition - if the size of group members equal to k or there are less than + # k - |GM| in the candidate list or the heuristic function plus the GBC is below the + # maximal GBC found then prune + if ( + len(DF_tree.nodes[root]["GM"]) == k + or len(DF_tree.nodes[root]["CL"]) <= k - len(DF_tree.nodes[root]["GM"]) + or DF_tree.nodes[root]["GBC"] + DF_tree.nodes[root]["heu"] <= max_GBC + ): + return max_GBC, DF_tree, max_group + + # finding the heuristic of both children + node_p, node_m, DF_tree = _heuristic(k, root, DF_tree, D, nodes, greedy) + + # finding the child with the bigger heuristic + GBC and expand + # that node first if greedy then only expand the plus node + if greedy: + max_GBC, DF_tree, max_group = _dfbnb( + G, k, DF_tree, max_GBC, node_p, D, max_group, nodes, greedy + ) + + elif ( + DF_tree.nodes[node_p]["GBC"] + DF_tree.nodes[node_p]["heu"] + > DF_tree.nodes[node_m]["GBC"] + DF_tree.nodes[node_m]["heu"] + ): + max_GBC, DF_tree, max_group = _dfbnb( + G, k, DF_tree, max_GBC, node_p, D, max_group, nodes, greedy + ) + max_GBC, DF_tree, max_group = _dfbnb( + G, k, DF_tree, max_GBC, node_m, D, max_group, nodes, greedy + ) + else: + max_GBC, DF_tree, max_group = _dfbnb( + G, k, DF_tree, max_GBC, node_m, D, max_group, nodes, greedy + ) + max_GBC, DF_tree, max_group = _dfbnb( + G, k, DF_tree, max_GBC, node_p, D, max_group, nodes, greedy + ) + return max_GBC, DF_tree, max_group + + +def _heuristic(k, root, DF_tree, D, nodes, greedy): + import numpy as np + + # This helper function add two nodes to DF_tree - one left son and the + # other right son, finds their heuristic, CL, GBC, and GM + node_p = DF_tree.number_of_nodes() + 1 + node_m = DF_tree.number_of_nodes() + 2 + added_node = DF_tree.nodes[root]["CL"][0] + + # adding the plus node + DF_tree.add_nodes_from([(node_p, deepcopy(DF_tree.nodes[root]))]) + DF_tree.nodes[node_p]["GM"].append(added_node) + DF_tree.nodes[node_p]["GBC"] += DF_tree.nodes[node_p]["cont"][added_node] + root_node = DF_tree.nodes[root] + for x in nodes: + for y in nodes: + dxvy = 0 + dxyv = 0 + dvxy = 0 + if not ( + root_node["sigma"][x][y] == 0 + or root_node["sigma"][x][added_node] == 0 + or root_node["sigma"][added_node][y] == 0 + ): + if D[x][added_node] == D[x][y] + D[y][added_node]: + dxyv = ( + root_node["sigma"][x][y] + * root_node["sigma"][y][added_node] + / root_node["sigma"][x][added_node] + ) + if D[x][y] == D[x][added_node] + D[added_node][y]: + dxvy = ( + root_node["sigma"][x][added_node] + * root_node["sigma"][added_node][y] + / root_node["sigma"][x][y] + ) + if D[added_node][y] == D[added_node][x] + D[x][y]: + dvxy = ( + root_node["sigma"][added_node][x] + * root_node["sigma"][x][y] + / root_node["sigma"][added_node][y] + ) + DF_tree.nodes[node_p]["sigma"][x][y] = root_node["sigma"][x][y] * (1 - dxvy) + DF_tree.nodes[node_p]["betweenness"].loc[y, x] = ( + root_node["betweenness"][x][y] - root_node["betweenness"][x][y] * dxvy + ) + if y != added_node: + DF_tree.nodes[node_p]["betweenness"].loc[y, x] -= ( + root_node["betweenness"][x][added_node] * dxyv + ) + if x != added_node: + DF_tree.nodes[node_p]["betweenness"].loc[y, x] -= ( + root_node["betweenness"][added_node][y] * dvxy + ) + + DF_tree.nodes[node_p]["CL"] = [ + node + for _, node in sorted( + zip(np.diag(DF_tree.nodes[node_p]["betweenness"]), nodes), reverse=True + ) + if node not in DF_tree.nodes[node_p]["GM"] + ] + DF_tree.nodes[node_p]["cont"] = dict( + zip(nodes, np.diag(DF_tree.nodes[node_p]["betweenness"])) + ) + DF_tree.nodes[node_p]["heu"] = 0 + for i in range(k - len(DF_tree.nodes[node_p]["GM"])): + DF_tree.nodes[node_p]["heu"] += DF_tree.nodes[node_p]["cont"][ + DF_tree.nodes[node_p]["CL"][i] + ] + + # adding the minus node - don't insert the first node in the CL to GM + # Insert minus node only if isn't greedy type algorithm + if not greedy: + DF_tree.add_nodes_from([(node_m, deepcopy(DF_tree.nodes[root]))]) + DF_tree.nodes[node_m]["CL"].pop(0) + DF_tree.nodes[node_m]["cont"].pop(added_node) + DF_tree.nodes[node_m]["heu"] = 0 + for i in range(k - len(DF_tree.nodes[node_m]["GM"])): + DF_tree.nodes[node_m]["heu"] += DF_tree.nodes[node_m]["cont"][ + DF_tree.nodes[node_m]["CL"][i] + ] + else: + node_m = None + + return node_p, node_m, DF_tree + + +@nx._dispatchable(edge_attrs="weight") +def group_closeness_centrality(G, S, weight=None): + r"""Compute the group closeness centrality for a group of nodes. + + Group closeness centrality of a group of nodes $S$ is a measure + of how close the group is to the other nodes in the graph. + + .. math:: + + c_{close}(S) = \frac{|V-S|}{\sum_{v \in V-S} d_{S, v}} + + d_{S, v} = min_{u \in S} (d_{u, v}) + + where $V$ is the set of nodes, $d_{S, v}$ is the distance of + the group $S$ from $v$ defined as above. ($V-S$ is the set of nodes + in $V$ that are not in $S$). + + Parameters + ---------- + G : graph + A NetworkX graph. + + S : list or set + S is a group of nodes which belong to G, for which group closeness + centrality is to be calculated. + + weight : None or string, optional (default=None) + If None, all edge weights are considered equal. + Otherwise holds the name of the edge attribute used as weight. + The weight of an edge is treated as the length or distance between the two sides. + + Raises + ------ + NodeNotFound + If node(s) in S are not present in G. + + Returns + ------- + closeness : float + Group closeness centrality of the group S. + + See Also + -------- + closeness_centrality + + Notes + ----- + The measure was introduced in [1]_. + The formula implemented here is described in [2]_. + + Higher values of closeness indicate greater centrality. + + It is assumed that 1 / 0 is 0 (required in the case of directed graphs, + or when a shortest path length is 0). + + The number of nodes in the group must be a maximum of n - 1 where `n` + is the total number of nodes in the graph. + + For directed graphs, the incoming distance is utilized here. To use the + outward distance, act on `G.reverse()`. + + For weighted graphs the edge weights must be greater than zero. + Zero edge weights can produce an infinite number of equal length + paths between pairs of nodes. + + References + ---------- + .. [1] M G Everett and S P Borgatti: + The Centrality of Groups and Classes. + Journal of Mathematical Sociology. 23(3): 181-201. 1999. + http://www.analytictech.com/borgatti/group_centrality.htm + .. [2] J. Zhao et. al.: + Measuring and Maximizing Group Closeness Centrality over + Disk Resident Graphs. + WWWConference Proceedings, 2014. 689-694. + https://doi.org/10.1145/2567948.2579356 + """ + if G.is_directed(): + G = G.reverse() # reverse view + closeness = 0 # initialize to 0 + V = set(G) # set of nodes in G + S = set(S) # set of nodes in group S + V_S = V - S # set of nodes in V but not S + shortest_path_lengths = nx.multi_source_dijkstra_path_length(G, S, weight=weight) + # accumulation + for v in V_S: + try: + closeness += shortest_path_lengths[v] + except KeyError: # no path exists + closeness += 0 + try: + closeness = len(V_S) / closeness + except ZeroDivisionError: # 1 / 0 assumed as 0 + closeness = 0 + return closeness + + +@nx._dispatchable +def group_degree_centrality(G, S): + """Compute the group degree centrality for a group of nodes. + + Group degree centrality of a group of nodes $S$ is the fraction + of non-group members connected to group members. + + Parameters + ---------- + G : graph + A NetworkX graph. + + S : list or set + S is a group of nodes which belong to G, for which group degree + centrality is to be calculated. + + Raises + ------ + NetworkXError + If node(s) in S are not in G. + + Returns + ------- + centrality : float + Group degree centrality of the group S. + + See Also + -------- + degree_centrality + group_in_degree_centrality + group_out_degree_centrality + + Notes + ----- + The measure was introduced in [1]_. + + The number of nodes in the group must be a maximum of n - 1 where `n` + is the total number of nodes in the graph. + + References + ---------- + .. [1] M G Everett and S P Borgatti: + The Centrality of Groups and Classes. + Journal of Mathematical Sociology. 23(3): 181-201. 1999. + http://www.analytictech.com/borgatti/group_centrality.htm + """ + centrality = len(set().union(*[set(G.neighbors(i)) for i in S]) - set(S)) + centrality /= len(G.nodes()) - len(S) + return centrality + + +@not_implemented_for("undirected") +@nx._dispatchable +def group_in_degree_centrality(G, S): + """Compute the group in-degree centrality for a group of nodes. + + Group in-degree centrality of a group of nodes $S$ is the fraction + of non-group members connected to group members by incoming edges. + + Parameters + ---------- + G : graph + A NetworkX graph. + + S : list or set + S is a group of nodes which belong to G, for which group in-degree + centrality is to be calculated. + + Returns + ------- + centrality : float + Group in-degree centrality of the group S. + + Raises + ------ + NetworkXNotImplemented + If G is undirected. + + NodeNotFound + If node(s) in S are not in G. + + See Also + -------- + degree_centrality + group_degree_centrality + group_out_degree_centrality + + Notes + ----- + The number of nodes in the group must be a maximum of n - 1 where `n` + is the total number of nodes in the graph. + + `G.neighbors(i)` gives nodes with an outward edge from i, in a DiGraph, + so for group in-degree centrality, the reverse graph is used. + """ + return group_degree_centrality(G.reverse(), S) + + +@not_implemented_for("undirected") +@nx._dispatchable +def group_out_degree_centrality(G, S): + """Compute the group out-degree centrality for a group of nodes. + + Group out-degree centrality of a group of nodes $S$ is the fraction + of non-group members connected to group members by outgoing edges. + + Parameters + ---------- + G : graph + A NetworkX graph. + + S : list or set + S is a group of nodes which belong to G, for which group in-degree + centrality is to be calculated. + + Returns + ------- + centrality : float + Group out-degree centrality of the group S. + + Raises + ------ + NetworkXNotImplemented + If G is undirected. + + NodeNotFound + If node(s) in S are not in G. + + See Also + -------- + degree_centrality + group_degree_centrality + group_in_degree_centrality + + Notes + ----- + The number of nodes in the group must be a maximum of n - 1 where `n` + is the total number of nodes in the graph. + + `G.neighbors(i)` gives nodes with an outward edge from i, in a DiGraph, + so for group out-degree centrality, the graph itself is used. + """ + return group_degree_centrality(G, S) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/harmonic.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/harmonic.py new file mode 100644 index 0000000000000000000000000000000000000000..3d76f5f1f734cab7c420cc48e0000d05d85b7884 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/harmonic.py @@ -0,0 +1,88 @@ +"""Functions for computing the harmonic centrality of a graph.""" + +from functools import partial + +import networkx as nx + +__all__ = ["harmonic_centrality"] + + +@nx._dispatchable(edge_attrs="distance") +def harmonic_centrality(G, nbunch=None, distance=None, sources=None): + r"""Compute harmonic centrality for nodes. + + Harmonic centrality [1]_ of a node `u` is the sum of the reciprocal + of the shortest path distances from all other nodes to `u` + + .. math:: + + C(u) = \sum_{v \neq u} \frac{1}{d(v, u)} + + where `d(v, u)` is the shortest-path distance between `v` and `u`. + + If `sources` is given as an argument, the returned harmonic centrality + values are calculated as the sum of the reciprocals of the shortest + path distances from the nodes specified in `sources` to `u` instead + of from all nodes to `u`. + + Notice that higher values indicate higher centrality. + + Parameters + ---------- + G : graph + A NetworkX graph + + nbunch : container (default: all nodes in G) + Container of nodes for which harmonic centrality values are calculated. + + sources : container (default: all nodes in G) + Container of nodes `v` over which reciprocal distances are computed. + Nodes not in `G` are silently ignored. + + distance : edge attribute key, optional (default=None) + Use the specified edge attribute as the edge distance in shortest + path calculations. If `None`, then each edge will have distance equal to 1. + + Returns + ------- + nodes : dictionary + Dictionary of nodes with harmonic centrality as the value. + + See Also + -------- + betweenness_centrality, load_centrality, eigenvector_centrality, + degree_centrality, closeness_centrality + + Notes + ----- + If the 'distance' keyword is set to an edge attribute key then the + shortest-path length will be computed using Dijkstra's algorithm with + that edge attribute as the edge weight. + + References + ---------- + .. [1] Boldi, Paolo, and Sebastiano Vigna. "Axioms for centrality." + Internet Mathematics 10.3-4 (2014): 222-262. + """ + + nbunch = set(G.nbunch_iter(nbunch) if nbunch is not None else G.nodes) + sources = set(G.nbunch_iter(sources) if sources is not None else G.nodes) + + centrality = {u: 0 for u in nbunch} + + transposed = False + if len(nbunch) < len(sources): + transposed = True + nbunch, sources = sources, nbunch + if nx.is_directed(G): + G = nx.reverse(G, copy=False) + + spl = partial(nx.shortest_path_length, G, weight=distance) + for v in sources: + dist = spl(v) + for u, d_uv in dist.items(): + # Ignore self-loops and edges with 0 weight + if d_uv != 0 and u in nbunch: + centrality[v if transposed else u] += 1 / d_uv + + return centrality diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/katz.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/katz.py new file mode 100644 index 0000000000000000000000000000000000000000..4bd087bc3e55de4f71413033f969ad22e8acddd7 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/katz.py @@ -0,0 +1,331 @@ +"""Katz centrality.""" + +import math + +import networkx as nx +from networkx.utils import not_implemented_for + +__all__ = ["katz_centrality", "katz_centrality_numpy"] + + +@not_implemented_for("multigraph") +@nx._dispatchable(edge_attrs="weight") +def katz_centrality( + G, + alpha=0.1, + beta=1.0, + max_iter=1000, + tol=1.0e-6, + nstart=None, + normalized=True, + weight=None, +): + r"""Compute the Katz centrality for the nodes of the graph G. + + Katz centrality computes the centrality for a node based on the centrality + of its neighbors. It is a generalization of the eigenvector centrality. The + Katz centrality for node $i$ is + + .. math:: + + x_i = \alpha \sum_{j} A_{ij} x_j + \beta, + + where $A$ is the adjacency matrix of graph G with eigenvalues $\lambda$. + + The parameter $\beta$ controls the initial centrality and + + .. math:: + + \alpha < \frac{1}{\lambda_{\max}}. + + Katz centrality computes the relative influence of a node within a + network by measuring the number of the immediate neighbors (first + degree nodes) and also all other nodes in the network that connect + to the node under consideration through these immediate neighbors. + + Extra weight can be provided to immediate neighbors through the + parameter $\beta$. Connections made with distant neighbors + are, however, penalized by an attenuation factor $\alpha$ which + should be strictly less than the inverse largest eigenvalue of the + adjacency matrix in order for the Katz centrality to be computed + correctly. More information is provided in [1]_. + + Parameters + ---------- + G : graph + A NetworkX graph. + + alpha : float, optional (default=0.1) + Attenuation factor + + beta : scalar or dictionary, optional (default=1.0) + Weight attributed to the immediate neighborhood. If not a scalar, the + dictionary must have a value for every node. + + max_iter : integer, optional (default=1000) + Maximum number of iterations in power method. + + tol : float, optional (default=1.0e-6) + Error tolerance used to check convergence in power method iteration. + + nstart : dictionary, optional + Starting value of Katz iteration for each node. + + normalized : bool, optional (default=True) + If True normalize the resulting values. + + weight : None or string, optional (default=None) + If None, all edge weights are considered equal. + Otherwise holds the name of the edge attribute used as weight. + In this measure the weight is interpreted as the connection strength. + + Returns + ------- + nodes : dictionary + Dictionary of nodes with Katz centrality as the value. + + Raises + ------ + NetworkXError + If the parameter `beta` is not a scalar but lacks a value for at least + one node + + PowerIterationFailedConvergence + If the algorithm fails to converge to the specified tolerance + within the specified number of iterations of the power iteration + method. + + Examples + -------- + >>> import math + >>> G = nx.path_graph(4) + >>> phi = (1 + math.sqrt(5)) / 2.0 # largest eigenvalue of adj matrix + >>> centrality = nx.katz_centrality(G, 1 / phi - 0.01) + >>> for n, c in sorted(centrality.items()): + ... print(f"{n} {c:.2f}") + 0 0.37 + 1 0.60 + 2 0.60 + 3 0.37 + + See Also + -------- + katz_centrality_numpy + eigenvector_centrality + eigenvector_centrality_numpy + :func:`~networkx.algorithms.link_analysis.pagerank_alg.pagerank` + :func:`~networkx.algorithms.link_analysis.hits_alg.hits` + + Notes + ----- + Katz centrality was introduced by [2]_. + + This algorithm it uses the power method to find the eigenvector + corresponding to the largest eigenvalue of the adjacency matrix of ``G``. + The parameter ``alpha`` should be strictly less than the inverse of largest + eigenvalue of the adjacency matrix for the algorithm to converge. + You can use ``max(nx.adjacency_spectrum(G))`` to get $\lambda_{\max}$ the largest + eigenvalue of the adjacency matrix. + The iteration will stop after ``max_iter`` iterations or an error tolerance of + ``number_of_nodes(G) * tol`` has been reached. + + For strongly connected graphs, as $\alpha \to 1/\lambda_{\max}$, and $\beta > 0$, + Katz centrality approaches the results for eigenvector centrality. + + For directed graphs this finds "left" eigenvectors which corresponds + to the in-edges in the graph. For out-edges Katz centrality, + first reverse the graph with ``G.reverse()``. + + References + ---------- + .. [1] Mark E. J. Newman: + Networks: An Introduction. + Oxford University Press, USA, 2010, p. 720. + .. [2] Leo Katz: + A New Status Index Derived from Sociometric Index. + Psychometrika 18(1):39–43, 1953 + https://link.springer.com/content/pdf/10.1007/BF02289026.pdf + """ + if len(G) == 0: + return {} + + nnodes = G.number_of_nodes() + + if nstart is None: + # choose starting vector with entries of 0 + x = {n: 0 for n in G} + else: + x = nstart + + try: + b = dict.fromkeys(G, float(beta)) + except (TypeError, ValueError, AttributeError) as err: + b = beta + if set(beta) != set(G): + raise nx.NetworkXError( + "beta dictionary must have a value for every node" + ) from err + + # make up to max_iter iterations + for _ in range(max_iter): + xlast = x + x = dict.fromkeys(xlast, 0) + # do the multiplication y^T = Alpha * x^T A + Beta + for n in x: + for nbr in G[n]: + x[nbr] += xlast[n] * G[n][nbr].get(weight, 1) + for n in x: + x[n] = alpha * x[n] + b[n] + + # check convergence + error = sum(abs(x[n] - xlast[n]) for n in x) + if error < nnodes * tol: + if normalized: + # normalize vector + try: + s = 1.0 / math.hypot(*x.values()) + except ZeroDivisionError: + s = 1.0 + else: + s = 1 + for n in x: + x[n] *= s + return x + raise nx.PowerIterationFailedConvergence(max_iter) + + +@not_implemented_for("multigraph") +@nx._dispatchable(edge_attrs="weight") +def katz_centrality_numpy(G, alpha=0.1, beta=1.0, normalized=True, weight=None): + r"""Compute the Katz centrality for the graph G. + + Katz centrality computes the centrality for a node based on the centrality + of its neighbors. It is a generalization of the eigenvector centrality. The + Katz centrality for node $i$ is + + .. math:: + + x_i = \alpha \sum_{j} A_{ij} x_j + \beta, + + where $A$ is the adjacency matrix of graph G with eigenvalues $\lambda$. + + The parameter $\beta$ controls the initial centrality and + + .. math:: + + \alpha < \frac{1}{\lambda_{\max}}. + + Katz centrality computes the relative influence of a node within a + network by measuring the number of the immediate neighbors (first + degree nodes) and also all other nodes in the network that connect + to the node under consideration through these immediate neighbors. + + Extra weight can be provided to immediate neighbors through the + parameter $\beta$. Connections made with distant neighbors + are, however, penalized by an attenuation factor $\alpha$ which + should be strictly less than the inverse largest eigenvalue of the + adjacency matrix in order for the Katz centrality to be computed + correctly. More information is provided in [1]_. + + Parameters + ---------- + G : graph + A NetworkX graph + + alpha : float + Attenuation factor + + beta : scalar or dictionary, optional (default=1.0) + Weight attributed to the immediate neighborhood. If not a scalar the + dictionary must have an value for every node. + + normalized : bool + If True normalize the resulting values. + + weight : None or string, optional + If None, all edge weights are considered equal. + Otherwise holds the name of the edge attribute used as weight. + In this measure the weight is interpreted as the connection strength. + + Returns + ------- + nodes : dictionary + Dictionary of nodes with Katz centrality as the value. + + Raises + ------ + NetworkXError + If the parameter `beta` is not a scalar but lacks a value for at least + one node + + Examples + -------- + >>> import math + >>> G = nx.path_graph(4) + >>> phi = (1 + math.sqrt(5)) / 2.0 # largest eigenvalue of adj matrix + >>> centrality = nx.katz_centrality_numpy(G, 1 / phi) + >>> for n, c in sorted(centrality.items()): + ... print(f"{n} {c:.2f}") + 0 0.37 + 1 0.60 + 2 0.60 + 3 0.37 + + See Also + -------- + katz_centrality + eigenvector_centrality_numpy + eigenvector_centrality + :func:`~networkx.algorithms.link_analysis.pagerank_alg.pagerank` + :func:`~networkx.algorithms.link_analysis.hits_alg.hits` + + Notes + ----- + Katz centrality was introduced by [2]_. + + This algorithm uses a direct linear solver to solve the above equation. + The parameter ``alpha`` should be strictly less than the inverse of largest + eigenvalue of the adjacency matrix for there to be a solution. + You can use ``max(nx.adjacency_spectrum(G))`` to get $\lambda_{\max}$ the largest + eigenvalue of the adjacency matrix. + + For strongly connected graphs, as $\alpha \to 1/\lambda_{\max}$, and $\beta > 0$, + Katz centrality approaches the results for eigenvector centrality. + + For directed graphs this finds "left" eigenvectors which corresponds + to the in-edges in the graph. For out-edges Katz centrality, + first reverse the graph with ``G.reverse()``. + + References + ---------- + .. [1] Mark E. J. Newman: + Networks: An Introduction. + Oxford University Press, USA, 2010, p. 173. + .. [2] Leo Katz: + A New Status Index Derived from Sociometric Index. + Psychometrika 18(1):39–43, 1953 + https://link.springer.com/content/pdf/10.1007/BF02289026.pdf + """ + import numpy as np + + if len(G) == 0: + return {} + try: + nodelist = beta.keys() + if set(nodelist) != set(G): + raise nx.NetworkXError("beta dictionary must have a value for every node") + b = np.array(list(beta.values()), dtype=float) + except AttributeError: + nodelist = list(G) + try: + b = np.ones((len(nodelist), 1)) * beta + except (TypeError, ValueError, AttributeError) as err: + raise nx.NetworkXError("beta must be a number") from err + + A = nx.adjacency_matrix(G, nodelist=nodelist, weight=weight).todense().T + n = A.shape[0] + centrality = np.linalg.solve(np.eye(n, n) - (alpha * A), b).squeeze() + + # Normalize: rely on truediv to cast to float, then tolist to make Python numbers + norm = np.sign(sum(centrality)) * np.linalg.norm(centrality) if normalized else 1 + return dict(zip(nodelist, (centrality / norm).tolist())) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/laplacian.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/laplacian.py new file mode 100644 index 0000000000000000000000000000000000000000..4bd4d5983faad8bca5d59594ec2d45ffcdba0c81 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/laplacian.py @@ -0,0 +1,150 @@ +""" +Laplacian centrality measures. +""" + +import networkx as nx + +__all__ = ["laplacian_centrality"] + + +@nx._dispatchable(edge_attrs="weight") +def laplacian_centrality( + G, normalized=True, nodelist=None, weight="weight", walk_type=None, alpha=0.95 +): + r"""Compute the Laplacian centrality for nodes in the graph `G`. + + The Laplacian Centrality of a node ``i`` is measured by the drop in the + Laplacian Energy after deleting node ``i`` from the graph. The Laplacian Energy + is the sum of the squared eigenvalues of a graph's Laplacian matrix. + + .. math:: + + C_L(u_i,G) = \frac{(\Delta E)_i}{E_L (G)} = \frac{E_L (G)-E_L (G_i)}{E_L (G)} + + E_L (G) = \sum_{i=0}^n \lambda_i^2 + + Where $E_L (G)$ is the Laplacian energy of graph `G`, + E_L (G_i) is the Laplacian energy of graph `G` after deleting node ``i`` + and $\lambda_i$ are the eigenvalues of `G`'s Laplacian matrix. + This formula shows the normalized value. Without normalization, + the numerator on the right side is returned. + + Parameters + ---------- + G : graph + A networkx graph + + normalized : bool (default = True) + If True the centrality score is scaled so the sum over all nodes is 1. + If False the centrality score for each node is the drop in Laplacian + energy when that node is removed. + + nodelist : list, optional (default = None) + The rows and columns are ordered according to the nodes in nodelist. + If nodelist is None, then the ordering is produced by G.nodes(). + + weight: string or None, optional (default=`weight`) + Optional parameter `weight` to compute the Laplacian matrix. + The edge data key used to compute each value in the matrix. + If None, then each edge has weight 1. + + walk_type : string or None, optional (default=None) + Optional parameter `walk_type` used when calling + :func:`directed_laplacian_matrix `. + One of ``"random"``, ``"lazy"``, or ``"pagerank"``. If ``walk_type=None`` + (the default), then a value is selected according to the properties of `G`: + - ``walk_type="random"`` if `G` is strongly connected and aperiodic + - ``walk_type="lazy"`` if `G` is strongly connected but not aperiodic + - ``walk_type="pagerank"`` for all other cases. + + alpha : real (default = 0.95) + Optional parameter `alpha` used when calling + :func:`directed_laplacian_matrix `. + (1 - alpha) is the teleportation probability used with pagerank. + + Returns + ------- + nodes : dictionary + Dictionary of nodes with Laplacian centrality as the value. + + Examples + -------- + >>> G = nx.Graph() + >>> edges = [(0, 1, 4), (0, 2, 2), (2, 1, 1), (1, 3, 2), (1, 4, 2), (4, 5, 1)] + >>> G.add_weighted_edges_from(edges) + >>> sorted((v, f"{c:0.2f}") for v, c in laplacian_centrality(G).items()) + [(0, '0.70'), (1, '0.90'), (2, '0.28'), (3, '0.22'), (4, '0.26'), (5, '0.04')] + + Notes + ----- + The algorithm is implemented based on [1]_ with an extension to directed graphs + using the ``directed_laplacian_matrix`` function. + + Raises + ------ + NetworkXPointlessConcept + If the graph `G` is the null graph. + ZeroDivisionError + If the graph `G` has no edges (is empty) and normalization is requested. + + References + ---------- + .. [1] Qi, X., Fuller, E., Wu, Q., Wu, Y., and Zhang, C.-Q. (2012). + Laplacian centrality: A new centrality measure for weighted networks. + Information Sciences, 194:240-253. + https://math.wvu.edu/~cqzhang/Publication-files/my-paper/INS-2012-Laplacian-W.pdf + + See Also + -------- + :func:`~networkx.linalg.laplacianmatrix.directed_laplacian_matrix` + :func:`~networkx.linalg.laplacianmatrix.laplacian_matrix` + """ + import numpy as np + import scipy as sp + + if len(G) == 0: + raise nx.NetworkXPointlessConcept("null graph has no centrality defined") + if G.size(weight=weight) == 0: + if normalized: + raise ZeroDivisionError("graph with no edges has zero full energy") + return {n: 0 for n in G} + + if nodelist is not None: + nodeset = set(G.nbunch_iter(nodelist)) + if len(nodeset) != len(nodelist): + raise nx.NetworkXError("nodelist has duplicate nodes or nodes not in G") + nodes = nodelist + [n for n in G if n not in nodeset] + else: + nodelist = nodes = list(G) + + if G.is_directed(): + lap_matrix = nx.directed_laplacian_matrix(G, nodes, weight, walk_type, alpha) + else: + lap_matrix = nx.laplacian_matrix(G, nodes, weight).toarray() + + full_energy = np.sum(lap_matrix**2) + + # calculate laplacian centrality + laplace_centralities_dict = {} + for i, node in enumerate(nodelist): + # remove row and col i from lap_matrix + all_but_i = list(np.arange(lap_matrix.shape[0])) + all_but_i.remove(i) + A_2 = lap_matrix[all_but_i, :][:, all_but_i] + + # Adjust diagonal for removed row + new_diag = lap_matrix.diagonal() - abs(lap_matrix[:, i]) + np.fill_diagonal(A_2, new_diag[all_but_i]) + + if len(all_but_i) > 0: # catches degenerate case of single node + new_energy = np.sum(A_2**2) + else: + new_energy = 0.0 + + lapl_cent = full_energy - new_energy + if normalized: + lapl_cent = lapl_cent / full_energy + + laplace_centralities_dict[node] = float(lapl_cent) + + return laplace_centralities_dict diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/load.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/load.py new file mode 100644 index 0000000000000000000000000000000000000000..fc46edd6fa2a1555181058aa17c68cf8a9820429 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/load.py @@ -0,0 +1,200 @@ +"""Load centrality.""" + +from operator import itemgetter + +import networkx as nx + +__all__ = ["load_centrality", "edge_load_centrality"] + + +@nx._dispatchable(edge_attrs="weight") +def newman_betweenness_centrality(G, v=None, cutoff=None, normalized=True, weight=None): + """Compute load centrality for nodes. + + The load centrality of a node is the fraction of all shortest + paths that pass through that node. + + Parameters + ---------- + G : graph + A networkx graph. + + normalized : bool, optional (default=True) + If True the betweenness values are normalized by b=b/(n-1)(n-2) where + n is the number of nodes in G. + + weight : None or string, optional (default=None) + If None, edge weights are ignored. + Otherwise holds the name of the edge attribute used as weight. + The weight of an edge is treated as the length or distance between the two sides. + + cutoff : bool, optional (default=None) + If specified, only consider paths of length <= cutoff. + + Returns + ------- + nodes : dictionary + Dictionary of nodes with centrality as the value. + + See Also + -------- + betweenness_centrality + + Notes + ----- + Load centrality is slightly different than betweenness. It was originally + introduced by [2]_. For this load algorithm see [1]_. + + References + ---------- + .. [1] Mark E. J. Newman: + Scientific collaboration networks. II. + Shortest paths, weighted networks, and centrality. + Physical Review E 64, 016132, 2001. + http://journals.aps.org/pre/abstract/10.1103/PhysRevE.64.016132 + .. [2] Kwang-Il Goh, Byungnam Kahng and Doochul Kim + Universal behavior of Load Distribution in Scale-Free Networks. + Physical Review Letters 87(27):1–4, 2001. + https://doi.org/10.1103/PhysRevLett.87.278701 + """ + if v is not None: # only one node + betweenness = 0.0 + for source in G: + ubetween = _node_betweenness(G, source, cutoff, False, weight) + betweenness += ubetween[v] if v in ubetween else 0 + if normalized: + order = G.order() + if order <= 2: + return betweenness # no normalization b=0 for all nodes + betweenness *= 1.0 / ((order - 1) * (order - 2)) + else: + betweenness = {}.fromkeys(G, 0.0) + for source in betweenness: + ubetween = _node_betweenness(G, source, cutoff, False, weight) + for vk in ubetween: + betweenness[vk] += ubetween[vk] + if normalized: + order = G.order() + if order <= 2: + return betweenness # no normalization b=0 for all nodes + scale = 1.0 / ((order - 1) * (order - 2)) + for v in betweenness: + betweenness[v] *= scale + return betweenness # all nodes + + +def _node_betweenness(G, source, cutoff=False, normalized=True, weight=None): + """Node betweenness_centrality helper: + + See betweenness_centrality for what you probably want. + This actually computes "load" and not betweenness. + See https://networkx.lanl.gov/ticket/103 + + This calculates the load of each node for paths from a single source. + (The fraction of number of shortests paths from source that go + through each node.) + + To get the load for a node you need to do all-pairs shortest paths. + + If weight is not None then use Dijkstra for finding shortest paths. + """ + # get the predecessor and path length data + if weight is None: + (pred, length) = nx.predecessor(G, source, cutoff=cutoff, return_seen=True) + else: + (pred, length) = nx.dijkstra_predecessor_and_distance(G, source, cutoff, weight) + + # order the nodes by path length + onodes = [(l, vert) for (vert, l) in length.items()] + onodes.sort() + onodes[:] = [vert for (l, vert) in onodes if l > 0] + + # initialize betweenness + between = {}.fromkeys(length, 1.0) + + while onodes: + v = onodes.pop() + if v in pred: + num_paths = len(pred[v]) # Discount betweenness if more than + for x in pred[v]: # one shortest path. + if x == source: # stop if hit source because all remaining v + break # also have pred[v]==[source] + between[x] += between[v] / num_paths + # remove source + for v in between: + between[v] -= 1 + # rescale to be between 0 and 1 + if normalized: + l = len(between) + if l > 2: + # scale by 1/the number of possible paths + scale = 1 / ((l - 1) * (l - 2)) + for v in between: + between[v] *= scale + return between + + +load_centrality = newman_betweenness_centrality + + +@nx._dispatchable +def edge_load_centrality(G, cutoff=False): + """Compute edge load. + + WARNING: This concept of edge load has not been analysed + or discussed outside of NetworkX that we know of. + It is based loosely on load_centrality in the sense that + it counts the number of shortest paths which cross each edge. + This function is for demonstration and testing purposes. + + Parameters + ---------- + G : graph + A networkx graph + + cutoff : bool, optional (default=False) + If specified, only consider paths of length <= cutoff. + + Returns + ------- + A dict keyed by edge 2-tuple to the number of shortest paths + which use that edge. Where more than one path is shortest + the count is divided equally among paths. + """ + betweenness = {} + for u, v in G.edges(): + betweenness[(u, v)] = 0.0 + betweenness[(v, u)] = 0.0 + + for source in G: + ubetween = _edge_betweenness(G, source, cutoff=cutoff) + for e, ubetweenv in ubetween.items(): + betweenness[e] += ubetweenv # cumulative total + return betweenness + + +def _edge_betweenness(G, source, nodes=None, cutoff=False): + """Edge betweenness helper.""" + # get the predecessor data + (pred, length) = nx.predecessor(G, source, cutoff=cutoff, return_seen=True) + # order the nodes by path length + onodes = [n for n, d in sorted(length.items(), key=itemgetter(1))] + # initialize betweenness, doesn't account for any edge weights + between = {} + for u, v in G.edges(nodes): + between[(u, v)] = 1.0 + between[(v, u)] = 1.0 + + while onodes: # work through all paths + v = onodes.pop() + if v in pred: + # Discount betweenness if more than one shortest path. + num_paths = len(pred[v]) + for w in pred[v]: + if w in pred: + # Discount betweenness, mult path + num_paths = len(pred[w]) + for x in pred[w]: + between[(w, x)] += between[(v, w)] / num_paths + between[(x, w)] += between[(w, v)] / num_paths + return between diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/percolation.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/percolation.py new file mode 100644 index 0000000000000000000000000000000000000000..0d4c87132b48fe02f6a86e06f4ada0d7a72239f1 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/percolation.py @@ -0,0 +1,128 @@ +"""Percolation centrality measures.""" + +import networkx as nx +from networkx.algorithms.centrality.betweenness import ( + _single_source_dijkstra_path_basic as dijkstra, +) +from networkx.algorithms.centrality.betweenness import ( + _single_source_shortest_path_basic as shortest_path, +) + +__all__ = ["percolation_centrality"] + + +@nx._dispatchable(node_attrs="attribute", edge_attrs="weight") +def percolation_centrality(G, attribute="percolation", states=None, weight=None): + r"""Compute the percolation centrality for nodes. + + Percolation centrality of a node $v$, at a given time, is defined + as the proportion of ‘percolated paths’ that go through that node. + + This measure quantifies relative impact of nodes based on their + topological connectivity, as well as their percolation states. + + Percolation states of nodes are used to depict network percolation + scenarios (such as during infection transmission in a social network + of individuals, spreading of computer viruses on computer networks, or + transmission of disease over a network of towns) over time. In this + measure usually the percolation state is expressed as a decimal + between 0.0 and 1.0. + + When all nodes are in the same percolated state this measure is + equivalent to betweenness centrality. + + Parameters + ---------- + G : graph + A NetworkX graph. + + attribute : None or string, optional (default='percolation') + Name of the node attribute to use for percolation state, used + if `states` is None. If a node does not set the attribute the + state of that node will be set to the default value of 1. + If all nodes do not have the attribute all nodes will be set to + 1 and the centrality measure will be equivalent to betweenness centrality. + + states : None or dict, optional (default=None) + Specify percolation states for the nodes, nodes as keys states + as values. + + weight : None or string, optional (default=None) + If None, all edge weights are considered equal. + Otherwise holds the name of the edge attribute used as weight. + The weight of an edge is treated as the length or distance between the two sides. + + + Returns + ------- + nodes : dictionary + Dictionary of nodes with percolation centrality as the value. + + See Also + -------- + betweenness_centrality + + Notes + ----- + The algorithm is from Mahendra Piraveenan, Mikhail Prokopenko, and + Liaquat Hossain [1]_ + Pair dependencies are calculated and accumulated using [2]_ + + For weighted graphs the edge weights must be greater than zero. + Zero edge weights can produce an infinite number of equal length + paths between pairs of nodes. + + References + ---------- + .. [1] Mahendra Piraveenan, Mikhail Prokopenko, Liaquat Hossain + Percolation Centrality: Quantifying Graph-Theoretic Impact of Nodes + during Percolation in Networks + http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0053095 + .. [2] Ulrik Brandes: + A Faster Algorithm for Betweenness Centrality. + Journal of Mathematical Sociology 25(2):163-177, 2001. + https://doi.org/10.1080/0022250X.2001.9990249 + """ + percolation = dict.fromkeys(G, 0.0) # b[v]=0 for v in G + + nodes = G + + if states is None: + states = nx.get_node_attributes(nodes, attribute, default=1) + + # sum of all percolation states + p_sigma_x_t = 0.0 + for v in states.values(): + p_sigma_x_t += v + + for s in nodes: + # single source shortest paths + if weight is None: # use BFS + S, P, sigma, _ = shortest_path(G, s) + else: # use Dijkstra's algorithm + S, P, sigma, _ = dijkstra(G, s, weight) + # accumulation + percolation = _accumulate_percolation( + percolation, S, P, sigma, s, states, p_sigma_x_t + ) + + n = len(G) + + for v in percolation: + percolation[v] *= 1 / (n - 2) + + return percolation + + +def _accumulate_percolation(percolation, S, P, sigma, s, states, p_sigma_x_t): + delta = dict.fromkeys(S, 0) + while S: + w = S.pop() + coeff = (1 + delta[w]) / sigma[w] + for v in P[w]: + delta[v] += sigma[v] * coeff + if w != s: + # percolation weight + pw_s_w = states[s] / (p_sigma_x_t - states[w]) + percolation[w] += delta[w] * pw_s_w + return percolation diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/reaching.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/reaching.py new file mode 100644 index 0000000000000000000000000000000000000000..23018af0b1eeaca421d2f56ac48511c673ecf604 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/reaching.py @@ -0,0 +1,209 @@ +"""Functions for computing reaching centrality of a node or a graph.""" + +import networkx as nx +from networkx.utils import pairwise + +__all__ = ["global_reaching_centrality", "local_reaching_centrality"] + + +def _average_weight(G, path, weight=None): + """Returns the average weight of an edge in a weighted path. + + Parameters + ---------- + G : graph + A networkx graph. + + path: list + A list of vertices that define the path. + + weight : None or string, optional (default=None) + If None, edge weights are ignored. Then the average weight of an edge + is assumed to be the multiplicative inverse of the length of the path. + Otherwise holds the name of the edge attribute used as weight. + """ + path_length = len(path) - 1 + if path_length <= 0: + return 0 + if weight is None: + return 1 / path_length + total_weight = sum(G.edges[i, j][weight] for i, j in pairwise(path)) + return total_weight / path_length + + +@nx._dispatchable(edge_attrs="weight") +def global_reaching_centrality(G, weight=None, normalized=True): + """Returns the global reaching centrality of a directed graph. + + The *global reaching centrality* of a weighted directed graph is the + average over all nodes of the difference between the local reaching + centrality of the node and the greatest local reaching centrality of + any node in the graph [1]_. For more information on the local + reaching centrality, see :func:`local_reaching_centrality`. + Informally, the local reaching centrality is the proportion of the + graph that is reachable from the neighbors of the node. + + Parameters + ---------- + G : DiGraph + A networkx DiGraph. + + weight : None or string, optional (default=None) + Attribute to use for edge weights. If ``None``, each edge weight + is assumed to be one. A higher weight implies a stronger + connection between nodes and a *shorter* path length. + + normalized : bool, optional (default=True) + Whether to normalize the edge weights by the total sum of edge + weights. + + Returns + ------- + h : float + The global reaching centrality of the graph. + + Examples + -------- + >>> G = nx.DiGraph() + >>> G.add_edge(1, 2) + >>> G.add_edge(1, 3) + >>> nx.global_reaching_centrality(G) + 1.0 + >>> G.add_edge(3, 2) + >>> nx.global_reaching_centrality(G) + 0.75 + + See also + -------- + local_reaching_centrality + + References + ---------- + .. [1] Mones, Enys, Lilla Vicsek, and Tamás Vicsek. + "Hierarchy Measure for Complex Networks." + *PLoS ONE* 7.3 (2012): e33799. + https://doi.org/10.1371/journal.pone.0033799 + """ + if nx.is_negatively_weighted(G, weight=weight): + raise nx.NetworkXError("edge weights must be positive") + total_weight = G.size(weight=weight) + if total_weight <= 0: + raise nx.NetworkXError("Size of G must be positive") + # If provided, weights must be interpreted as connection strength + # (so higher weights are more likely to be chosen). However, the + # shortest path algorithms in NetworkX assume the provided "weight" + # is actually a distance (so edges with higher weight are less + # likely to be chosen). Therefore we need to invert the weights when + # computing shortest paths. + # + # If weight is None, we leave it as-is so that the shortest path + # algorithm can use a faster, unweighted algorithm. + if weight is not None: + + def as_distance(u, v, d): + return total_weight / d.get(weight, 1) + + shortest_paths = dict(nx.shortest_path(G, weight=as_distance)) + else: + shortest_paths = dict(nx.shortest_path(G)) + + centrality = local_reaching_centrality + # TODO This can be trivially parallelized. + lrc = [ + centrality(G, node, paths=paths, weight=weight, normalized=normalized) + for node, paths in shortest_paths.items() + ] + + max_lrc = max(lrc) + return sum(max_lrc - c for c in lrc) / (len(G) - 1) + + +@nx._dispatchable(edge_attrs="weight") +def local_reaching_centrality(G, v, paths=None, weight=None, normalized=True): + """Returns the local reaching centrality of a node in a directed + graph. + + The *local reaching centrality* of a node in a directed graph is the + proportion of other nodes reachable from that node [1]_. + + Parameters + ---------- + G : DiGraph + A NetworkX DiGraph. + + v : node + A node in the directed graph `G`. + + paths : dictionary (default=None) + If this is not `None` it must be a dictionary representation + of single-source shortest paths, as computed by, for example, + :func:`networkx.shortest_path` with source node `v`. Use this + keyword argument if you intend to invoke this function many + times but don't want the paths to be recomputed each time. + + weight : None or string, optional (default=None) + Attribute to use for edge weights. If `None`, each edge weight + is assumed to be one. A higher weight implies a stronger + connection between nodes and a *shorter* path length. + + normalized : bool, optional (default=True) + Whether to normalize the edge weights by the total sum of edge + weights. + + Returns + ------- + h : float + The local reaching centrality of the node ``v`` in the graph + ``G``. + + Examples + -------- + >>> G = nx.DiGraph() + >>> G.add_edges_from([(1, 2), (1, 3)]) + >>> nx.local_reaching_centrality(G, 3) + 0.0 + >>> G.add_edge(3, 2) + >>> nx.local_reaching_centrality(G, 3) + 0.5 + + See also + -------- + global_reaching_centrality + + References + ---------- + .. [1] Mones, Enys, Lilla Vicsek, and Tamás Vicsek. + "Hierarchy Measure for Complex Networks." + *PLoS ONE* 7.3 (2012): e33799. + https://doi.org/10.1371/journal.pone.0033799 + """ + # Corner case: graph with single node containing a self-loop + if (total_weight := G.size(weight=weight)) > 0 and len(G) == 1: + raise nx.NetworkXError( + "local_reaching_centrality of a single node with self-loop not well-defined" + ) + if paths is None: + if nx.is_negatively_weighted(G, weight=weight): + raise nx.NetworkXError("edge weights must be positive") + if total_weight <= 0: + raise nx.NetworkXError("Size of G must be positive") + if weight is not None: + # Interpret weights as lengths. + def as_distance(u, v, d): + return total_weight / d.get(weight, 1) + + paths = nx.shortest_path(G, source=v, weight=as_distance) + else: + paths = nx.shortest_path(G, source=v) + # If the graph is unweighted, simply return the proportion of nodes + # reachable from the source node ``v``. + if weight is None and G.is_directed(): + return (len(paths) - 1) / (len(G) - 1) + if normalized and weight is not None: + norm = G.size(weight=weight) / G.size() + else: + norm = 1 + # TODO This can be trivially parallelized. + avgw = (_average_weight(G, path, weight=weight) for path in paths.values()) + sum_avg_weight = sum(avgw) / norm + return sum_avg_weight / (len(G) - 1) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/second_order.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/second_order.py new file mode 100644 index 0000000000000000000000000000000000000000..35583cd63e55d14c0c389040cbdeab39b27d1bf9 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/second_order.py @@ -0,0 +1,141 @@ +"""Copyright (c) 2015 – Thomson Licensing, SAS + +Redistribution and use in source and binary forms, with or without +modification, are permitted (subject to the limitations in the +disclaimer below) provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +* Neither the name of Thomson Licensing, or Technicolor, nor the names +of its contributors may be used to endorse or promote products derived +from this software without specific prior written permission. + +NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE +GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT +HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +""" + +import networkx as nx +from networkx.utils import not_implemented_for + +# Authors: Erwan Le Merrer (erwan.lemerrer@technicolor.com) + +__all__ = ["second_order_centrality"] + + +@not_implemented_for("directed") +@nx._dispatchable(edge_attrs="weight") +def second_order_centrality(G, weight="weight"): + """Compute the second order centrality for nodes of G. + + The second order centrality of a given node is the standard deviation of + the return times to that node of a perpetual random walk on G: + + Parameters + ---------- + G : graph + A NetworkX connected and undirected graph. + + weight : string or None, optional (default="weight") + The name of an edge attribute that holds the numerical value + used as a weight. If None then each edge has weight 1. + + Returns + ------- + nodes : dictionary + Dictionary keyed by node with second order centrality as the value. + + Examples + -------- + >>> G = nx.star_graph(10) + >>> soc = nx.second_order_centrality(G) + >>> print(sorted(soc.items(), key=lambda x: x[1])[0][0]) # pick first id + 0 + + Raises + ------ + NetworkXException + If the graph G is empty, non connected or has negative weights. + + See Also + -------- + betweenness_centrality + + Notes + ----- + Lower values of second order centrality indicate higher centrality. + + The algorithm is from Kermarrec, Le Merrer, Sericola and Trédan [1]_. + + This code implements the analytical version of the algorithm, i.e., + there is no simulation of a random walk process involved. The random walk + is here unbiased (corresponding to eq 6 of the paper [1]_), thus the + centrality values are the standard deviations for random walk return times + on the transformed input graph G (equal in-degree at each nodes by adding + self-loops). + + Complexity of this implementation, made to run locally on a single machine, + is O(n^3), with n the size of G, which makes it viable only for small + graphs. + + References + ---------- + .. [1] Anne-Marie Kermarrec, Erwan Le Merrer, Bruno Sericola, Gilles Trédan + "Second order centrality: Distributed assessment of nodes criticity in + complex networks", Elsevier Computer Communications 34(5):619-628, 2011. + """ + import numpy as np + + n = len(G) + + if n == 0: + raise nx.NetworkXException("Empty graph.") + if not nx.is_connected(G): + raise nx.NetworkXException("Non connected graph.") + if any(d.get(weight, 0) < 0 for u, v, d in G.edges(data=True)): + raise nx.NetworkXException("Graph has negative edge weights.") + + # balancing G for Metropolis-Hastings random walks + G = nx.DiGraph(G) + in_deg = dict(G.in_degree(weight=weight)) + d_max = max(in_deg.values()) + for i, deg in in_deg.items(): + if deg < d_max: + G.add_edge(i, i, weight=d_max - deg) + + P = nx.to_numpy_array(G) + P /= P.sum(axis=1)[:, np.newaxis] # to transition probability matrix + + def _Qj(P, j): + P = P.copy() + P[:, j] = 0 + return P + + M = np.empty([n, n]) + + for i in range(n): + M[:, i] = np.linalg.solve( + np.identity(n) - _Qj(P, i), np.ones([n, 1])[:, 0] + ) # eq 3 + + return dict( + zip( + G.nodes, + (float(np.sqrt(2 * np.sum(M[:, i]) - n * (n + 1))) for i in range(n)), + ) + ) # eq 6 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/subgraph_alg.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/subgraph_alg.py new file mode 100644 index 0000000000000000000000000000000000000000..2bd67445e5d363969fd29e6712f1041babae9865 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/subgraph_alg.py @@ -0,0 +1,361 @@ +""" +Subraph centrality and communicability betweenness. +""" + +import networkx as nx +from networkx.utils import not_implemented_for + +__all__ = [ + "subgraph_centrality_exp", + "subgraph_centrality", + "communicability_betweenness_centrality", + "estrada_index", +] + + +@not_implemented_for("directed") +@not_implemented_for("multigraph") +@nx._dispatchable +def subgraph_centrality_exp(G, *, normalized=False): + r"""Returns the subgraph centrality for each node of G. + + Subgraph centrality of a node `n` is the sum of weighted closed + walks of all lengths starting and ending at node `n`. The weights + decrease with path length. Each closed walk is associated with a + connected subgraph ([1]_). + + Parameters + ---------- + G: graph + normalized : bool + If True, normalize the centrality values using the largest eigenvalue of the + adjacency matrix so that the centrality values are generally between 0 and 1. + + Returns + ------- + nodes:dictionary + Dictionary of nodes with subgraph centrality as the value. + + Raises + ------ + NetworkXError + If the graph is not undirected and simple. + + See Also + -------- + subgraph_centrality: + Alternative algorithm of the subgraph centrality for each node of G. + + Notes + ----- + This version of the algorithm exponentiates the adjacency matrix. + + The subgraph centrality of a node `u` in G can be found using + the matrix exponential of the adjacency matrix of G [1]_, + + .. math:: + + SC(u)=(e^A)_{uu} . + + Examples + -------- + (Example from [1]_) + + >>> G = nx.Graph( + ... [ + ... (1, 2), + ... (1, 5), + ... (1, 8), + ... (2, 3), + ... (2, 8), + ... (3, 4), + ... (3, 6), + ... (4, 5), + ... (4, 7), + ... (5, 6), + ... (6, 7), + ... (7, 8), + ... ] + ... ) + >>> sc = nx.subgraph_centrality_exp(G) + >>> print([f"{node} {sc[node]:0.2f}" for node in sorted(sc)]) + ['1 3.90', '2 3.90', '3 3.64', '4 3.71', '5 3.64', '6 3.71', '7 3.64', '8 3.90'] + >>> sc = nx.subgraph_centrality(G, normalized=True) + >>> print([f"{node} {sc[node]:0.3f}" for node in sorted(sc)]) + ['1 0.194', '2 0.194', '3 0.181', '4 0.184', '5 0.181', '6 0.184', '7 0.181', '8 0.194'] + + References + ---------- + .. [1] Ernesto Estrada, Juan A. Rodriguez-Velazquez, + "Subgraph centrality in complex networks", + Physical Review E 71, 056103 (2005). + https://arxiv.org/abs/cond-mat/0504730 + + """ + # alternative implementation that calculates the matrix exponential + import scipy as sp + + nodelist = list(G) # ordering of nodes in matrix + A = nx.to_numpy_array(G, nodelist) + # convert to 0-1 matrix + A[A != 0.0] = 1 + expA = sp.linalg.expm(A) + values = map(float, expA.diagonal()) + if normalized: + values = values / values.max() + # convert diagonal to dictionary keyed by node + sc = dict(zip(nodelist, values)) + return sc + + +@not_implemented_for("directed") +@not_implemented_for("multigraph") +@nx._dispatchable +def subgraph_centrality(G, *, normalized=False): + r"""Returns subgraph centrality for each node in G. + + Subgraph centrality of a node `n` is the sum of weighted closed + walks of all lengths starting and ending at node `n`. The weights + decrease with path length. Each closed walk is associated with a + connected subgraph ([1]_). + + Parameters + ---------- + G: Graph + normalized : bool + If True, normalize the centrality values using the largest eigenvalue of the + adjacency matrix so that the centrality values are generally between 0 and 1. + + Returns + ------- + nodes : dictionary + Dictionary of nodes with subgraph centrality as the value. + + Raises + ------ + NetworkXError + If the graph is not undirected and simple. + + See Also + -------- + subgraph_centrality_exp: + Alternative algorithm of the subgraph centrality for each node of G. + + Notes + ----- + This version of the algorithm computes eigenvalues and eigenvectors + of the adjacency matrix. + + Subgraph centrality of a node `u` in G can be found using + a spectral decomposition of the adjacency matrix [1]_, + + .. math:: + + SC(u)=\sum_{j=1}^{N}(v_{j}^{u})^2 e^{\lambda_{j}}, + + where `v_j` is an eigenvector of the adjacency matrix `A` of G + corresponding to the eigenvalue `\lambda_j`. + + Examples + -------- + (Example from [1]_) + + >>> G = nx.Graph( + ... [ + ... (1, 2), + ... (1, 5), + ... (1, 8), + ... (2, 3), + ... (2, 8), + ... (3, 4), + ... (3, 6), + ... (4, 5), + ... (4, 7), + ... (5, 6), + ... (6, 7), + ... (7, 8), + ... ] + ... ) + >>> sc = nx.subgraph_centrality(G) + >>> print([f"{node} {sc[node]:0.2f}" for node in sorted(sc)]) + ['1 3.90', '2 3.90', '3 3.64', '4 3.71', '5 3.64', '6 3.71', '7 3.64', '8 3.90'] + >>> sc = nx.subgraph_centrality(G, normalized=True) + >>> print([f"{node} {sc[node]:0.3f}" for node in sorted(sc)]) + ['1 0.194', '2 0.194', '3 0.181', '4 0.184', '5 0.181', '6 0.184', '7 0.181', '8 0.194'] + + References + ---------- + .. [1] Ernesto Estrada, Juan A. Rodriguez-Velazquez, + "Subgraph centrality in complex networks", + Physical Review E 71, 056103 (2005). + https://arxiv.org/abs/cond-mat/0504730 + + """ + import numpy as np + + nodelist = list(G) # ordering of nodes in matrix + A = nx.to_numpy_array(G, nodelist) + # convert to 0-1 matrix + A[np.nonzero(A)] = 1 + w, v = np.linalg.eigh(A) + vsquare = np.array(v) ** 2 + if normalized: + expw = np.exp(w - w.max()) + else: + expw = np.exp(w) + xg = vsquare @ expw + # convert vector dictionary keyed by node + sc = dict(zip(nodelist, map(float, xg))) + return sc + + +@not_implemented_for("directed") +@not_implemented_for("multigraph") +@nx._dispatchable +def communicability_betweenness_centrality(G): + r"""Returns subgraph communicability for all pairs of nodes in G. + + Communicability betweenness measure makes use of the number of walks + connecting every pair of nodes as the basis of a betweenness centrality + measure. + + Parameters + ---------- + G: graph + + Returns + ------- + nodes : dictionary + Dictionary of nodes with communicability betweenness as the value. + + Raises + ------ + NetworkXError + If the graph is not undirected and simple. + + Notes + ----- + Let `G=(V,E)` be a simple undirected graph with `n` nodes and `m` edges, + and `A` denote the adjacency matrix of `G`. + + Let `G(r)=(V,E(r))` be the graph resulting from + removing all edges connected to node `r` but not the node itself. + + The adjacency matrix for `G(r)` is `A+E(r)`, where `E(r)` has nonzeros + only in row and column `r`. + + The subraph betweenness of a node `r` is [1]_ + + .. math:: + + \omega_{r} = \frac{1}{C}\sum_{p}\sum_{q}\frac{G_{prq}}{G_{pq}}, + p\neq q, q\neq r, + + where + `G_{prq}=(e^{A}_{pq} - (e^{A+E(r)})_{pq}` is the number of walks + involving node r, + `G_{pq}=(e^{A})_{pq}` is the number of closed walks starting + at node `p` and ending at node `q`, + and `C=(n-1)^{2}-(n-1)` is a normalization factor equal to the + number of terms in the sum. + + The resulting `\omega_{r}` takes values between zero and one. + The lower bound cannot be attained for a connected + graph, and the upper bound is attained in the star graph. + + References + ---------- + .. [1] Ernesto Estrada, Desmond J. Higham, Naomichi Hatano, + "Communicability Betweenness in Complex Networks" + Physica A 388 (2009) 764-774. + https://arxiv.org/abs/0905.4102 + + Examples + -------- + >>> G = nx.Graph([(0, 1), (1, 2), (1, 5), (5, 4), (2, 4), (2, 3), (4, 3), (3, 6)]) + >>> cbc = nx.communicability_betweenness_centrality(G) + >>> print([f"{node} {cbc[node]:0.2f}" for node in sorted(cbc)]) + ['0 0.03', '1 0.45', '2 0.51', '3 0.45', '4 0.40', '5 0.19', '6 0.03'] + """ + import numpy as np + import scipy as sp + + nodelist = list(G) # ordering of nodes in matrix + n = len(nodelist) + A = nx.to_numpy_array(G, nodelist) + # convert to 0-1 matrix + A[np.nonzero(A)] = 1 + expA = sp.linalg.expm(A) + mapping = dict(zip(nodelist, range(n))) + cbc = {} + for v in G: + # remove row and col of node v + i = mapping[v] + row = A[i, :].copy() + col = A[:, i].copy() + A[i, :] = 0 + A[:, i] = 0 + B = (expA - sp.linalg.expm(A)) / expA + # sum with row/col of node v and diag set to zero + B[i, :] = 0 + B[:, i] = 0 + B -= np.diag(np.diag(B)) + cbc[v] = float(B.sum()) + # put row and col back + A[i, :] = row + A[:, i] = col + # rescale when more than two nodes + order = len(cbc) + if order > 2: + scale = 1.0 / ((order - 1.0) ** 2 - (order - 1.0)) + cbc = {node: value * scale for node, value in cbc.items()} + return cbc + + +@nx._dispatchable +def estrada_index(G): + r"""Returns the Estrada index of a the graph G. + + The Estrada Index is a topological index of folding or 3D "compactness" ([1]_). + + Parameters + ---------- + G: graph + + Returns + ------- + estrada index: float + + Raises + ------ + NetworkXError + If the graph is not undirected and simple. + + Notes + ----- + Let `G=(V,E)` be a simple undirected graph with `n` nodes and let + `\lambda_{1}\leq\lambda_{2}\leq\cdots\lambda_{n}` + be a non-increasing ordering of the eigenvalues of its adjacency + matrix `A`. The Estrada index is ([1]_, [2]_) + + .. math:: + EE(G)=\sum_{j=1}^n e^{\lambda _j}. + + References + ---------- + .. [1] E. Estrada, "Characterization of 3D molecular structure", + Chem. Phys. Lett. 319, 713 (2000). + https://doi.org/10.1016/S0009-2614(00)00158-5 + .. [2] José Antonio de la Peñaa, Ivan Gutman, Juan Rada, + "Estimating the Estrada index", + Linear Algebra and its Applications. 427, 1 (2007). + https://doi.org/10.1016/j.laa.2007.06.020 + + Examples + -------- + >>> G = nx.Graph([(0, 1), (1, 2), (1, 5), (5, 4), (2, 4), (2, 3), (4, 3), (3, 6)]) + >>> ei = nx.estrada_index(G) + >>> print(f"{ei:0.5}") + 20.55 + """ + return sum(subgraph_centrality(G).values()) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e41ed7e288774ea4ba0ef5c1920a187aa3cfcc0d Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_betweenness_centrality.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_betweenness_centrality.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..55756f2adcc704909b0e8b92edec42b28b25a2dd Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_betweenness_centrality.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_betweenness_centrality_subset.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_betweenness_centrality_subset.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9aba8aa1b4cdf231f7efd75f9f7f4c5538ee1fac Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_betweenness_centrality_subset.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_closeness_centrality.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_closeness_centrality.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3eeb2ba8f0d9ac0d7dff6c218be95924e65d67f8 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_closeness_centrality.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_current_flow_betweenness_centrality.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_current_flow_betweenness_centrality.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b4d1b13e9156b588b9cdd856a12ebc79fab082e9 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_current_flow_betweenness_centrality.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_current_flow_betweenness_centrality_subset.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_current_flow_betweenness_centrality_subset.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c9f12395387e453a65486ca73d80dd5f8e7e854c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_current_flow_betweenness_centrality_subset.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_current_flow_closeness.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_current_flow_closeness.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8174f993b3257e81d65bd7b57de75eebd31883c2 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_current_flow_closeness.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_degree_centrality.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_degree_centrality.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..99982ed84492b6299ef3b7a8db6414a8a2b899d9 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_degree_centrality.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_dispersion.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_dispersion.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..40aead4e45443588e9d47760830ac928c8a718a3 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_dispersion.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_eigenvector_centrality.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_eigenvector_centrality.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0e34decefb3ec03498101392b1b7caaefb3799c6 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_eigenvector_centrality.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_group.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_group.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7ab4658778f05e6ea1a3ba6fa8388c838cb91fd8 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_group.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_harmonic_centrality.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_harmonic_centrality.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..453ce00f952f23706c42480c7c33bd4cc5d0c6f0 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_harmonic_centrality.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_katz_centrality.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_katz_centrality.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9e6128816a5094bf4a756a2fb00c755848c80be4 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_katz_centrality.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_laplacian_centrality.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_laplacian_centrality.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5a1482dd9e3a0df7a4f11b265bce5d0e37f020a1 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_laplacian_centrality.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_load_centrality.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_load_centrality.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1a3e1fd1aed329a1100e2fbaddde559b37d4f594 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_load_centrality.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_percolation_centrality.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_percolation_centrality.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..90f9790016d554711d19abdbf0e6fea421cffe6a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_percolation_centrality.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_reaching.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_reaching.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3ff1f32886597b339cf086077ce1d6e144894d67 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_reaching.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_second_order_centrality.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_second_order_centrality.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d09593a953a799743e50f0b0552e51ab7f0a9655 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_second_order_centrality.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_subgraph.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_subgraph.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3073e86ef69742becaf968907520494f3bb1c9f3 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_subgraph.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_trophic.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_trophic.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3448a30b42efcd0ba2e4aa96ab580c9c80b2c7af Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_trophic.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_voterank.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_voterank.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3fe621b99981184231a98569da4b5939e2cf3fd7 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/__pycache__/test_voterank.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_betweenness_centrality.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_betweenness_centrality.py new file mode 100644 index 0000000000000000000000000000000000000000..eff14c4696061b7f9213330be5cc7e6e4399d47c --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_betweenness_centrality.py @@ -0,0 +1,923 @@ +import math + +import pytest + +import networkx as nx + + +def weighted_G(): + G = nx.Graph() + G.add_edge(0, 1, weight=3) + G.add_edge(0, 2, weight=2) + G.add_edge(0, 3, weight=6) + G.add_edge(0, 4, weight=4) + G.add_edge(1, 3, weight=5) + G.add_edge(1, 5, weight=5) + G.add_edge(2, 4, weight=1) + G.add_edge(3, 4, weight=2) + G.add_edge(3, 5, weight=1) + G.add_edge(4, 5, weight=4) + return G + + +class TestBetweennessCentrality: + def test_K5(self): + """Betweenness centrality: K5""" + G = nx.complete_graph(5) + b = nx.betweenness_centrality(G, weight=None, normalized=False) + b_answer = {0: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0} + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_K5_endpoints(self): + """Betweenness centrality: K5 endpoints""" + G = nx.complete_graph(5) + b = nx.betweenness_centrality(G, weight=None, normalized=False, endpoints=True) + b_answer = {0: 4.0, 1: 4.0, 2: 4.0, 3: 4.0, 4: 4.0} + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + # normalized = True case + b = nx.betweenness_centrality(G, weight=None, normalized=True, endpoints=True) + b_answer = {0: 0.4, 1: 0.4, 2: 0.4, 3: 0.4, 4: 0.4} + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_P3_normalized(self): + """Betweenness centrality: P3 normalized""" + G = nx.path_graph(3) + b = nx.betweenness_centrality(G, weight=None, normalized=True) + b_answer = {0: 0.0, 1: 1.0, 2: 0.0} + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_P3(self): + """Betweenness centrality: P3""" + G = nx.path_graph(3) + b_answer = {0: 0.0, 1: 1.0, 2: 0.0} + b = nx.betweenness_centrality(G, weight=None, normalized=False) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_sample_from_P3(self): + """Betweenness centrality: P3 sample""" + G = nx.path_graph(3) + b_answer = {0: 0.0, 1: 1.0, 2: 0.0} + b = nx.betweenness_centrality(G, k=3, weight=None, normalized=False, seed=1) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + b = nx.betweenness_centrality(G, k=2, weight=None, normalized=False, seed=1) + # python versions give different results with same seed + b_approx1 = {0: 0.0, 1: 1.0, 2: 0.0} + b_approx2 = {0: 0.0, 1: 0.5, 2: 0.0} + for n in sorted(G): + assert b[n] in (b_approx1[n], b_approx2[n]) + + def test_P3_endpoints(self): + """Betweenness centrality: P3 endpoints""" + G = nx.path_graph(3) + b_answer = {0: 2.0, 1: 3.0, 2: 2.0} + b = nx.betweenness_centrality(G, weight=None, normalized=False, endpoints=True) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + # normalized = True case + b_answer = {0: 2 / 3, 1: 1.0, 2: 2 / 3} + b = nx.betweenness_centrality(G, weight=None, normalized=True, endpoints=True) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_krackhardt_kite_graph(self): + """Betweenness centrality: Krackhardt kite graph""" + G = nx.krackhardt_kite_graph() + b_answer = { + 0: 1.667, + 1: 1.667, + 2: 0.000, + 3: 7.333, + 4: 0.000, + 5: 16.667, + 6: 16.667, + 7: 28.000, + 8: 16.000, + 9: 0.000, + } + for b in b_answer: + b_answer[b] /= 2 + b = nx.betweenness_centrality(G, weight=None, normalized=False) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-3) + + def test_krackhardt_kite_graph_normalized(self): + """Betweenness centrality: Krackhardt kite graph normalized""" + G = nx.krackhardt_kite_graph() + b_answer = { + 0: 0.023, + 1: 0.023, + 2: 0.000, + 3: 0.102, + 4: 0.000, + 5: 0.231, + 6: 0.231, + 7: 0.389, + 8: 0.222, + 9: 0.000, + } + b = nx.betweenness_centrality(G, weight=None, normalized=True) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-3) + + def test_florentine_families_graph(self): + """Betweenness centrality: Florentine families graph""" + G = nx.florentine_families_graph() + b_answer = { + "Acciaiuoli": 0.000, + "Albizzi": 0.212, + "Barbadori": 0.093, + "Bischeri": 0.104, + "Castellani": 0.055, + "Ginori": 0.000, + "Guadagni": 0.255, + "Lamberteschi": 0.000, + "Medici": 0.522, + "Pazzi": 0.000, + "Peruzzi": 0.022, + "Ridolfi": 0.114, + "Salviati": 0.143, + "Strozzi": 0.103, + "Tornabuoni": 0.092, + } + + b = nx.betweenness_centrality(G, weight=None, normalized=True) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-3) + + def test_les_miserables_graph(self): + """Betweenness centrality: Les Miserables graph""" + G = nx.les_miserables_graph() + b_answer = { + "Napoleon": 0.000, + "Myriel": 0.177, + "MlleBaptistine": 0.000, + "MmeMagloire": 0.000, + "CountessDeLo": 0.000, + "Geborand": 0.000, + "Champtercier": 0.000, + "Cravatte": 0.000, + "Count": 0.000, + "OldMan": 0.000, + "Valjean": 0.570, + "Labarre": 0.000, + "Marguerite": 0.000, + "MmeDeR": 0.000, + "Isabeau": 0.000, + "Gervais": 0.000, + "Listolier": 0.000, + "Tholomyes": 0.041, + "Fameuil": 0.000, + "Blacheville": 0.000, + "Favourite": 0.000, + "Dahlia": 0.000, + "Zephine": 0.000, + "Fantine": 0.130, + "MmeThenardier": 0.029, + "Thenardier": 0.075, + "Cosette": 0.024, + "Javert": 0.054, + "Fauchelevent": 0.026, + "Bamatabois": 0.008, + "Perpetue": 0.000, + "Simplice": 0.009, + "Scaufflaire": 0.000, + "Woman1": 0.000, + "Judge": 0.000, + "Champmathieu": 0.000, + "Brevet": 0.000, + "Chenildieu": 0.000, + "Cochepaille": 0.000, + "Pontmercy": 0.007, + "Boulatruelle": 0.000, + "Eponine": 0.011, + "Anzelma": 0.000, + "Woman2": 0.000, + "MotherInnocent": 0.000, + "Gribier": 0.000, + "MmeBurgon": 0.026, + "Jondrette": 0.000, + "Gavroche": 0.165, + "Gillenormand": 0.020, + "Magnon": 0.000, + "MlleGillenormand": 0.048, + "MmePontmercy": 0.000, + "MlleVaubois": 0.000, + "LtGillenormand": 0.000, + "Marius": 0.132, + "BaronessT": 0.000, + "Mabeuf": 0.028, + "Enjolras": 0.043, + "Combeferre": 0.001, + "Prouvaire": 0.000, + "Feuilly": 0.001, + "Courfeyrac": 0.005, + "Bahorel": 0.002, + "Bossuet": 0.031, + "Joly": 0.002, + "Grantaire": 0.000, + "MotherPlutarch": 0.000, + "Gueulemer": 0.005, + "Babet": 0.005, + "Claquesous": 0.005, + "Montparnasse": 0.004, + "Toussaint": 0.000, + "Child1": 0.000, + "Child2": 0.000, + "Brujon": 0.000, + "MmeHucheloup": 0.000, + } + + b = nx.betweenness_centrality(G, weight=None, normalized=True) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-3) + + def test_ladder_graph(self): + """Betweenness centrality: Ladder graph""" + G = nx.Graph() # ladder_graph(3) + G.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 3), (2, 4), (4, 5), (3, 5)]) + b_answer = {0: 1.667, 1: 1.667, 2: 6.667, 3: 6.667, 4: 1.667, 5: 1.667} + for b in b_answer: + b_answer[b] /= 2 + b = nx.betweenness_centrality(G, weight=None, normalized=False) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-3) + + def test_disconnected_path(self): + """Betweenness centrality: disconnected path""" + G = nx.Graph() + nx.add_path(G, [0, 1, 2]) + nx.add_path(G, [3, 4, 5, 6]) + b_answer = {0: 0, 1: 1, 2: 0, 3: 0, 4: 2, 5: 2, 6: 0} + b = nx.betweenness_centrality(G, weight=None, normalized=False) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_disconnected_path_endpoints(self): + """Betweenness centrality: disconnected path endpoints""" + G = nx.Graph() + nx.add_path(G, [0, 1, 2]) + nx.add_path(G, [3, 4, 5, 6]) + b_answer = {0: 2, 1: 3, 2: 2, 3: 3, 4: 5, 5: 5, 6: 3} + b = nx.betweenness_centrality(G, weight=None, normalized=False, endpoints=True) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + # normalized = True case + b = nx.betweenness_centrality(G, weight=None, normalized=True, endpoints=True) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n] / 21, abs=1e-7) + + def test_directed_path(self): + """Betweenness centrality: directed path""" + G = nx.DiGraph() + nx.add_path(G, [0, 1, 2]) + b = nx.betweenness_centrality(G, weight=None, normalized=False) + b_answer = {0: 0.0, 1: 1.0, 2: 0.0} + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_directed_path_normalized(self): + """Betweenness centrality: directed path normalized""" + G = nx.DiGraph() + nx.add_path(G, [0, 1, 2]) + b = nx.betweenness_centrality(G, weight=None, normalized=True) + b_answer = {0: 0.0, 1: 0.5, 2: 0.0} + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + @pytest.mark.parametrize( + ("normalized", "endpoints", "is_directed", "k", "expected"), + [ + (True, True, True, None, {0: 1.0, 1: 0.4, 2: 0.4, 3: 0.4, 4: 0.4}), + (True, True, True, 1, {0: 1.0, 1: 1.0, 2: 0.25, 3: 0.25, 4: 0.25}), + (True, True, False, None, {0: 1.0, 1: 0.4, 2: 0.4, 3: 0.4, 4: 0.4}), + (True, True, False, 1, {0: 1.0, 1: 1.0, 2: 0.25, 3: 0.25, 4: 0.25}), + (True, False, True, None, {0: 1.0, 1: 0, 2: 0.0, 3: 0.0, 4: 0.0}), + (True, False, True, 1, {0: 1.0, 1: math.nan, 2: 0.0, 3: 0.0, 4: 0.0}), + (True, False, False, None, {0: 1.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0}), + (True, False, False, 1, {0: 1.0, 1: math.nan, 2: 0.0, 3: 0.0, 4: 0.0}), + (False, True, True, None, {0: 20.0, 1: 8.0, 2: 8.0, 3: 8.0, 4: 8.0}), + (False, True, True, 1, {0: 20.0, 1: 20.0, 2: 5.0, 3: 5.0, 4: 5.0}), + (False, True, False, None, {0: 10.0, 1: 4.0, 2: 4.0, 3: 4.0, 4: 4.0}), + (False, True, False, 1, {0: 10.0, 1: 10.0, 2: 2.5, 3: 2.5, 4: 2.5}), + (False, False, True, None, {0: 12.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0}), + (False, False, True, 1, {0: 12.0, 1: math.nan, 2: 0.0, 3: 0.0, 4: 0.0}), + (False, False, False, None, {0: 6.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0}), + (False, False, False, 1, {0: 6.0, 1: math.nan, 2: 0.0, 3: 0.0, 4: 0.0}), + ], + ) + def test_scale_with_k_on_star_graph( + self, normalized, endpoints, is_directed, k, expected + ): + # seed=1 selects node 1 as the initial node when using k=1. + # Recall node 0 is the center of the star graph. + G = nx.star_graph(4) + if is_directed: + G = G.to_directed() + b = nx.betweenness_centrality( + G, k=k, seed=1, endpoints=endpoints, normalized=normalized + ) + assert b == pytest.approx(expected, nan_ok=True) + + @pytest.mark.parametrize( + ("normalized", "endpoints", "is_directed", "k", "expected"), + [ + ( + *(True, True, True, None), # Use *() splatting for better autoformat + {0: 14 / 20, 1: 14 / 20, 2: 14 / 20, 3: 14 / 20, 4: 14 / 20}, + ), + ( + *(True, True, True, 3), + {0: 9 / 12, 1: 11 / 12, 2: 9 / 12, 3: 6 / 12, 4: 7 / 12}, + ), + ( + *(True, True, False, None), + {0: 10 / 20, 1: 10 / 20, 2: 10 / 20, 3: 10 / 20, 4: 10 / 20}, + ), + ( + *(True, True, False, 3), + {0: 8 / 12, 1: 7 / 12, 2: 4 / 12, 3: 4 / 12, 4: 7 / 12}, + ), + ( + *(True, False, True, None), + {0: 6 / 12, 1: 6 / 12, 2: 6 / 12, 3: 6 / 12, 4: 6 / 12}, + ), + ( + *(True, False, True, 3), + # Use 6 instead of 9 for denominator for source nodes 0, 1, and 4 + {0: 3 / 6, 1: 5 / 6, 2: 6 / 9, 3: 3 / 9, 4: 1 / 6}, + ), + ( + *(True, False, False, None), + {0: 2 / 12, 1: 2 / 12, 2: 2 / 12, 3: 2 / 12, 4: 2 / 12}, + ), + ( + *(True, False, False, 3), + # Use 6 instead of 9 for denominator for source nodes 0, 1, and 4 + {0: 2 / 6, 1: 1 / 6, 2: 1 / 9, 3: 1 / 9, 4: 1 / 6}, + ), + (False, True, True, None, {0: 14, 1: 14, 2: 14, 3: 14, 4: 14}), + ( + *(False, True, True, 3), + {0: 9 * 5 / 3, 1: 11 * 5 / 3, 2: 9 * 5 / 3, 3: 6 * 5 / 3, 4: 7 * 5 / 3}, + ), + (False, True, False, None, {0: 5, 1: 5, 2: 5, 3: 5, 4: 5}), + ( + *(False, True, False, 3), + {0: 8 * 5 / 6, 1: 7 * 5 / 6, 2: 4 * 5 / 6, 3: 4 * 5 / 6, 4: 7 * 5 / 6}, + ), + (False, False, True, None, {0: 6, 1: 6, 2: 6, 3: 6, 4: 6}), + ( + *(False, False, True, 3), + # Use 2 instead of 3 for denominator for source nodes 0, 1, and 4 + {0: 3 * 4 / 2, 1: 5 * 4 / 2, 2: 6 * 4 / 3, 3: 3 * 4 / 3, 4: 1 * 4 / 2}, + ), + (False, False, False, None, {0: 1, 1: 1, 2: 1, 3: 1, 4: 1}), + ( + *(False, False, False, 3), + # Use 4 instead of 6 for denominator for source nodes 0, 1, and 4 + {0: 2 * 4 / 4, 1: 1 * 4 / 4, 2: 1 * 4 / 6, 3: 1 * 4 / 6, 4: 1 * 4 / 4}, + ), + ], + ) + def test_scale_with_k_on_cycle_graph( + self, normalized, endpoints, is_directed, k, expected + ): + # seed=1 selects nodes 0, 1, and 4 as the initial nodes when using k=3. + G = nx.cycle_graph(5, create_using=nx.DiGraph if is_directed else nx.Graph) + b = nx.betweenness_centrality( + G, k=k, seed=1, endpoints=endpoints, normalized=normalized + ) + assert b == pytest.approx(expected) + + def test_k_out_of_bounds_raises(self): + G = nx.cycle_graph(4) + with pytest.raises(ValueError, match="larger"): + nx.betweenness_centrality(G, k=5) + with pytest.raises(ValueError, match="negative"): + nx.betweenness_centrality(G, k=-1) + with pytest.raises(ZeroDivisionError): + nx.betweenness_centrality(G, k=0) + with pytest.raises(ZeroDivisionError): + nx.betweenness_centrality(G, k=0, normalized=False) + # Test edge case: use full population when k == len(G) + # Should we warn or raise instead? + b1 = nx.betweenness_centrality(G, k=4, endpoints=False) + b2 = nx.betweenness_centrality(G, endpoints=False) + assert b1 == b2 + + +class TestWeightedBetweennessCentrality: + def test_K5(self): + """Weighted betweenness centrality: K5""" + G = nx.complete_graph(5) + b = nx.betweenness_centrality(G, weight="weight", normalized=False) + b_answer = {0: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0} + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_P3_normalized(self): + """Weighted betweenness centrality: P3 normalized""" + G = nx.path_graph(3) + b = nx.betweenness_centrality(G, weight="weight", normalized=True) + b_answer = {0: 0.0, 1: 1.0, 2: 0.0} + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_P3(self): + """Weighted betweenness centrality: P3""" + G = nx.path_graph(3) + b_answer = {0: 0.0, 1: 1.0, 2: 0.0} + b = nx.betweenness_centrality(G, weight="weight", normalized=False) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_krackhardt_kite_graph(self): + """Weighted betweenness centrality: Krackhardt kite graph""" + G = nx.krackhardt_kite_graph() + b_answer = { + 0: 1.667, + 1: 1.667, + 2: 0.000, + 3: 7.333, + 4: 0.000, + 5: 16.667, + 6: 16.667, + 7: 28.000, + 8: 16.000, + 9: 0.000, + } + for b in b_answer: + b_answer[b] /= 2 + + b = nx.betweenness_centrality(G, weight="weight", normalized=False) + + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-3) + + def test_krackhardt_kite_graph_normalized(self): + """Weighted betweenness centrality: + Krackhardt kite graph normalized + """ + G = nx.krackhardt_kite_graph() + b_answer = { + 0: 0.023, + 1: 0.023, + 2: 0.000, + 3: 0.102, + 4: 0.000, + 5: 0.231, + 6: 0.231, + 7: 0.389, + 8: 0.222, + 9: 0.000, + } + b = nx.betweenness_centrality(G, weight="weight", normalized=True) + + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-3) + + def test_florentine_families_graph(self): + """Weighted betweenness centrality: + Florentine families graph""" + G = nx.florentine_families_graph() + b_answer = { + "Acciaiuoli": 0.000, + "Albizzi": 0.212, + "Barbadori": 0.093, + "Bischeri": 0.104, + "Castellani": 0.055, + "Ginori": 0.000, + "Guadagni": 0.255, + "Lamberteschi": 0.000, + "Medici": 0.522, + "Pazzi": 0.000, + "Peruzzi": 0.022, + "Ridolfi": 0.114, + "Salviati": 0.143, + "Strozzi": 0.103, + "Tornabuoni": 0.092, + } + + b = nx.betweenness_centrality(G, weight="weight", normalized=True) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-3) + + def test_les_miserables_graph(self): + """Weighted betweenness centrality: Les Miserables graph""" + G = nx.les_miserables_graph() + b_answer = { + "Napoleon": 0.000, + "Myriel": 0.177, + "MlleBaptistine": 0.000, + "MmeMagloire": 0.000, + "CountessDeLo": 0.000, + "Geborand": 0.000, + "Champtercier": 0.000, + "Cravatte": 0.000, + "Count": 0.000, + "OldMan": 0.000, + "Valjean": 0.454, + "Labarre": 0.000, + "Marguerite": 0.009, + "MmeDeR": 0.000, + "Isabeau": 0.000, + "Gervais": 0.000, + "Listolier": 0.000, + "Tholomyes": 0.066, + "Fameuil": 0.000, + "Blacheville": 0.000, + "Favourite": 0.000, + "Dahlia": 0.000, + "Zephine": 0.000, + "Fantine": 0.114, + "MmeThenardier": 0.046, + "Thenardier": 0.129, + "Cosette": 0.075, + "Javert": 0.193, + "Fauchelevent": 0.026, + "Bamatabois": 0.080, + "Perpetue": 0.000, + "Simplice": 0.001, + "Scaufflaire": 0.000, + "Woman1": 0.000, + "Judge": 0.000, + "Champmathieu": 0.000, + "Brevet": 0.000, + "Chenildieu": 0.000, + "Cochepaille": 0.000, + "Pontmercy": 0.023, + "Boulatruelle": 0.000, + "Eponine": 0.023, + "Anzelma": 0.000, + "Woman2": 0.000, + "MotherInnocent": 0.000, + "Gribier": 0.000, + "MmeBurgon": 0.026, + "Jondrette": 0.000, + "Gavroche": 0.285, + "Gillenormand": 0.024, + "Magnon": 0.005, + "MlleGillenormand": 0.036, + "MmePontmercy": 0.005, + "MlleVaubois": 0.000, + "LtGillenormand": 0.015, + "Marius": 0.072, + "BaronessT": 0.004, + "Mabeuf": 0.089, + "Enjolras": 0.003, + "Combeferre": 0.000, + "Prouvaire": 0.000, + "Feuilly": 0.004, + "Courfeyrac": 0.001, + "Bahorel": 0.007, + "Bossuet": 0.028, + "Joly": 0.000, + "Grantaire": 0.036, + "MotherPlutarch": 0.000, + "Gueulemer": 0.025, + "Babet": 0.015, + "Claquesous": 0.042, + "Montparnasse": 0.050, + "Toussaint": 0.011, + "Child1": 0.000, + "Child2": 0.000, + "Brujon": 0.002, + "MmeHucheloup": 0.034, + } + + b = nx.betweenness_centrality(G, weight="weight", normalized=True) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-3) + + def test_ladder_graph(self): + """Weighted betweenness centrality: Ladder graph""" + G = nx.Graph() # ladder_graph(3) + G.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 3), (2, 4), (4, 5), (3, 5)]) + b_answer = {0: 1.667, 1: 1.667, 2: 6.667, 3: 6.667, 4: 1.667, 5: 1.667} + for b in b_answer: + b_answer[b] /= 2 + b = nx.betweenness_centrality(G, weight="weight", normalized=False) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-3) + + def test_G(self): + """Weighted betweenness centrality: G""" + G = weighted_G() + b_answer = {0: 2.0, 1: 0.0, 2: 4.0, 3: 3.0, 4: 4.0, 5: 0.0} + b = nx.betweenness_centrality(G, weight="weight", normalized=False) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_G2(self): + """Weighted betweenness centrality: G2""" + G = nx.DiGraph() + G.add_weighted_edges_from( + [ + ("s", "u", 10), + ("s", "x", 5), + ("u", "v", 1), + ("u", "x", 2), + ("v", "y", 1), + ("x", "u", 3), + ("x", "v", 5), + ("x", "y", 2), + ("y", "s", 7), + ("y", "v", 6), + ] + ) + + b_answer = {"y": 5.0, "x": 5.0, "s": 4.0, "u": 2.0, "v": 2.0} + + b = nx.betweenness_centrality(G, weight="weight", normalized=False) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_G3(self): + """Weighted betweenness centrality: G3""" + G = nx.MultiGraph(weighted_G()) + es = list(G.edges(data=True))[::2] # duplicate every other edge + G.add_edges_from(es) + b_answer = {0: 2.0, 1: 0.0, 2: 4.0, 3: 3.0, 4: 4.0, 5: 0.0} + b = nx.betweenness_centrality(G, weight="weight", normalized=False) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_G4(self): + """Weighted betweenness centrality: G4""" + G = nx.MultiDiGraph() + G.add_weighted_edges_from( + [ + ("s", "u", 10), + ("s", "x", 5), + ("s", "x", 6), + ("u", "v", 1), + ("u", "x", 2), + ("v", "y", 1), + ("v", "y", 1), + ("x", "u", 3), + ("x", "v", 5), + ("x", "y", 2), + ("x", "y", 3), + ("y", "s", 7), + ("y", "v", 6), + ("y", "v", 6), + ] + ) + + b_answer = {"y": 5.0, "x": 5.0, "s": 4.0, "u": 2.0, "v": 2.0} + + b = nx.betweenness_centrality(G, weight="weight", normalized=False) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + +class TestEdgeBetweennessCentrality: + def test_K5(self): + """Edge betweenness centrality: K5""" + G = nx.complete_graph(5) + b = nx.edge_betweenness_centrality(G, weight=None, normalized=False) + b_answer = dict.fromkeys(G.edges(), 1) + for n in sorted(G.edges()): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_normalized_K5(self): + """Edge betweenness centrality: K5""" + G = nx.complete_graph(5) + b = nx.edge_betweenness_centrality(G, weight=None, normalized=True) + b_answer = dict.fromkeys(G.edges(), 1 / 10) + for n in sorted(G.edges()): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_C4(self): + """Edge betweenness centrality: C4""" + G = nx.cycle_graph(4) + b = nx.edge_betweenness_centrality(G, weight=None, normalized=True) + b_answer = {(0, 1): 2, (0, 3): 2, (1, 2): 2, (2, 3): 2} + for n in sorted(G.edges()): + assert b[n] == pytest.approx(b_answer[n] / 6, abs=1e-7) + + def test_P4(self): + """Edge betweenness centrality: P4""" + G = nx.path_graph(4) + b = nx.edge_betweenness_centrality(G, weight=None, normalized=False) + b_answer = {(0, 1): 3, (1, 2): 4, (2, 3): 3} + for n in sorted(G.edges()): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_normalized_P4(self): + """Edge betweenness centrality: P4""" + G = nx.path_graph(4) + b = nx.edge_betweenness_centrality(G, weight=None, normalized=True) + b_answer = {(0, 1): 3, (1, 2): 4, (2, 3): 3} + for n in sorted(G.edges()): + assert b[n] == pytest.approx(b_answer[n] / 6, abs=1e-7) + + def test_balanced_tree(self): + """Edge betweenness centrality: balanced tree""" + G = nx.balanced_tree(r=2, h=2) + b = nx.edge_betweenness_centrality(G, weight=None, normalized=False) + b_answer = {(0, 1): 12, (0, 2): 12, (1, 3): 6, (1, 4): 6, (2, 5): 6, (2, 6): 6} + for n in sorted(G.edges()): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_edge_betweenness_k(self): + """Ensure setting `k` properly limits the number of source nodes.""" + G = nx.path_graph(3) + # This choice of `k` and `seed` selects nodes 0 and 2. + # There is only one shortest path between any two pairs of nodes. + # With source nodes 0 and 2, this means that both edges are part of + # three shortest paths: + # For (0, 1): sp(0, 1), sp(0, 2), sp(2, 0). + # For (1, 2): sp(0, 2), sp(2, 0), sp(2, 1). + # We normalize by 2 because the graph is undirected, and by + # `k / n = 2 / 3` because we are only considering a subset of source + # nodes. + # This means the final eb centralities should be 3 / 2 / (2 / 3) = 9 / 4. + eb = nx.edge_betweenness_centrality(G, k=2, seed=42, normalized=False) + assert eb == {(0, 1): 9 / 4, (1, 2): 9 / 4} + # When normalization is `True`, we instead divide by the number of total + # `(s, t)` pairs, i.e. `k * (n - 1) = 4`, meaning we get an eb of `3 / 4`. + eb = nx.edge_betweenness_centrality(G, k=2, seed=42, normalized=True) + assert eb == {(0, 1): 3 / 4, (1, 2): 3 / 4} + + +class TestWeightedEdgeBetweennessCentrality: + def test_K5(self): + """Edge betweenness centrality: K5""" + G = nx.complete_graph(5) + b = nx.edge_betweenness_centrality(G, weight="weight", normalized=False) + b_answer = dict.fromkeys(G.edges(), 1) + for n in sorted(G.edges()): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_C4(self): + """Edge betweenness centrality: C4""" + G = nx.cycle_graph(4) + b = nx.edge_betweenness_centrality(G, weight="weight", normalized=False) + b_answer = {(0, 1): 2, (0, 3): 2, (1, 2): 2, (2, 3): 2} + for n in sorted(G.edges()): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_P4(self): + """Edge betweenness centrality: P4""" + G = nx.path_graph(4) + b = nx.edge_betweenness_centrality(G, weight="weight", normalized=False) + b_answer = {(0, 1): 3, (1, 2): 4, (2, 3): 3} + for n in sorted(G.edges()): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_balanced_tree(self): + """Edge betweenness centrality: balanced tree""" + G = nx.balanced_tree(r=2, h=2) + b = nx.edge_betweenness_centrality(G, weight="weight", normalized=False) + b_answer = {(0, 1): 12, (0, 2): 12, (1, 3): 6, (1, 4): 6, (2, 5): 6, (2, 6): 6} + for n in sorted(G.edges()): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_weighted_graph(self): + """Edge betweenness centrality: weighted""" + eList = [ + (0, 1, 5), + (0, 2, 4), + (0, 3, 3), + (0, 4, 2), + (1, 2, 4), + (1, 3, 1), + (1, 4, 3), + (2, 4, 5), + (3, 4, 4), + ] + G = nx.Graph() + G.add_weighted_edges_from(eList) + b = nx.edge_betweenness_centrality(G, weight="weight", normalized=False) + b_answer = { + (0, 1): 0.0, + (0, 2): 1.0, + (0, 3): 2.0, + (0, 4): 1.0, + (1, 2): 2.0, + (1, 3): 3.5, + (1, 4): 1.5, + (2, 4): 1.0, + (3, 4): 0.5, + } + for n in sorted(G.edges()): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_normalized_weighted_graph(self): + """Edge betweenness centrality: normalized weighted""" + eList = [ + (0, 1, 5), + (0, 2, 4), + (0, 3, 3), + (0, 4, 2), + (1, 2, 4), + (1, 3, 1), + (1, 4, 3), + (2, 4, 5), + (3, 4, 4), + ] + G = nx.Graph() + G.add_weighted_edges_from(eList) + b = nx.edge_betweenness_centrality(G, weight="weight", normalized=True) + b_answer = { + (0, 1): 0.0, + (0, 2): 1.0, + (0, 3): 2.0, + (0, 4): 1.0, + (1, 2): 2.0, + (1, 3): 3.5, + (1, 4): 1.5, + (2, 4): 1.0, + (3, 4): 0.5, + } + norm = len(G) * (len(G) - 1) / 2 + for n in sorted(G.edges()): + assert b[n] == pytest.approx(b_answer[n] / norm, abs=1e-7) + + def test_weighted_multigraph(self): + """Edge betweenness centrality: weighted multigraph""" + eList = [ + (0, 1, 5), + (0, 1, 4), + (0, 2, 4), + (0, 3, 3), + (0, 3, 3), + (0, 4, 2), + (1, 2, 4), + (1, 3, 1), + (1, 3, 2), + (1, 4, 3), + (1, 4, 4), + (2, 4, 5), + (3, 4, 4), + (3, 4, 4), + ] + G = nx.MultiGraph() + G.add_weighted_edges_from(eList) + b = nx.edge_betweenness_centrality(G, weight="weight", normalized=False) + b_answer = { + (0, 1, 0): 0.0, + (0, 1, 1): 0.5, + (0, 2, 0): 1.0, + (0, 3, 0): 0.75, + (0, 3, 1): 0.75, + (0, 4, 0): 1.0, + (1, 2, 0): 2.0, + (1, 3, 0): 3.0, + (1, 3, 1): 0.0, + (1, 4, 0): 1.5, + (1, 4, 1): 0.0, + (2, 4, 0): 1.0, + (3, 4, 0): 0.25, + (3, 4, 1): 0.25, + } + for n in sorted(G.edges(keys=True)): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_normalized_weighted_multigraph(self): + """Edge betweenness centrality: normalized weighted multigraph""" + eList = [ + (0, 1, 5), + (0, 1, 4), + (0, 2, 4), + (0, 3, 3), + (0, 3, 3), + (0, 4, 2), + (1, 2, 4), + (1, 3, 1), + (1, 3, 2), + (1, 4, 3), + (1, 4, 4), + (2, 4, 5), + (3, 4, 4), + (3, 4, 4), + ] + G = nx.MultiGraph() + G.add_weighted_edges_from(eList) + b = nx.edge_betweenness_centrality(G, weight="weight", normalized=True) + b_answer = { + (0, 1, 0): 0.0, + (0, 1, 1): 0.5, + (0, 2, 0): 1.0, + (0, 3, 0): 0.75, + (0, 3, 1): 0.75, + (0, 4, 0): 1.0, + (1, 2, 0): 2.0, + (1, 3, 0): 3.0, + (1, 3, 1): 0.0, + (1, 4, 0): 1.5, + (1, 4, 1): 0.0, + (2, 4, 0): 1.0, + (3, 4, 0): 0.25, + (3, 4, 1): 0.25, + } + norm = len(G) * (len(G) - 1) / 2 + for n in sorted(G.edges(keys=True)): + assert b[n] == pytest.approx(b_answer[n] / norm, abs=1e-7) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_betweenness_centrality_subset.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_betweenness_centrality_subset.py new file mode 100644 index 0000000000000000000000000000000000000000..33bb6f7e8dbb17ab83efc387249046696a5cac32 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_betweenness_centrality_subset.py @@ -0,0 +1,354 @@ +import pytest + +import networkx as nx + + +class TestSubsetBetweennessCentrality: + def test_K5(self): + """Betweenness Centrality Subset: K5""" + G = nx.complete_graph(5) + b = nx.betweenness_centrality_subset( + G, sources=[0], targets=[1, 3], weight=None + ) + b_answer = {0: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0} + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_P5_directed(self): + """Betweenness Centrality Subset: P5 directed""" + G = nx.DiGraph() + nx.add_path(G, range(5)) + b_answer = {0: 0, 1: 1, 2: 1, 3: 0, 4: 0, 5: 0} + b = nx.betweenness_centrality_subset(G, sources=[0], targets=[3], weight=None) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_P5(self): + """Betweenness Centrality Subset: P5""" + G = nx.Graph() + nx.add_path(G, range(5)) + b_answer = {0: 0, 1: 0.5, 2: 0.5, 3: 0, 4: 0, 5: 0} + b = nx.betweenness_centrality_subset(G, sources=[0], targets=[3], weight=None) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_P5_multiple_target(self): + """Betweenness Centrality Subset: P5 multiple target""" + G = nx.Graph() + nx.add_path(G, range(5)) + b_answer = {0: 0, 1: 1, 2: 1, 3: 0.5, 4: 0, 5: 0} + b = nx.betweenness_centrality_subset( + G, sources=[0], targets=[3, 4], weight=None + ) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_box(self): + """Betweenness Centrality Subset: box""" + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 3)]) + b_answer = {0: 0, 1: 0.25, 2: 0.25, 3: 0} + b = nx.betweenness_centrality_subset(G, sources=[0], targets=[3], weight=None) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_box_and_path(self): + """Betweenness Centrality Subset: box and path""" + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 3), (3, 4), (4, 5)]) + b_answer = {0: 0, 1: 0.5, 2: 0.5, 3: 0.5, 4: 0, 5: 0} + b = nx.betweenness_centrality_subset( + G, sources=[0], targets=[3, 4], weight=None + ) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_box_and_path2(self): + """Betweenness Centrality Subset: box and path multiple target""" + G = nx.Graph() + G.add_edges_from([(0, 1), (1, 2), (2, 3), (1, 20), (20, 3), (3, 4)]) + b_answer = {0: 0, 1: 1.0, 2: 0.5, 20: 0.5, 3: 0.5, 4: 0} + b = nx.betweenness_centrality_subset( + G, sources=[0], targets=[3, 4], weight=None + ) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_diamond_multi_path(self): + """Betweenness Centrality Subset: Diamond Multi Path""" + G = nx.Graph() + G.add_edges_from( + [ + (1, 2), + (1, 3), + (1, 4), + (1, 5), + (1, 10), + (10, 11), + (11, 12), + (12, 9), + (2, 6), + (3, 6), + (4, 6), + (5, 7), + (7, 8), + (6, 8), + (8, 9), + ] + ) + b = nx.betweenness_centrality_subset(G, sources=[1], targets=[9], weight=None) + + expected_b = { + 1: 0, + 2: 1.0 / 10, + 3: 1.0 / 10, + 4: 1.0 / 10, + 5: 1.0 / 10, + 6: 3.0 / 10, + 7: 1.0 / 10, + 8: 4.0 / 10, + 9: 0, + 10: 1.0 / 10, + 11: 1.0 / 10, + 12: 1.0 / 10, + } + + for n in sorted(G): + assert b[n] == pytest.approx(expected_b[n], abs=1e-7) + + def test_normalized_p2(self): + """ + Betweenness Centrality Subset: Normalized P2 + if n <= 2: no normalization, betweenness centrality should be 0 for all nodes. + """ + G = nx.Graph() + nx.add_path(G, range(2)) + b_answer = {0: 0, 1: 0.0} + b = nx.betweenness_centrality_subset( + G, sources=[0], targets=[1], normalized=True, weight=None + ) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_normalized_P5_directed(self): + """Betweenness Centrality Subset: Normalized Directed P5""" + G = nx.DiGraph() + nx.add_path(G, range(5)) + b_answer = {0: 0, 1: 1.0 / 12.0, 2: 1.0 / 12.0, 3: 0, 4: 0, 5: 0} + b = nx.betweenness_centrality_subset( + G, sources=[0], targets=[3], normalized=True, weight=None + ) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_weighted_graph(self): + """Betweenness Centrality Subset: Weighted Graph""" + G = nx.DiGraph() + G.add_edge(0, 1, weight=3) + G.add_edge(0, 2, weight=2) + G.add_edge(0, 3, weight=6) + G.add_edge(0, 4, weight=4) + G.add_edge(1, 3, weight=5) + G.add_edge(1, 5, weight=5) + G.add_edge(2, 4, weight=1) + G.add_edge(3, 4, weight=2) + G.add_edge(3, 5, weight=1) + G.add_edge(4, 5, weight=4) + b_answer = {0: 0.0, 1: 0.0, 2: 0.5, 3: 0.5, 4: 0.5, 5: 0.0} + b = nx.betweenness_centrality_subset( + G, sources=[0], targets=[5], normalized=False, weight="weight" + ) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + +class TestEdgeSubsetBetweennessCentrality: + def test_K5(self): + """Edge betweenness subset centrality: K5""" + G = nx.complete_graph(5) + b = nx.edge_betweenness_centrality_subset( + G, sources=[0], targets=[1, 3], weight=None + ) + b_answer = dict.fromkeys(G.edges(), 0) + b_answer[(0, 3)] = b_answer[(0, 1)] = 0.5 + for n in sorted(G.edges()): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_P5_directed(self): + """Edge betweenness subset centrality: P5 directed""" + G = nx.DiGraph() + nx.add_path(G, range(5)) + b_answer = dict.fromkeys(G.edges(), 0) + b_answer[(0, 1)] = b_answer[(1, 2)] = b_answer[(2, 3)] = 1 + b = nx.edge_betweenness_centrality_subset( + G, sources=[0], targets=[3], weight=None + ) + for n in sorted(G.edges()): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_P5(self): + """Edge betweenness subset centrality: P5""" + G = nx.Graph() + nx.add_path(G, range(5)) + b_answer = dict.fromkeys(G.edges(), 0) + b_answer[(0, 1)] = b_answer[(1, 2)] = b_answer[(2, 3)] = 0.5 + b = nx.edge_betweenness_centrality_subset( + G, sources=[0], targets=[3], weight=None + ) + for n in sorted(G.edges()): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_P5_multiple_target(self): + """Edge betweenness subset centrality: P5 multiple target""" + G = nx.Graph() + nx.add_path(G, range(5)) + b_answer = dict.fromkeys(G.edges(), 0) + b_answer[(0, 1)] = b_answer[(1, 2)] = b_answer[(2, 3)] = 1 + b_answer[(3, 4)] = 0.5 + b = nx.edge_betweenness_centrality_subset( + G, sources=[0], targets=[3, 4], weight=None + ) + for n in sorted(G.edges()): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_box(self): + """Edge betweenness subset centrality: box""" + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 3)]) + b_answer = dict.fromkeys(G.edges(), 0) + b_answer[(0, 1)] = b_answer[(0, 2)] = 0.25 + b_answer[(1, 3)] = b_answer[(2, 3)] = 0.25 + b = nx.edge_betweenness_centrality_subset( + G, sources=[0], targets=[3], weight=None + ) + for n in sorted(G.edges()): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_box_and_path(self): + """Edge betweenness subset centrality: box and path""" + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 3), (3, 4), (4, 5)]) + b_answer = dict.fromkeys(G.edges(), 0) + b_answer[(0, 1)] = b_answer[(0, 2)] = 0.5 + b_answer[(1, 3)] = b_answer[(2, 3)] = 0.5 + b_answer[(3, 4)] = 0.5 + b = nx.edge_betweenness_centrality_subset( + G, sources=[0], targets=[3, 4], weight=None + ) + for n in sorted(G.edges()): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_box_and_path2(self): + """Edge betweenness subset centrality: box and path multiple target""" + G = nx.Graph() + G.add_edges_from([(0, 1), (1, 2), (2, 3), (1, 20), (20, 3), (3, 4)]) + b_answer = dict.fromkeys(G.edges(), 0) + b_answer[(0, 1)] = 1.0 + b_answer[(1, 20)] = b_answer[(3, 20)] = 0.5 + b_answer[(1, 2)] = b_answer[(2, 3)] = 0.5 + b_answer[(3, 4)] = 0.5 + b = nx.edge_betweenness_centrality_subset( + G, sources=[0], targets=[3, 4], weight=None + ) + for n in sorted(G.edges()): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_diamond_multi_path(self): + """Edge betweenness subset centrality: Diamond Multi Path""" + G = nx.Graph() + G.add_edges_from( + [ + (1, 2), + (1, 3), + (1, 4), + (1, 5), + (1, 10), + (10, 11), + (11, 12), + (12, 9), + (2, 6), + (3, 6), + (4, 6), + (5, 7), + (7, 8), + (6, 8), + (8, 9), + ] + ) + b_answer = dict.fromkeys(G.edges(), 0) + b_answer[(8, 9)] = 0.4 + b_answer[(6, 8)] = b_answer[(7, 8)] = 0.2 + b_answer[(2, 6)] = b_answer[(3, 6)] = b_answer[(4, 6)] = 0.2 / 3.0 + b_answer[(1, 2)] = b_answer[(1, 3)] = b_answer[(1, 4)] = 0.2 / 3.0 + b_answer[(5, 7)] = 0.2 + b_answer[(1, 5)] = 0.2 + b_answer[(9, 12)] = 0.1 + b_answer[(11, 12)] = b_answer[(10, 11)] = b_answer[(1, 10)] = 0.1 + b = nx.edge_betweenness_centrality_subset( + G, sources=[1], targets=[9], weight=None + ) + for n in G.edges(): + sort_n = tuple(sorted(n)) + assert b[n] == pytest.approx(b_answer[sort_n], abs=1e-7) + + def test_normalized_p1(self): + """ + Edge betweenness subset centrality: P1 + if n <= 1: no normalization b=0 for all nodes + """ + G = nx.Graph() + nx.add_path(G, range(1)) + b_answer = dict.fromkeys(G.edges(), 0) + b = nx.edge_betweenness_centrality_subset( + G, sources=[0], targets=[0], normalized=True, weight=None + ) + for n in G.edges(): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_normalized_P5_directed(self): + """Edge betweenness subset centrality: Normalized Directed P5""" + G = nx.DiGraph() + nx.add_path(G, range(5)) + b_answer = dict.fromkeys(G.edges(), 0) + b_answer[(0, 1)] = b_answer[(1, 2)] = b_answer[(2, 3)] = 0.05 + b = nx.edge_betweenness_centrality_subset( + G, sources=[0], targets=[3], normalized=True, weight=None + ) + for n in G.edges(): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_weighted_graph(self): + """Edge betweenness subset centrality: Weighted Graph""" + G = nx.DiGraph() + G.add_edge(0, 1, weight=3) + G.add_edge(0, 2, weight=2) + G.add_edge(0, 3, weight=6) + G.add_edge(0, 4, weight=4) + G.add_edge(1, 3, weight=5) + G.add_edge(1, 5, weight=5) + G.add_edge(2, 4, weight=1) + G.add_edge(3, 4, weight=2) + G.add_edge(3, 5, weight=1) + G.add_edge(4, 5, weight=4) + b_answer = dict.fromkeys(G.edges(), 0) + b_answer[(0, 2)] = b_answer[(2, 4)] = b_answer[(4, 5)] = 0.5 + b_answer[(0, 3)] = b_answer[(3, 5)] = 0.5 + b = nx.edge_betweenness_centrality_subset( + G, sources=[0], targets=[5], normalized=False, weight="weight" + ) + for n in G.edges(): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + +def test_equivalence_non_subset(): + """Assert that subset betweenness centrality with all nodes in the + subset is equivalent to full betweenness centrality. + """ + G = nx.path_graph(10, create_using=nx.DiGraph) + + assert nx.betweenness_centrality(G) == nx.betweenness_centrality_subset( + G, sources=G.nodes(), targets=G.nodes(), normalized=True + ) + assert nx.edge_betweenness_centrality(G) == nx.edge_betweenness_centrality_subset( + G, sources=G.nodes(), targets=G.nodes(), normalized=True + ) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_closeness_centrality.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_closeness_centrality.py new file mode 100644 index 0000000000000000000000000000000000000000..5419560fe7ea3cd974f796ba373af7c514d2f9dc --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_closeness_centrality.py @@ -0,0 +1,274 @@ +""" +Tests for closeness centrality. +""" + +import pytest + +import networkx as nx + + +@pytest.fixture() +def undirected_G(): + G = nx.fast_gnp_random_graph(n=100, p=0.6, seed=123) + cc = nx.closeness_centrality(G) + return G, cc + + +class TestClosenessCentrality: + def test_wf_improved(self): + G = nx.union(nx.path_graph(4), nx.path_graph([4, 5, 6])) + c = nx.closeness_centrality(G) + cwf = nx.closeness_centrality(G, wf_improved=False) + res = {0: 0.25, 1: 0.375, 2: 0.375, 3: 0.25, 4: 0.222, 5: 0.333, 6: 0.222} + wf_res = {0: 0.5, 1: 0.75, 2: 0.75, 3: 0.5, 4: 0.667, 5: 1.0, 6: 0.667} + for n in G: + assert c[n] == pytest.approx(res[n], abs=1e-3) + assert cwf[n] == pytest.approx(wf_res[n], abs=1e-3) + + def test_digraph(self): + G = nx.path_graph(3, create_using=nx.DiGraph) + c = nx.closeness_centrality(G) + cr = nx.closeness_centrality(G.reverse()) + d = {0: 0.0, 1: 0.500, 2: 0.667} + dr = {0: 0.667, 1: 0.500, 2: 0.0} + for n in G: + assert c[n] == pytest.approx(d[n], abs=1e-3) + assert cr[n] == pytest.approx(dr[n], abs=1e-3) + + def test_k5_closeness(self): + G = nx.complete_graph(5) + c = nx.closeness_centrality(G) + d = {0: 1.000, 1: 1.000, 2: 1.000, 3: 1.000, 4: 1.000} + for n in G: + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_p3_closeness(self): + G = nx.path_graph(3) + c = nx.closeness_centrality(G) + d = {0: 0.667, 1: 1.000, 2: 0.667} + for n in G: + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_krackhardt_closeness(self): + G = nx.krackhardt_kite_graph() + c = nx.closeness_centrality(G) + d = { + 0: 0.529, + 1: 0.529, + 2: 0.500, + 3: 0.600, + 4: 0.500, + 5: 0.643, + 6: 0.643, + 7: 0.600, + 8: 0.429, + 9: 0.310, + } + for n in G: + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_florentine_families_closeness(self): + G = nx.florentine_families_graph() + c = nx.closeness_centrality(G) + d = { + "Acciaiuoli": 0.368, + "Albizzi": 0.483, + "Barbadori": 0.4375, + "Bischeri": 0.400, + "Castellani": 0.389, + "Ginori": 0.333, + "Guadagni": 0.467, + "Lamberteschi": 0.326, + "Medici": 0.560, + "Pazzi": 0.286, + "Peruzzi": 0.368, + "Ridolfi": 0.500, + "Salviati": 0.389, + "Strozzi": 0.4375, + "Tornabuoni": 0.483, + } + for n in G: + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_les_miserables_closeness(self): + G = nx.les_miserables_graph() + c = nx.closeness_centrality(G) + d = { + "Napoleon": 0.302, + "Myriel": 0.429, + "MlleBaptistine": 0.413, + "MmeMagloire": 0.413, + "CountessDeLo": 0.302, + "Geborand": 0.302, + "Champtercier": 0.302, + "Cravatte": 0.302, + "Count": 0.302, + "OldMan": 0.302, + "Valjean": 0.644, + "Labarre": 0.394, + "Marguerite": 0.413, + "MmeDeR": 0.394, + "Isabeau": 0.394, + "Gervais": 0.394, + "Listolier": 0.341, + "Tholomyes": 0.392, + "Fameuil": 0.341, + "Blacheville": 0.341, + "Favourite": 0.341, + "Dahlia": 0.341, + "Zephine": 0.341, + "Fantine": 0.461, + "MmeThenardier": 0.461, + "Thenardier": 0.517, + "Cosette": 0.478, + "Javert": 0.517, + "Fauchelevent": 0.402, + "Bamatabois": 0.427, + "Perpetue": 0.318, + "Simplice": 0.418, + "Scaufflaire": 0.394, + "Woman1": 0.396, + "Judge": 0.404, + "Champmathieu": 0.404, + "Brevet": 0.404, + "Chenildieu": 0.404, + "Cochepaille": 0.404, + "Pontmercy": 0.373, + "Boulatruelle": 0.342, + "Eponine": 0.396, + "Anzelma": 0.352, + "Woman2": 0.402, + "MotherInnocent": 0.398, + "Gribier": 0.288, + "MmeBurgon": 0.344, + "Jondrette": 0.257, + "Gavroche": 0.514, + "Gillenormand": 0.442, + "Magnon": 0.335, + "MlleGillenormand": 0.442, + "MmePontmercy": 0.315, + "MlleVaubois": 0.308, + "LtGillenormand": 0.365, + "Marius": 0.531, + "BaronessT": 0.352, + "Mabeuf": 0.396, + "Enjolras": 0.481, + "Combeferre": 0.392, + "Prouvaire": 0.357, + "Feuilly": 0.392, + "Courfeyrac": 0.400, + "Bahorel": 0.394, + "Bossuet": 0.475, + "Joly": 0.394, + "Grantaire": 0.358, + "MotherPlutarch": 0.285, + "Gueulemer": 0.463, + "Babet": 0.463, + "Claquesous": 0.452, + "Montparnasse": 0.458, + "Toussaint": 0.402, + "Child1": 0.342, + "Child2": 0.342, + "Brujon": 0.380, + "MmeHucheloup": 0.353, + } + for n in G: + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_weighted_closeness(self): + edges = [ + ("s", "u", 10), + ("s", "x", 5), + ("u", "v", 1), + ("u", "x", 2), + ("v", "y", 1), + ("x", "u", 3), + ("x", "v", 5), + ("x", "y", 2), + ("y", "s", 7), + ("y", "v", 6), + ] + XG = nx.Graph() + XG.add_weighted_edges_from(edges) + c = nx.closeness_centrality(XG, distance="weight") + d = {"y": 0.200, "x": 0.286, "s": 0.138, "u": 0.235, "v": 0.200} + for n in sorted(XG): + assert c[n] == pytest.approx(d[n], abs=1e-3) + + +class TestIncrementalClosenessCentrality: + @staticmethod + def pick_add_edge(G): + u = nx.utils.arbitrary_element(G) + possible_nodes = set(G) - (set(G.neighbors(u)) | {u}) + v = nx.utils.arbitrary_element(possible_nodes) + return (u, v) + + @staticmethod + def pick_remove_edge(G): + u = nx.utils.arbitrary_element(G) + possible_nodes = list(G.neighbors(u)) + v = nx.utils.arbitrary_element(possible_nodes) + return (u, v) + + def test_directed_raises(self): + dir_G = nx.gn_graph(n=5) + prev_cc = None + edge = self.pick_add_edge(dir_G) + with pytest.raises(nx.NetworkXNotImplemented): + nx.incremental_closeness_centrality(dir_G, edge, prev_cc, insertion=True) + + def test_wrong_size_prev_cc_raises(self, undirected_G): + G, prev_cc = undirected_G + edge = self.pick_add_edge(G) + prev_cc.pop(0) + with pytest.raises(nx.NetworkXError): + nx.incremental_closeness_centrality(G, edge, prev_cc, insertion=True) + + def test_wrong_nodes_prev_cc_raises(self, undirected_G): + G, prev_cc = undirected_G + + edge = self.pick_add_edge(G) + num_nodes = len(prev_cc) + prev_cc.pop(0) + prev_cc[num_nodes] = 0.5 + with pytest.raises(nx.NetworkXError): + nx.incremental_closeness_centrality(G, edge, prev_cc, insertion=True) + + def test_zero_centrality(self): + G = nx.path_graph(3) + prev_cc = nx.closeness_centrality(G) + edge = self.pick_remove_edge(G) + test_cc = nx.incremental_closeness_centrality(G, edge, prev_cc, insertion=False) + G.remove_edges_from([edge]) + real_cc = nx.closeness_centrality(G) + shared_items = set(test_cc.items()) & set(real_cc.items()) + assert len(shared_items) == len(real_cc) + assert 0 in test_cc.values() + + def test_incremental(self, undirected_G): + # Check that incremental and regular give same output + G, _ = undirected_G + prev_cc = None + for i in range(5): + if i % 2 == 0: + # Remove an edge + insert = False + edge = self.pick_remove_edge(G) + else: + # Add an edge + insert = True + edge = self.pick_add_edge(G) + + test_cc = nx.incremental_closeness_centrality(G, edge, prev_cc, insert) + + if insert: + G.add_edges_from([edge]) + else: + G.remove_edges_from([edge]) + + real_cc = nx.closeness_centrality(G) + + assert set(test_cc.items()) == set(real_cc.items()) + + prev_cc = test_cc diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_current_flow_betweenness_centrality.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_current_flow_betweenness_centrality.py new file mode 100644 index 0000000000000000000000000000000000000000..e79cd5c8d886c6664ae963d64ad12990d978dd52 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_current_flow_betweenness_centrality.py @@ -0,0 +1,259 @@ +import pytest + +import networkx as nx +from networkx import approximate_current_flow_betweenness_centrality as approximate_cfbc +from networkx import edge_current_flow_betweenness_centrality as edge_current_flow + +np = pytest.importorskip("numpy") +pytest.importorskip("scipy") + + +class TestFlowBetweennessCentrality: + def test_K4_normalized(self): + """Betweenness centrality: K4""" + G = nx.complete_graph(4) + b = nx.current_flow_betweenness_centrality(G, normalized=True) + b_answer = {0: 0.25, 1: 0.25, 2: 0.25, 3: 0.25} + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + G.add_edge(0, 1, weight=0.5, other=0.3) + b = nx.current_flow_betweenness_centrality(G, normalized=True, weight=None) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + wb_answer = {0: 0.2222222, 1: 0.2222222, 2: 0.30555555, 3: 0.30555555} + b = nx.current_flow_betweenness_centrality(G, normalized=True, weight="weight") + for n in sorted(G): + assert b[n] == pytest.approx(wb_answer[n], abs=1e-7) + wb_answer = {0: 0.2051282, 1: 0.2051282, 2: 0.33974358, 3: 0.33974358} + b = nx.current_flow_betweenness_centrality(G, normalized=True, weight="other") + for n in sorted(G): + assert b[n] == pytest.approx(wb_answer[n], abs=1e-7) + + def test_K4(self): + """Betweenness centrality: K4""" + G = nx.complete_graph(4) + for solver in ["full", "lu", "cg"]: + b = nx.current_flow_betweenness_centrality( + G, normalized=False, solver=solver + ) + b_answer = {0: 0.75, 1: 0.75, 2: 0.75, 3: 0.75} + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_P4_normalized(self): + """Betweenness centrality: P4 normalized""" + G = nx.path_graph(4) + b = nx.current_flow_betweenness_centrality(G, normalized=True) + b_answer = {0: 0, 1: 2.0 / 3, 2: 2.0 / 3, 3: 0} + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_P4(self): + """Betweenness centrality: P4""" + G = nx.path_graph(4) + b = nx.current_flow_betweenness_centrality(G, normalized=False) + b_answer = {0: 0, 1: 2, 2: 2, 3: 0} + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_star(self): + """Betweenness centrality: star""" + G = nx.Graph() + nx.add_star(G, ["a", "b", "c", "d"]) + b = nx.current_flow_betweenness_centrality(G, normalized=True) + b_answer = {"a": 1.0, "b": 0.0, "c": 0.0, "d": 0.0} + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_solvers2(self): + """Betweenness centrality: alternate solvers""" + G = nx.complete_graph(4) + for solver in ["full", "lu", "cg"]: + b = nx.current_flow_betweenness_centrality( + G, normalized=False, solver=solver + ) + b_answer = {0: 0.75, 1: 0.75, 2: 0.75, 3: 0.75} + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + +class TestApproximateFlowBetweennessCentrality: + def test_K4_normalized(self): + "Approximate current-flow betweenness centrality: K4 normalized" + G = nx.complete_graph(4) + b = nx.current_flow_betweenness_centrality(G, normalized=True) + epsilon = 0.1 + ba = approximate_cfbc(G, normalized=True, epsilon=0.5 * epsilon) + for n in sorted(G): + np.testing.assert_allclose(b[n], ba[n], atol=epsilon) + + def test_K4(self): + "Approximate current-flow betweenness centrality: K4" + G = nx.complete_graph(4) + b = nx.current_flow_betweenness_centrality(G, normalized=False) + epsilon = 0.1 + ba = approximate_cfbc(G, normalized=False, epsilon=0.5 * epsilon) + for n in sorted(G): + np.testing.assert_allclose(b[n], ba[n], atol=epsilon * len(G) ** 2) + + def test_star(self): + "Approximate current-flow betweenness centrality: star" + G = nx.Graph() + nx.add_star(G, ["a", "b", "c", "d"]) + b = nx.current_flow_betweenness_centrality(G, normalized=True) + epsilon = 0.1 + ba = approximate_cfbc(G, normalized=True, epsilon=0.5 * epsilon) + for n in sorted(G): + np.testing.assert_allclose(b[n], ba[n], atol=epsilon) + + def test_grid(self): + "Approximate current-flow betweenness centrality: 2d grid" + G = nx.grid_2d_graph(4, 4) + b = nx.current_flow_betweenness_centrality(G, normalized=True) + epsilon = 0.1 + ba = approximate_cfbc(G, normalized=True, epsilon=0.5 * epsilon) + for n in sorted(G): + np.testing.assert_allclose(b[n], ba[n], atol=epsilon) + + def test_seed(self): + G = nx.complete_graph(4) + b = approximate_cfbc(G, normalized=False, epsilon=0.05, seed=1) + b_answer = {0: 0.75, 1: 0.75, 2: 0.75, 3: 0.75} + for n in sorted(G): + np.testing.assert_allclose(b[n], b_answer[n], atol=0.1) + + def test_solvers(self): + "Approximate current-flow betweenness centrality: solvers" + G = nx.complete_graph(4) + epsilon = 0.1 + for solver in ["full", "lu", "cg"]: + b = approximate_cfbc( + G, normalized=False, solver=solver, epsilon=0.5 * epsilon + ) + b_answer = {0: 0.75, 1: 0.75, 2: 0.75, 3: 0.75} + for n in sorted(G): + np.testing.assert_allclose(b[n], b_answer[n], atol=epsilon) + + def test_lower_kmax(self): + G = nx.complete_graph(4) + with pytest.raises(nx.NetworkXError, match="Increase kmax or epsilon"): + nx.approximate_current_flow_betweenness_centrality(G, kmax=4) + + def test_sample_weight_positive_effect(self): + G = nx.complete_graph(4) + b1 = approximate_cfbc(G, epsilon=0.1, seed=42) + b2 = approximate_cfbc(G, epsilon=0.1, sample_weight=2.0, seed=42) + assert len(b1) == len(b2) == 4 + for node in G.nodes(): + assert node in b1 and node in b2 + assert isinstance(b1[node], float) and isinstance(b2[node], float) + + def test_sample_weight_validation(self): + G = nx.complete_graph(4) + + with pytest.raises( + nx.NetworkXError, + match="Sample weight must be positive. Got sample_weight=-1.0", + ): + approximate_cfbc(G, sample_weight=-1.0) + + with pytest.raises( + nx.NetworkXError, + match="Sample weight must be positive. Got sample_weight=0.0", + ): + approximate_cfbc(G, sample_weight=0.0) + + result = approximate_cfbc(G, sample_weight=0.1, seed=42) + assert len(result) == 4 + + def test_epsilon_validation(self): + G = nx.complete_graph(4) + + with pytest.raises( + nx.NetworkXError, match="Epsilon must be positive. Got epsilon=-0.1" + ): + approximate_cfbc(G, epsilon=-0.1) + + with pytest.raises( + nx.NetworkXError, match="Epsilon must be positive. Got epsilon=0.0" + ): + approximate_cfbc(G, epsilon=0.0) + + def test_normalization_edge_case_small_graph(self): + G = nx.path_graph(2) + + result_norm = approximate_cfbc(G, normalized=True, seed=42) + result_unnorm = approximate_cfbc(G, normalized=False, seed=42) + + assert len(result_norm) == 2 + assert len(result_unnorm) == 2 + assert all(v == 0.0 for v in result_norm.values()) + assert all(v == 0.0 for v in result_unnorm.values()) + + G1 = nx.Graph() + G1.add_node(0) + result1 = approximate_cfbc(G1, normalized=True, seed=42) + assert result1 == {0: 0.0} + + def test_sample_weight_interaction_with_kmax(self): + G = nx.complete_graph(4) + + with pytest.raises(nx.NetworkXError, match="Number random pairs k>kmax"): + approximate_cfbc(G, sample_weight=10.0, epsilon=0.01, kmax=10) + + +class TestWeightedFlowBetweennessCentrality: + pass + + +class TestEdgeFlowBetweennessCentrality: + def test_K4(self): + """Edge flow betweenness centrality: K4""" + G = nx.complete_graph(4) + b = edge_current_flow(G, normalized=True) + b_answer = dict.fromkeys(G.edges(), 0.25) + for (s, t), v1 in b_answer.items(): + v2 = b.get((s, t), b.get((t, s))) + assert v1 == pytest.approx(v2, abs=1e-7) + + def test_K4_normalized(self): + """Edge flow betweenness centrality: K4""" + G = nx.complete_graph(4) + b = edge_current_flow(G, normalized=False) + b_answer = dict.fromkeys(G.edges(), 0.75) + for (s, t), v1 in b_answer.items(): + v2 = b.get((s, t), b.get((t, s))) + assert v1 == pytest.approx(v2, abs=1e-7) + + def test_C4(self): + """Edge flow betweenness centrality: C4""" + G = nx.cycle_graph(4) + b = edge_current_flow(G, normalized=False) + b_answer = {(0, 1): 1.25, (0, 3): 1.25, (1, 2): 1.25, (2, 3): 1.25} + for (s, t), v1 in b_answer.items(): + v2 = b.get((s, t), b.get((t, s))) + assert v1 == pytest.approx(v2, abs=1e-7) + + def test_P4(self): + """Edge betweenness centrality: P4""" + G = nx.path_graph(4) + b = edge_current_flow(G, normalized=False) + b_answer = {(0, 1): 1.5, (1, 2): 2.0, (2, 3): 1.5} + for (s, t), v1 in b_answer.items(): + v2 = b.get((s, t), b.get((t, s))) + assert v1 == pytest.approx(v2, abs=1e-7) + + +@pytest.mark.parametrize( + "centrality_func", + ( + nx.current_flow_betweenness_centrality, + nx.edge_current_flow_betweenness_centrality, + nx.approximate_current_flow_betweenness_centrality, + ), +) +def test_unconnected_graphs_betweenness_centrality(centrality_func): + G = nx.Graph([(1, 2), (3, 4)]) + G.add_node(5) + with pytest.raises(nx.NetworkXError, match="Graph not connected"): + centrality_func(G) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_current_flow_betweenness_centrality_subset.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_current_flow_betweenness_centrality_subset.py new file mode 100644 index 0000000000000000000000000000000000000000..7b1611b07bbf890f5e45bba7a42c298bd8f4e749 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_current_flow_betweenness_centrality_subset.py @@ -0,0 +1,147 @@ +import pytest + +pytest.importorskip("numpy") +pytest.importorskip("scipy") + +import networkx as nx +from networkx import edge_current_flow_betweenness_centrality as edge_current_flow +from networkx import ( + edge_current_flow_betweenness_centrality_subset as edge_current_flow_subset, +) + + +class TestFlowBetweennessCentrality: + def test_K4_normalized(self): + """Betweenness centrality: K4""" + G = nx.complete_graph(4) + b = nx.current_flow_betweenness_centrality_subset( + G, list(G), list(G), normalized=True + ) + b_answer = nx.current_flow_betweenness_centrality(G, normalized=True) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_K4(self): + """Betweenness centrality: K4""" + G = nx.complete_graph(4) + b = nx.current_flow_betweenness_centrality_subset( + G, list(G), list(G), normalized=True + ) + b_answer = nx.current_flow_betweenness_centrality(G, normalized=True) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + # test weighted network + G.add_edge(0, 1, weight=0.5, other=0.3) + b = nx.current_flow_betweenness_centrality_subset( + G, list(G), list(G), normalized=True, weight=None + ) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + b = nx.current_flow_betweenness_centrality_subset( + G, list(G), list(G), normalized=True + ) + b_answer = nx.current_flow_betweenness_centrality(G, normalized=True) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + b = nx.current_flow_betweenness_centrality_subset( + G, list(G), list(G), normalized=True, weight="other" + ) + b_answer = nx.current_flow_betweenness_centrality( + G, normalized=True, weight="other" + ) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_P4_normalized(self): + """Betweenness centrality: P4 normalized""" + G = nx.path_graph(4) + b = nx.current_flow_betweenness_centrality_subset( + G, list(G), list(G), normalized=True + ) + b_answer = nx.current_flow_betweenness_centrality(G, normalized=True) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_P4(self): + """Betweenness centrality: P4""" + G = nx.path_graph(4) + b = nx.current_flow_betweenness_centrality_subset( + G, list(G), list(G), normalized=True + ) + b_answer = nx.current_flow_betweenness_centrality(G, normalized=True) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_star(self): + """Betweenness centrality: star""" + G = nx.Graph() + nx.add_star(G, ["a", "b", "c", "d"]) + b = nx.current_flow_betweenness_centrality_subset( + G, list(G), list(G), normalized=True + ) + b_answer = nx.current_flow_betweenness_centrality(G, normalized=True) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + +# class TestWeightedFlowBetweennessCentrality(): +# pass + + +class TestEdgeFlowBetweennessCentrality: + def test_K4_normalized(self): + """Betweenness centrality: K4""" + G = nx.complete_graph(4) + b = edge_current_flow_subset(G, list(G), list(G), normalized=True) + b_answer = edge_current_flow(G, normalized=True) + for (s, t), v1 in b_answer.items(): + v2 = b.get((s, t), b.get((t, s))) + assert v1 == pytest.approx(v2, abs=1e-7) + + def test_K4(self): + """Betweenness centrality: K4""" + G = nx.complete_graph(4) + b = edge_current_flow_subset(G, list(G), list(G), normalized=False) + b_answer = edge_current_flow(G, normalized=False) + for (s, t), v1 in b_answer.items(): + v2 = b.get((s, t), b.get((t, s))) + assert v1 == pytest.approx(v2, abs=1e-7) + # test weighted network + G.add_edge(0, 1, weight=0.5, other=0.3) + b = edge_current_flow_subset(G, list(G), list(G), normalized=False, weight=None) + # weight is None => same as unweighted network + for (s, t), v1 in b_answer.items(): + v2 = b.get((s, t), b.get((t, s))) + assert v1 == pytest.approx(v2, abs=1e-7) + + b = edge_current_flow_subset(G, list(G), list(G), normalized=False) + b_answer = edge_current_flow(G, normalized=False) + for (s, t), v1 in b_answer.items(): + v2 = b.get((s, t), b.get((t, s))) + assert v1 == pytest.approx(v2, abs=1e-7) + + b = edge_current_flow_subset( + G, list(G), list(G), normalized=False, weight="other" + ) + b_answer = edge_current_flow(G, normalized=False, weight="other") + for (s, t), v1 in b_answer.items(): + v2 = b.get((s, t), b.get((t, s))) + assert v1 == pytest.approx(v2, abs=1e-7) + + def test_C4(self): + """Edge betweenness centrality: C4""" + G = nx.cycle_graph(4) + b = edge_current_flow_subset(G, list(G), list(G), normalized=True) + b_answer = edge_current_flow(G, normalized=True) + for (s, t), v1 in b_answer.items(): + v2 = b.get((s, t), b.get((t, s))) + assert v1 == pytest.approx(v2, abs=1e-7) + + def test_P4(self): + """Edge betweenness centrality: P4""" + G = nx.path_graph(4) + b = edge_current_flow_subset(G, list(G), list(G), normalized=True) + b_answer = edge_current_flow(G, normalized=True) + for (s, t), v1 in b_answer.items(): + v2 = b.get((s, t), b.get((t, s))) + assert v1 == pytest.approx(v2, abs=1e-7) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_current_flow_closeness.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_current_flow_closeness.py new file mode 100644 index 0000000000000000000000000000000000000000..2528d622855938b8f569d4fb33309ebed1dbd7c8 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_current_flow_closeness.py @@ -0,0 +1,43 @@ +import pytest + +pytest.importorskip("numpy") +pytest.importorskip("scipy") + +import networkx as nx + + +class TestFlowClosenessCentrality: + def test_K4(self): + """Closeness centrality: K4""" + G = nx.complete_graph(4) + b = nx.current_flow_closeness_centrality(G) + b_answer = {0: 2.0 / 3, 1: 2.0 / 3, 2: 2.0 / 3, 3: 2.0 / 3} + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_P4(self): + """Closeness centrality: P4""" + G = nx.path_graph(4) + b = nx.current_flow_closeness_centrality(G) + b_answer = {0: 1.0 / 6, 1: 1.0 / 4, 2: 1.0 / 4, 3: 1.0 / 6} + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_star(self): + """Closeness centrality: star""" + G = nx.Graph() + nx.add_star(G, ["a", "b", "c", "d"]) + b = nx.current_flow_closeness_centrality(G) + b_answer = {"a": 1.0 / 3, "b": 0.6 / 3, "c": 0.6 / 3, "d": 0.6 / 3} + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_current_flow_closeness_centrality_not_connected(self): + G = nx.Graph() + G.add_nodes_from([1, 2, 3]) + with pytest.raises(nx.NetworkXError): + nx.current_flow_closeness_centrality(G) + + +class TestWeightedFlowClosenessCentrality: + pass diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_degree_centrality.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_degree_centrality.py new file mode 100644 index 0000000000000000000000000000000000000000..e39aa3b19f248acdd3a23e126e426bfd1c45c4c7 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_degree_centrality.py @@ -0,0 +1,144 @@ +""" +Unit tests for degree centrality. +""" + +import pytest + +import networkx as nx + + +class TestDegreeCentrality: + def setup_method(self): + self.K = nx.krackhardt_kite_graph() + self.P3 = nx.path_graph(3) + self.K5 = nx.complete_graph(5) + + F = nx.Graph() # Florentine families + F.add_edge("Acciaiuoli", "Medici") + F.add_edge("Castellani", "Peruzzi") + F.add_edge("Castellani", "Strozzi") + F.add_edge("Castellani", "Barbadori") + F.add_edge("Medici", "Barbadori") + F.add_edge("Medici", "Ridolfi") + F.add_edge("Medici", "Tornabuoni") + F.add_edge("Medici", "Albizzi") + F.add_edge("Medici", "Salviati") + F.add_edge("Salviati", "Pazzi") + F.add_edge("Peruzzi", "Strozzi") + F.add_edge("Peruzzi", "Bischeri") + F.add_edge("Strozzi", "Ridolfi") + F.add_edge("Strozzi", "Bischeri") + F.add_edge("Ridolfi", "Tornabuoni") + F.add_edge("Tornabuoni", "Guadagni") + F.add_edge("Albizzi", "Ginori") + F.add_edge("Albizzi", "Guadagni") + F.add_edge("Bischeri", "Guadagni") + F.add_edge("Guadagni", "Lamberteschi") + self.F = F + + G = nx.DiGraph() + G.add_edge(0, 5) + G.add_edge(1, 5) + G.add_edge(2, 5) + G.add_edge(3, 5) + G.add_edge(4, 5) + G.add_edge(5, 6) + G.add_edge(5, 7) + G.add_edge(5, 8) + self.G = G + + def test_degree_centrality_1(self): + d = nx.degree_centrality(self.K5) + exact = dict(zip(range(5), [1] * 5)) + for n, dc in d.items(): + assert exact[n] == pytest.approx(dc, abs=1e-7) + + def test_degree_centrality_2(self): + d = nx.degree_centrality(self.P3) + exact = {0: 0.5, 1: 1, 2: 0.5} + for n, dc in d.items(): + assert exact[n] == pytest.approx(dc, abs=1e-7) + + def test_degree_centrality_3(self): + d = nx.degree_centrality(self.K) + exact = { + 0: 0.444, + 1: 0.444, + 2: 0.333, + 3: 0.667, + 4: 0.333, + 5: 0.556, + 6: 0.556, + 7: 0.333, + 8: 0.222, + 9: 0.111, + } + for n, dc in d.items(): + assert exact[n] == pytest.approx(float(f"{dc:.3f}"), abs=1e-7) + + def test_degree_centrality_4(self): + d = nx.degree_centrality(self.F) + names = sorted(self.F.nodes()) + dcs = [ + 0.071, + 0.214, + 0.143, + 0.214, + 0.214, + 0.071, + 0.286, + 0.071, + 0.429, + 0.071, + 0.214, + 0.214, + 0.143, + 0.286, + 0.214, + ] + exact = dict(zip(names, dcs)) + for n, dc in d.items(): + assert exact[n] == pytest.approx(float(f"{dc:.3f}"), abs=1e-7) + + def test_indegree_centrality(self): + d = nx.in_degree_centrality(self.G) + exact = { + 0: 0.0, + 1: 0.0, + 2: 0.0, + 3: 0.0, + 4: 0.0, + 5: 0.625, + 6: 0.125, + 7: 0.125, + 8: 0.125, + } + for n, dc in d.items(): + assert exact[n] == pytest.approx(dc, abs=1e-7) + + def test_outdegree_centrality(self): + d = nx.out_degree_centrality(self.G) + exact = { + 0: 0.125, + 1: 0.125, + 2: 0.125, + 3: 0.125, + 4: 0.125, + 5: 0.375, + 6: 0.0, + 7: 0.0, + 8: 0.0, + } + for n, dc in d.items(): + assert exact[n] == pytest.approx(dc, abs=1e-7) + + def test_small_graph_centrality(self): + G = nx.empty_graph(create_using=nx.DiGraph) + assert {} == nx.degree_centrality(G) + assert {} == nx.out_degree_centrality(G) + assert {} == nx.in_degree_centrality(G) + + G = nx.empty_graph(1, create_using=nx.DiGraph) + assert {0: 1} == nx.degree_centrality(G) + assert {0: 1} == nx.out_degree_centrality(G) + assert {0: 1} == nx.in_degree_centrality(G) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_dispersion.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_dispersion.py new file mode 100644 index 0000000000000000000000000000000000000000..05de1c43659a44f2dbf45368bf2ee552dd61dd78 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_dispersion.py @@ -0,0 +1,73 @@ +import networkx as nx + + +def small_ego_G(): + """The sample network from https://arxiv.org/pdf/1310.6753v1.pdf""" + edges = [ + ("a", "b"), + ("a", "c"), + ("b", "c"), + ("b", "d"), + ("b", "e"), + ("b", "f"), + ("c", "d"), + ("c", "f"), + ("c", "h"), + ("d", "f"), + ("e", "f"), + ("f", "h"), + ("h", "j"), + ("h", "k"), + ("i", "j"), + ("i", "k"), + ("j", "k"), + ("u", "a"), + ("u", "b"), + ("u", "c"), + ("u", "d"), + ("u", "e"), + ("u", "f"), + ("u", "g"), + ("u", "h"), + ("u", "i"), + ("u", "j"), + ("u", "k"), + ] + G = nx.Graph() + G.add_edges_from(edges) + + return G + + +class TestDispersion: + def test_article(self): + """our algorithm matches article's""" + G = small_ego_G() + disp_uh = nx.dispersion(G, "u", "h", normalized=False) + disp_ub = nx.dispersion(G, "u", "b", normalized=False) + assert disp_uh == 4 + assert disp_ub == 1 + + def test_results_length(self): + """there is a result for every node""" + G = small_ego_G() + disp = nx.dispersion(G) + disp_Gu = nx.dispersion(G, "u") + disp_uv = nx.dispersion(G, "u", "h") + assert len(disp) == len(G) + assert len(disp_Gu) == len(G) - 1 + assert isinstance(disp_uv, float) + + def test_dispersion_v_only(self): + G = small_ego_G() + disp_G_h = nx.dispersion(G, v="h", normalized=False) + disp_G_h_normalized = nx.dispersion(G, v="h", normalized=True) + assert disp_G_h == {"c": 0, "f": 0, "j": 0, "k": 0, "u": 4} + assert disp_G_h_normalized == {"c": 0.0, "f": 0.0, "j": 0.0, "k": 0.0, "u": 1.0} + + def test_impossible_things(self): + G = nx.karate_club_graph() + disp = nx.dispersion(G) + for u in disp: + for v in disp[u]: + assert disp[u][v] >= 0 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_eigenvector_centrality.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_eigenvector_centrality.py new file mode 100644 index 0000000000000000000000000000000000000000..7322aae10b99188497729edeb283ebc7ba50f077 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_eigenvector_centrality.py @@ -0,0 +1,186 @@ +import math + +import pytest + +import networkx as nx + +np = pytest.importorskip("numpy") +pytest.importorskip("scipy") + + +class TestEigenvectorCentrality: + def test_K5(self): + """Eigenvector centrality: K5""" + G = nx.complete_graph(5) + b = nx.eigenvector_centrality(G) + v = math.sqrt(1 / 5.0) + b_answer = dict.fromkeys(G, v) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + nstart = {n: 1 for n in G} + b = nx.eigenvector_centrality(G, nstart=nstart) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + b = nx.eigenvector_centrality_numpy(G) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-3) + + def test_P3(self): + """Eigenvector centrality: P3""" + G = nx.path_graph(3) + b_answer = {0: 0.5, 1: 0.7071, 2: 0.5} + b = nx.eigenvector_centrality_numpy(G) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-4) + b = nx.eigenvector_centrality(G) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-4) + + def test_P3_unweighted(self): + """Eigenvector centrality: P3""" + G = nx.path_graph(3) + b_answer = {0: 0.5, 1: 0.7071, 2: 0.5} + b = nx.eigenvector_centrality_numpy(G, weight=None) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-4) + + def test_maxiter(self): + with pytest.raises(nx.PowerIterationFailedConvergence): + G = nx.path_graph(3) + nx.eigenvector_centrality(G, max_iter=0) + + +class TestEigenvectorCentralityDirected: + @classmethod + def setup_class(cls): + G = nx.DiGraph() + + edges = [ + (1, 2), + (1, 3), + (2, 4), + (3, 2), + (3, 5), + (4, 2), + (4, 5), + (4, 6), + (5, 6), + (5, 7), + (5, 8), + (6, 8), + (7, 1), + (7, 5), + (7, 8), + (8, 6), + (8, 7), + ] + + G.add_edges_from(edges, weight=2.0) + cls.G = G.reverse() + cls.G.evc = [ + 0.25368793, + 0.19576478, + 0.32817092, + 0.40430835, + 0.48199885, + 0.15724483, + 0.51346196, + 0.32475403, + ] + + H = nx.DiGraph() + + edges = [ + (1, 2), + (1, 3), + (2, 4), + (3, 2), + (3, 5), + (4, 2), + (4, 5), + (4, 6), + (5, 6), + (5, 7), + (5, 8), + (6, 8), + (7, 1), + (7, 5), + (7, 8), + (8, 6), + (8, 7), + ] + + G.add_edges_from(edges) + cls.H = G.reverse() + cls.H.evc = [ + 0.25368793, + 0.19576478, + 0.32817092, + 0.40430835, + 0.48199885, + 0.15724483, + 0.51346196, + 0.32475403, + ] + + def test_eigenvector_centrality_weighted(self): + G = self.G + p = nx.eigenvector_centrality(G) + for a, b in zip(list(p.values()), self.G.evc): + assert a == pytest.approx(b, abs=1e-4) + + def test_eigenvector_centrality_weighted_numpy(self): + G = self.G + p = nx.eigenvector_centrality_numpy(G) + for a, b in zip(list(p.values()), self.G.evc): + assert a == pytest.approx(b, abs=1e-7) + + def test_eigenvector_centrality_unweighted(self): + G = self.H + p = nx.eigenvector_centrality(G) + for a, b in zip(list(p.values()), self.G.evc): + assert a == pytest.approx(b, abs=1e-4) + + def test_eigenvector_centrality_unweighted_numpy(self): + G = self.H + p = nx.eigenvector_centrality_numpy(G) + for a, b in zip(list(p.values()), self.G.evc): + assert a == pytest.approx(b, abs=1e-7) + + +class TestEigenvectorCentralityExceptions: + def test_multigraph(self): + with pytest.raises(nx.NetworkXException): + nx.eigenvector_centrality(nx.MultiGraph()) + + def test_multigraph_numpy(self): + with pytest.raises(nx.NetworkXException): + nx.eigenvector_centrality_numpy(nx.MultiGraph()) + + def test_null(self): + with pytest.raises(nx.NetworkXException): + nx.eigenvector_centrality(nx.Graph()) + + def test_null_numpy(self): + with pytest.raises(nx.NetworkXException): + nx.eigenvector_centrality_numpy(nx.Graph()) + + @pytest.mark.parametrize( + "G", + [ + nx.empty_graph(3), + nx.DiGraph([(0, 1), (1, 2)]), + ], + ) + def test_disconnected_numpy(self, G): + msg = "does not give consistent results for disconnected" + with pytest.raises(nx.AmbiguousSolution, match=msg): + nx.eigenvector_centrality_numpy(G) + + def test_zero_nstart(self): + G = nx.Graph([(1, 2), (1, 3), (2, 3)]) + with pytest.raises( + nx.NetworkXException, match="initial vector cannot have all zero values" + ): + nx.eigenvector_centrality(G, nstart={v: 0 for v in G}) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_group.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_group.py new file mode 100644 index 0000000000000000000000000000000000000000..82343f28702382c18676fc776511bd7efdf22a78 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_group.py @@ -0,0 +1,277 @@ +""" +Tests for Group Centrality Measures +""" + +import pytest + +import networkx as nx + + +class TestGroupBetweennessCentrality: + def test_group_betweenness_single_node(self): + """ + Group betweenness centrality for single node group + """ + G = nx.path_graph(5) + C = [1] + b = nx.group_betweenness_centrality( + G, C, weight=None, normalized=False, endpoints=False + ) + b_answer = 3.0 + assert b == b_answer + + def test_group_betweenness_with_endpoints(self): + """ + Group betweenness centrality for single node group + """ + G = nx.path_graph(5) + C = [1] + b = nx.group_betweenness_centrality( + G, C, weight=None, normalized=False, endpoints=True + ) + b_answer = 7.0 + assert b == b_answer + + def test_group_betweenness_normalized(self): + """ + Group betweenness centrality for group with more than + 1 node and normalized + """ + G = nx.path_graph(5) + C = [1, 3] + b = nx.group_betweenness_centrality( + G, C, weight=None, normalized=True, endpoints=False + ) + b_answer = 1.0 + assert b == b_answer + + def test_two_group_betweenness_value_zero(self): + """ + Group betweenness centrality value of 0 + """ + G = nx.cycle_graph(7) + C = [[0, 1, 6], [0, 1, 5]] + b = nx.group_betweenness_centrality(G, C, weight=None, normalized=False) + b_answer = [0.0, 3.0] + assert b == b_answer + + def test_group_betweenness_value_zero(self): + """ + Group betweenness centrality value of 0 + """ + G = nx.cycle_graph(6) + C = [0, 1, 5] + b = nx.group_betweenness_centrality(G, C, weight=None, normalized=False) + b_answer = 0.0 + assert b == b_answer + + def test_group_betweenness_disconnected_graph(self): + """ + Group betweenness centrality in a disconnected graph + """ + G = nx.path_graph(5) + G.remove_edge(0, 1) + C = [1] + b = nx.group_betweenness_centrality(G, C, weight=None, normalized=False) + b_answer = 0.0 + assert b == b_answer + + def test_group_betweenness_node_not_in_graph(self): + """ + Node(s) in C not in graph, raises NodeNotFound exception + """ + with pytest.raises(nx.NodeNotFound): + nx.group_betweenness_centrality(nx.path_graph(5), [4, 7, 8]) + + def test_group_betweenness_directed_weighted(self): + """ + Group betweenness centrality in a directed and weighted graph + """ + G = nx.DiGraph() + G.add_edge(1, 0, weight=1) + G.add_edge(0, 2, weight=2) + G.add_edge(1, 2, weight=3) + G.add_edge(3, 1, weight=4) + G.add_edge(2, 3, weight=1) + G.add_edge(4, 3, weight=6) + G.add_edge(2, 4, weight=7) + C = [1, 2] + b = nx.group_betweenness_centrality(G, C, weight="weight", normalized=False) + b_answer = 5.0 + assert b == b_answer + + +class TestProminentGroup: + np = pytest.importorskip("numpy") + pd = pytest.importorskip("pandas") + + def test_prominent_group_single_node(self): + """ + Prominent group for single node + """ + G = nx.path_graph(5) + k = 1 + b, g = nx.prominent_group(G, k, normalized=False, endpoints=False) + b_answer, g_answer = 4.0, [2] + assert b == b_answer and g == g_answer + + def test_prominent_group_with_c(self): + """ + Prominent group without some nodes + """ + G = nx.path_graph(5) + k = 1 + b, g = nx.prominent_group(G, k, normalized=False, C=[2]) + b_answer, g_answer = 3.0, [1] + assert b == b_answer and g == g_answer + + def test_prominent_group_normalized_endpoints(self): + """ + Prominent group with normalized result, with endpoints + """ + G = nx.cycle_graph(7) + k = 2 + b, g = nx.prominent_group(G, k, normalized=True, endpoints=True) + b_answer, g_answer = 1.7, [2, 5] + assert b == b_answer and g == g_answer + + def test_prominent_group_disconnected_graph(self): + """ + Prominent group of disconnected graph + """ + G = nx.path_graph(6) + G.remove_edge(0, 1) + k = 1 + b, g = nx.prominent_group(G, k, weight=None, normalized=False) + b_answer, g_answer = 4.0, [3] + assert b == b_answer and g == g_answer + + def test_prominent_group_node_not_in_graph(self): + """ + Node(s) in C not in graph, raises NodeNotFound exception + """ + with pytest.raises(nx.NodeNotFound): + nx.prominent_group(nx.path_graph(5), 1, C=[10]) + + def test_group_betweenness_directed_weighted(self): + """ + Group betweenness centrality in a directed and weighted graph + """ + G = nx.DiGraph() + G.add_edge(1, 0, weight=1) + G.add_edge(0, 2, weight=2) + G.add_edge(1, 2, weight=3) + G.add_edge(3, 1, weight=4) + G.add_edge(2, 3, weight=1) + G.add_edge(4, 3, weight=6) + G.add_edge(2, 4, weight=7) + k = 2 + b, g = nx.prominent_group(G, k, weight="weight", normalized=False) + b_answer, g_answer = 5.0, [1, 2] + assert b == b_answer and g == g_answer + + def test_prominent_group_greedy_algorithm(self): + """ + Group betweenness centrality in a greedy algorithm + """ + G = nx.cycle_graph(7) + k = 2 + b, g = nx.prominent_group(G, k, normalized=True, endpoints=True, greedy=True) + b_answer, g_answer = 1.7, [6, 3] + assert b == b_answer and g == g_answer + + +class TestGroupClosenessCentrality: + def test_group_closeness_single_node(self): + """ + Group closeness centrality for a single node group + """ + G = nx.path_graph(5) + c = nx.group_closeness_centrality(G, [1]) + c_answer = nx.closeness_centrality(G, 1) + assert c == c_answer + + def test_group_closeness_disconnected(self): + """ + Group closeness centrality for a disconnected graph + """ + G = nx.Graph() + G.add_nodes_from([1, 2, 3, 4]) + c = nx.group_closeness_centrality(G, [1, 2]) + c_answer = 0 + assert c == c_answer + + def test_group_closeness_multiple_node(self): + """ + Group closeness centrality for a group with more than + 1 node + """ + G = nx.path_graph(4) + c = nx.group_closeness_centrality(G, [1, 2]) + c_answer = 1 + assert c == c_answer + + def test_group_closeness_node_not_in_graph(self): + """ + Node(s) in S not in graph, raises NodeNotFound exception + """ + with pytest.raises(nx.NodeNotFound): + nx.group_closeness_centrality(nx.path_graph(5), [6, 7, 8]) + + +class TestGroupDegreeCentrality: + def test_group_degree_centrality_single_node(self): + """ + Group degree centrality for a single node group + """ + G = nx.path_graph(4) + d = nx.group_degree_centrality(G, [1]) + d_answer = nx.degree_centrality(G)[1] + assert d == d_answer + + def test_group_degree_centrality_multiple_node(self): + """ + Group degree centrality for group with more than + 1 node + """ + G = nx.Graph() + G.add_nodes_from([1, 2, 3, 4, 5, 6, 7, 8]) + G.add_edges_from( + [(1, 2), (1, 3), (1, 6), (1, 7), (1, 8), (2, 3), (2, 4), (2, 5)] + ) + d = nx.group_degree_centrality(G, [1, 2]) + d_answer = 1 + assert d == d_answer + + def test_group_in_degree_centrality(self): + """ + Group in-degree centrality in a DiGraph + """ + G = nx.DiGraph() + G.add_nodes_from([1, 2, 3, 4, 5, 6, 7, 8]) + G.add_edges_from( + [(1, 2), (1, 3), (1, 6), (1, 7), (1, 8), (2, 3), (2, 4), (2, 5)] + ) + d = nx.group_in_degree_centrality(G, [1, 2]) + d_answer = 0 + assert d == d_answer + + def test_group_out_degree_centrality(self): + """ + Group out-degree centrality in a DiGraph + """ + G = nx.DiGraph() + G.add_nodes_from([1, 2, 3, 4, 5, 6, 7, 8]) + G.add_edges_from( + [(1, 2), (1, 3), (1, 6), (1, 7), (1, 8), (2, 3), (2, 4), (2, 5)] + ) + d = nx.group_out_degree_centrality(G, [1, 2]) + d_answer = 1 + assert d == d_answer + + def test_group_degree_centrality_node_not_in_graph(self): + """ + Node(s) in S not in graph, raises NetworkXError + """ + with pytest.raises(nx.NetworkXError): + nx.group_degree_centrality(nx.path_graph(5), [6, 7, 8]) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_harmonic_centrality.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_harmonic_centrality.py new file mode 100644 index 0000000000000000000000000000000000000000..4b3dc4ac356701eb562a3179a69023ad83a8d74e --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_harmonic_centrality.py @@ -0,0 +1,122 @@ +""" +Tests for degree centrality. +""" + +import pytest + +import networkx as nx +from networkx.algorithms.centrality import harmonic_centrality + + +class TestClosenessCentrality: + @classmethod + def setup_class(cls): + cls.P3 = nx.path_graph(3) + cls.P4 = nx.path_graph(4) + cls.K5 = nx.complete_graph(5) + + cls.C4 = nx.cycle_graph(4) + cls.C4_directed = nx.cycle_graph(4, create_using=nx.DiGraph) + + cls.C5 = nx.cycle_graph(5) + + cls.T = nx.balanced_tree(r=2, h=2) + + cls.Gb = nx.DiGraph() + cls.Gb.add_edges_from([(0, 1), (0, 2), (0, 4), (2, 1), (2, 3), (4, 3)]) + + def test_p3_harmonic(self): + c = harmonic_centrality(self.P3) + d = {0: 1.5, 1: 2, 2: 1.5} + for n in sorted(self.P3): + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_p4_harmonic(self): + c = harmonic_centrality(self.P4) + d = {0: 1.8333333, 1: 2.5, 2: 2.5, 3: 1.8333333} + for n in sorted(self.P4): + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_clique_complete(self): + c = harmonic_centrality(self.K5) + d = {0: 4, 1: 4, 2: 4, 3: 4, 4: 4} + for n in sorted(self.P3): + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_cycle_C4(self): + c = harmonic_centrality(self.C4) + d = {0: 2.5, 1: 2.5, 2: 2.5, 3: 2.5} + for n in sorted(self.C4): + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_cycle_C5(self): + c = harmonic_centrality(self.C5) + d = {0: 3, 1: 3, 2: 3, 3: 3, 4: 3, 5: 4} + for n in sorted(self.C5): + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_bal_tree(self): + c = harmonic_centrality(self.T) + d = {0: 4.0, 1: 4.1666, 2: 4.1666, 3: 2.8333, 4: 2.8333, 5: 2.8333, 6: 2.8333} + for n in sorted(self.T): + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_exampleGraph(self): + c = harmonic_centrality(self.Gb) + d = {0: 0, 1: 2, 2: 1, 3: 2.5, 4: 1} + for n in sorted(self.Gb): + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_weighted_harmonic(self): + XG = nx.DiGraph() + XG.add_weighted_edges_from( + [ + ("a", "b", 10), + ("d", "c", 5), + ("a", "c", 1), + ("e", "f", 2), + ("f", "c", 1), + ("a", "f", 3), + ] + ) + c = harmonic_centrality(XG, distance="weight") + d = {"a": 0, "b": 0.1, "c": 2.533, "d": 0, "e": 0, "f": 0.83333} + for n in sorted(XG): + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_empty(self): + G = nx.DiGraph() + c = harmonic_centrality(G, distance="weight") + d = {} + assert c == d + + def test_singleton(self): + G = nx.DiGraph() + G.add_node(0) + c = harmonic_centrality(G, distance="weight") + d = {0: 0} + assert c == d + + def test_cycle_c4_directed(self): + c = harmonic_centrality(self.C4_directed, nbunch=[0, 1], sources=[1, 2]) + d = {0: 0.833, 1: 0.333} + for n in [0, 1]: + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_cycle_c4_directed_subset(self): + c = harmonic_centrality(self.C4_directed, nbunch=[0, 1]) + d = 1.833 + for n in [0, 1]: + assert c[n] == pytest.approx(d, abs=1e-3) + + def test_p3_harmonic_subset(self): + c = harmonic_centrality(self.P3, sources=[0, 1]) + d = {0: 1, 1: 1, 2: 1.5} + for n in self.P3: + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_p4_harmonic_subset(self): + c = harmonic_centrality(self.P4, nbunch=[2, 3], sources=[0, 1]) + d = {2: 1.5, 3: 0.8333333} + for n in [2, 3]: + assert c[n] == pytest.approx(d[n], abs=1e-3) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_katz_centrality.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_katz_centrality.py new file mode 100644 index 0000000000000000000000000000000000000000..0927f00bc5c31ad1134dae0c8f59367baed67bb6 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_katz_centrality.py @@ -0,0 +1,345 @@ +import math + +import pytest + +import networkx as nx + + +class TestKatzCentrality: + def test_K5(self): + """Katz centrality: K5""" + G = nx.complete_graph(5) + alpha = 0.1 + b = nx.katz_centrality(G, alpha) + v = math.sqrt(1 / 5.0) + b_answer = dict.fromkeys(G, v) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + nstart = {n: 1 for n in G} + b = nx.katz_centrality(G, alpha, nstart=nstart) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + + def test_P3(self): + """Katz centrality: P3""" + alpha = 0.1 + G = nx.path_graph(3) + b_answer = {0: 0.5598852584152165, 1: 0.6107839182711449, 2: 0.5598852584152162} + b = nx.katz_centrality(G, alpha) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-4) + + def test_maxiter(self): + with pytest.raises(nx.PowerIterationFailedConvergence): + nx.katz_centrality(nx.path_graph(3), 0.1, max_iter=0) + + def test_beta_as_scalar(self): + alpha = 0.1 + beta = 0.1 + b_answer = {0: 0.5598852584152165, 1: 0.6107839182711449, 2: 0.5598852584152162} + G = nx.path_graph(3) + b = nx.katz_centrality(G, alpha, beta) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-4) + + def test_beta_as_dict(self): + alpha = 0.1 + beta = {0: 1.0, 1: 1.0, 2: 1.0} + b_answer = {0: 0.5598852584152165, 1: 0.6107839182711449, 2: 0.5598852584152162} + G = nx.path_graph(3) + b = nx.katz_centrality(G, alpha, beta) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-4) + + def test_multiple_alpha(self): + alpha_list = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6] + for alpha in alpha_list: + b_answer = { + 0.1: { + 0: 0.5598852584152165, + 1: 0.6107839182711449, + 2: 0.5598852584152162, + }, + 0.2: { + 0: 0.5454545454545454, + 1: 0.6363636363636365, + 2: 0.5454545454545454, + }, + 0.3: { + 0: 0.5333964609104419, + 1: 0.6564879518897746, + 2: 0.5333964609104419, + }, + 0.4: { + 0: 0.5232045649263551, + 1: 0.6726915834767423, + 2: 0.5232045649263551, + }, + 0.5: { + 0: 0.5144957746691622, + 1: 0.6859943117075809, + 2: 0.5144957746691622, + }, + 0.6: { + 0: 0.5069794004195823, + 1: 0.6970966755769258, + 2: 0.5069794004195823, + }, + } + G = nx.path_graph(3) + b = nx.katz_centrality(G, alpha) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[alpha][n], abs=1e-4) + + def test_multigraph(self): + with pytest.raises(nx.NetworkXException): + nx.katz_centrality(nx.MultiGraph(), 0.1) + + def test_empty(self): + e = nx.katz_centrality(nx.Graph(), 0.1) + assert e == {} + + def test_bad_beta(self): + with pytest.raises(nx.NetworkXException): + G = nx.Graph([(0, 1)]) + beta = {0: 77} + nx.katz_centrality(G, 0.1, beta=beta) + + def test_bad_beta_number(self): + with pytest.raises(nx.NetworkXException): + G = nx.Graph([(0, 1)]) + nx.katz_centrality(G, 0.1, beta="foo") + + +class TestKatzCentralityNumpy: + @classmethod + def setup_class(cls): + global np + np = pytest.importorskip("numpy") + pytest.importorskip("scipy") + + def test_K5(self): + """Katz centrality: K5""" + G = nx.complete_graph(5) + alpha = 0.1 + b = nx.katz_centrality(G, alpha) + v = math.sqrt(1 / 5.0) + b_answer = dict.fromkeys(G, v) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + b = nx.eigenvector_centrality_numpy(G) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-3) + + def test_P3(self): + """Katz centrality: P3""" + alpha = 0.1 + G = nx.path_graph(3) + b_answer = {0: 0.5598852584152165, 1: 0.6107839182711449, 2: 0.5598852584152162} + b = nx.katz_centrality_numpy(G, alpha) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-4) + + def test_beta_as_scalar(self): + alpha = 0.1 + beta = 0.1 + b_answer = {0: 0.5598852584152165, 1: 0.6107839182711449, 2: 0.5598852584152162} + G = nx.path_graph(3) + b = nx.katz_centrality_numpy(G, alpha, beta) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-4) + + def test_beta_as_dict(self): + alpha = 0.1 + beta = {0: 1.0, 1: 1.0, 2: 1.0} + b_answer = {0: 0.5598852584152165, 1: 0.6107839182711449, 2: 0.5598852584152162} + G = nx.path_graph(3) + b = nx.katz_centrality_numpy(G, alpha, beta) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-4) + + def test_multiple_alpha(self): + alpha_list = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6] + for alpha in alpha_list: + b_answer = { + 0.1: { + 0: 0.5598852584152165, + 1: 0.6107839182711449, + 2: 0.5598852584152162, + }, + 0.2: { + 0: 0.5454545454545454, + 1: 0.6363636363636365, + 2: 0.5454545454545454, + }, + 0.3: { + 0: 0.5333964609104419, + 1: 0.6564879518897746, + 2: 0.5333964609104419, + }, + 0.4: { + 0: 0.5232045649263551, + 1: 0.6726915834767423, + 2: 0.5232045649263551, + }, + 0.5: { + 0: 0.5144957746691622, + 1: 0.6859943117075809, + 2: 0.5144957746691622, + }, + 0.6: { + 0: 0.5069794004195823, + 1: 0.6970966755769258, + 2: 0.5069794004195823, + }, + } + G = nx.path_graph(3) + b = nx.katz_centrality_numpy(G, alpha) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[alpha][n], abs=1e-4) + + def test_multigraph(self): + with pytest.raises(nx.NetworkXException): + nx.katz_centrality(nx.MultiGraph(), 0.1) + + def test_empty(self): + e = nx.katz_centrality(nx.Graph(), 0.1) + assert e == {} + + def test_bad_beta(self): + with pytest.raises(nx.NetworkXException): + G = nx.Graph([(0, 1)]) + beta = {0: 77} + nx.katz_centrality_numpy(G, 0.1, beta=beta) + + def test_bad_beta_numbe(self): + with pytest.raises(nx.NetworkXException): + G = nx.Graph([(0, 1)]) + nx.katz_centrality_numpy(G, 0.1, beta="foo") + + def test_K5_unweighted(self): + """Katz centrality: K5""" + G = nx.complete_graph(5) + alpha = 0.1 + b = nx.katz_centrality(G, alpha, weight=None) + v = math.sqrt(1 / 5.0) + b_answer = dict.fromkeys(G, v) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-7) + b = nx.eigenvector_centrality_numpy(G, weight=None) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-3) + + def test_P3_unweighted(self): + """Katz centrality: P3""" + alpha = 0.1 + G = nx.path_graph(3) + b_answer = {0: 0.5598852584152165, 1: 0.6107839182711449, 2: 0.5598852584152162} + b = nx.katz_centrality_numpy(G, alpha, weight=None) + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-4) + + +class TestKatzCentralityDirected: + @classmethod + def setup_class(cls): + G = nx.DiGraph() + edges = [ + (1, 2), + (1, 3), + (2, 4), + (3, 2), + (3, 5), + (4, 2), + (4, 5), + (4, 6), + (5, 6), + (5, 7), + (5, 8), + (6, 8), + (7, 1), + (7, 5), + (7, 8), + (8, 6), + (8, 7), + ] + G.add_edges_from(edges, weight=2.0) + cls.G = G.reverse() + cls.G.alpha = 0.1 + cls.G.evc = [ + 0.3289589783189635, + 0.2832077296243516, + 0.3425906003685471, + 0.3970420865198392, + 0.41074871061646284, + 0.272257430756461, + 0.4201989685435462, + 0.34229059218038554, + ] + + H = nx.DiGraph(edges) + cls.H = G.reverse() + cls.H.alpha = 0.1 + cls.H.evc = [ + 0.3289589783189635, + 0.2832077296243516, + 0.3425906003685471, + 0.3970420865198392, + 0.41074871061646284, + 0.272257430756461, + 0.4201989685435462, + 0.34229059218038554, + ] + + def test_katz_centrality_weighted(self): + G = self.G + alpha = self.G.alpha + p = nx.katz_centrality(G, alpha, weight="weight") + for a, b in zip(list(p.values()), self.G.evc): + assert a == pytest.approx(b, abs=1e-7) + + def test_katz_centrality_unweighted(self): + H = self.H + alpha = self.H.alpha + p = nx.katz_centrality(H, alpha, weight="weight") + for a, b in zip(list(p.values()), self.H.evc): + assert a == pytest.approx(b, abs=1e-7) + + +class TestKatzCentralityDirectedNumpy(TestKatzCentralityDirected): + @classmethod + def setup_class(cls): + global np + np = pytest.importorskip("numpy") + pytest.importorskip("scipy") + super().setup_class() + + def test_katz_centrality_weighted(self): + G = self.G + alpha = self.G.alpha + p = nx.katz_centrality_numpy(G, alpha, weight="weight") + for a, b in zip(list(p.values()), self.G.evc): + assert a == pytest.approx(b, abs=1e-7) + + def test_katz_centrality_unweighted(self): + H = self.H + alpha = self.H.alpha + p = nx.katz_centrality_numpy(H, alpha, weight="weight") + for a, b in zip(list(p.values()), self.H.evc): + assert a == pytest.approx(b, abs=1e-7) + + +class TestKatzEigenvectorVKatz: + @classmethod + def setup_class(cls): + global np + np = pytest.importorskip("numpy") + pytest.importorskip("scipy") + + def test_eigenvector_v_katz_random(self): + G = nx.gnp_random_graph(10, 0.5, seed=1234) + l = max(np.linalg.eigvals(nx.adjacency_matrix(G).todense())) + e = nx.eigenvector_centrality_numpy(G) + k = nx.katz_centrality_numpy(G, 1.0 / l) + for n in G: + assert e[n] == pytest.approx(k[n], abs=1e-7) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_laplacian_centrality.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_laplacian_centrality.py new file mode 100644 index 0000000000000000000000000000000000000000..c2a2915d8f8a1d60e73888f3825c0e8ef9044ed0 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_laplacian_centrality.py @@ -0,0 +1,220 @@ +import pytest + +import networkx as nx + +np = pytest.importorskip("numpy") +sp = pytest.importorskip("scipy") + + +def test_laplacian_centrality_null_graph(): + G = nx.Graph() + with pytest.raises(nx.NetworkXPointlessConcept): + d = nx.laplacian_centrality(G, normalized=False) + + +def test_laplacian_centrality_single_node(): + """See gh-6571""" + G = nx.empty_graph(1) + assert nx.laplacian_centrality(G, normalized=False) == {0: 0} + with pytest.raises(ZeroDivisionError): + nx.laplacian_centrality(G, normalized=True) + + +def test_laplacian_centrality_unconnected_nodes(): + """laplacian_centrality on a unconnected node graph should return 0 + + For graphs without edges, the Laplacian energy is 0 and is unchanged with + node removal, so:: + + LC(v) = LE(G) - LE(G - v) = 0 - 0 = 0 + """ + G = nx.empty_graph(3) + assert nx.laplacian_centrality(G, normalized=False) == {0: 0, 1: 0, 2: 0} + + +def test_laplacian_centrality_empty_graph(): + G = nx.empty_graph(3) + with pytest.raises(ZeroDivisionError): + d = nx.laplacian_centrality(G, normalized=True) + + +def test_laplacian_centrality_E(): + E = nx.Graph() + E.add_weighted_edges_from( + [(0, 1, 4), (4, 5, 1), (0, 2, 2), (2, 1, 1), (1, 3, 2), (1, 4, 2)] + ) + d = nx.laplacian_centrality(E) + exact = { + 0: 0.700000, + 1: 0.900000, + 2: 0.280000, + 3: 0.220000, + 4: 0.260000, + 5: 0.040000, + } + + for n, dc in d.items(): + assert exact[n] == pytest.approx(dc, abs=1e-7) + + # Check not normalized + full_energy = 200 + dnn = nx.laplacian_centrality(E, normalized=False) + for n, dc in dnn.items(): + assert exact[n] * full_energy == pytest.approx(dc, abs=1e-7) + + # Check unweighted not-normalized version + duw_nn = nx.laplacian_centrality(E, normalized=False, weight=None) + exact_uw_nn = { + 0: 18, + 1: 34, + 2: 18, + 3: 10, + 4: 16, + 5: 6, + } + for n, dc in duw_nn.items(): + assert exact_uw_nn[n] == pytest.approx(dc, abs=1e-7) + + # Check unweighted version + duw = nx.laplacian_centrality(E, weight=None) + full_energy = 42 + for n, dc in duw.items(): + assert exact_uw_nn[n] / full_energy == pytest.approx(dc, abs=1e-7) + + +def test_laplacian_centrality_KC(): + KC = nx.karate_club_graph() + d = nx.laplacian_centrality(KC) + exact = { + 0: 0.2543593, + 1: 0.1724524, + 2: 0.2166053, + 3: 0.0964646, + 4: 0.0350344, + 5: 0.0571109, + 6: 0.0540713, + 7: 0.0788674, + 8: 0.1222204, + 9: 0.0217565, + 10: 0.0308751, + 11: 0.0215965, + 12: 0.0174372, + 13: 0.118861, + 14: 0.0366341, + 15: 0.0548712, + 16: 0.0172772, + 17: 0.0191969, + 18: 0.0225564, + 19: 0.0331147, + 20: 0.0279955, + 21: 0.0246361, + 22: 0.0382339, + 23: 0.1294193, + 24: 0.0227164, + 25: 0.0644697, + 26: 0.0281555, + 27: 0.075188, + 28: 0.0364742, + 29: 0.0707087, + 30: 0.0708687, + 31: 0.131019, + 32: 0.2370821, + 33: 0.3066709, + } + for n, dc in d.items(): + assert exact[n] == pytest.approx(dc, abs=1e-7) + + # Check not normalized + full_energy = 12502 + dnn = nx.laplacian_centrality(KC, normalized=False) + for n, dc in dnn.items(): + assert exact[n] * full_energy == pytest.approx(dc, abs=1e-3) + + +def test_laplacian_centrality_K(): + K = nx.krackhardt_kite_graph() + d = nx.laplacian_centrality(K) + exact = { + 0: 0.3010753, + 1: 0.3010753, + 2: 0.2258065, + 3: 0.483871, + 4: 0.2258065, + 5: 0.3870968, + 6: 0.3870968, + 7: 0.1935484, + 8: 0.0752688, + 9: 0.0322581, + } + for n, dc in d.items(): + assert exact[n] == pytest.approx(dc, abs=1e-7) + + # Check not normalized + full_energy = 186 + dnn = nx.laplacian_centrality(K, normalized=False) + for n, dc in dnn.items(): + assert exact[n] * full_energy == pytest.approx(dc, abs=1e-3) + + +def test_laplacian_centrality_P3(): + P3 = nx.path_graph(3) + d = nx.laplacian_centrality(P3) + exact = {0: 0.6, 1: 1.0, 2: 0.6} + for n, dc in d.items(): + assert exact[n] == pytest.approx(dc, abs=1e-7) + + +def test_laplacian_centrality_K5(): + K5 = nx.complete_graph(5) + d = nx.laplacian_centrality(K5) + exact = {0: 0.52, 1: 0.52, 2: 0.52, 3: 0.52, 4: 0.52} + for n, dc in d.items(): + assert exact[n] == pytest.approx(dc, abs=1e-7) + + +def test_laplacian_centrality_FF(): + FF = nx.florentine_families_graph() + d = nx.laplacian_centrality(FF) + exact = { + "Acciaiuoli": 0.0804598, + "Medici": 0.4022989, + "Castellani": 0.1724138, + "Peruzzi": 0.183908, + "Strozzi": 0.2528736, + "Barbadori": 0.137931, + "Ridolfi": 0.2183908, + "Tornabuoni": 0.2183908, + "Albizzi": 0.1954023, + "Salviati": 0.1149425, + "Pazzi": 0.0344828, + "Bischeri": 0.1954023, + "Guadagni": 0.2298851, + "Ginori": 0.045977, + "Lamberteschi": 0.0574713, + } + for n, dc in d.items(): + assert exact[n] == pytest.approx(dc, abs=1e-7) + + +def test_laplacian_centrality_DG(): + DG = nx.DiGraph([(0, 5), (1, 5), (2, 5), (3, 5), (4, 5), (5, 6), (5, 7), (5, 8)]) + d = nx.laplacian_centrality(DG) + exact = { + 0: 0.2123352, + 5: 0.515391, + 1: 0.2123352, + 2: 0.2123352, + 3: 0.2123352, + 4: 0.2123352, + 6: 0.2952031, + 7: 0.2952031, + 8: 0.2952031, + } + for n, dc in d.items(): + assert exact[n] == pytest.approx(dc, abs=1e-7) + + # Check not normalized + full_energy = 9.50704 + dnn = nx.laplacian_centrality(DG, normalized=False) + for n, dc in dnn.items(): + assert exact[n] * full_energy == pytest.approx(dc, abs=1e-4) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_load_centrality.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_load_centrality.py new file mode 100644 index 0000000000000000000000000000000000000000..bf096039cd76542cc4c963ab896ee8fc4b295224 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_load_centrality.py @@ -0,0 +1,344 @@ +import pytest + +import networkx as nx + + +class TestLoadCentrality: + @classmethod + def setup_class(cls): + G = nx.Graph() + G.add_edge(0, 1, weight=3) + G.add_edge(0, 2, weight=2) + G.add_edge(0, 3, weight=6) + G.add_edge(0, 4, weight=4) + G.add_edge(1, 3, weight=5) + G.add_edge(1, 5, weight=5) + G.add_edge(2, 4, weight=1) + G.add_edge(3, 4, weight=2) + G.add_edge(3, 5, weight=1) + G.add_edge(4, 5, weight=4) + cls.G = G + cls.exact_weighted = {0: 4.0, 1: 0.0, 2: 8.0, 3: 6.0, 4: 8.0, 5: 0.0} + cls.K = nx.krackhardt_kite_graph() + cls.P3 = nx.path_graph(3) + cls.P4 = nx.path_graph(4) + cls.K5 = nx.complete_graph(5) + cls.P2 = nx.path_graph(2) + + cls.C4 = nx.cycle_graph(4) + cls.T = nx.balanced_tree(r=2, h=2) + cls.Gb = nx.Graph() + cls.Gb.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 3), (2, 4), (4, 5), (3, 5)]) + cls.F = nx.florentine_families_graph() + cls.LM = nx.les_miserables_graph() + cls.D = nx.cycle_graph(3, create_using=nx.DiGraph()) + cls.D.add_edges_from([(3, 0), (4, 3)]) + + def test_not_strongly_connected(self): + b = nx.load_centrality(self.D) + result = {0: 5.0 / 12, 1: 1.0 / 4, 2: 1.0 / 12, 3: 1.0 / 4, 4: 0.000} + for n in sorted(self.D): + assert result[n] == pytest.approx(b[n], abs=1e-3) + assert result[n] == pytest.approx(nx.load_centrality(self.D, n), abs=1e-3) + + def test_P2_normalized_load(self): + G = self.P2 + c = nx.load_centrality(G, normalized=True) + d = {0: 0.000, 1: 0.000} + for n in sorted(G): + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_weighted_load(self): + b = nx.load_centrality(self.G, weight="weight", normalized=False) + for n in sorted(self.G): + assert b[n] == self.exact_weighted[n] + + def test_k5_load(self): + G = self.K5 + c = nx.load_centrality(G) + d = {0: 0.000, 1: 0.000, 2: 0.000, 3: 0.000, 4: 0.000} + for n in sorted(G): + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_p3_load(self): + G = self.P3 + c = nx.load_centrality(G) + d = {0: 0.000, 1: 1.000, 2: 0.000} + for n in sorted(G): + assert c[n] == pytest.approx(d[n], abs=1e-3) + c = nx.load_centrality(G, v=1) + assert c == pytest.approx(1.0, abs=1e-7) + c = nx.load_centrality(G, v=1, normalized=True) + assert c == pytest.approx(1.0, abs=1e-7) + + def test_p2_load(self): + G = nx.path_graph(2) + c = nx.load_centrality(G) + d = {0: 0.000, 1: 0.000} + for n in sorted(G): + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_krackhardt_load(self): + G = self.K + c = nx.load_centrality(G) + d = { + 0: 0.023, + 1: 0.023, + 2: 0.000, + 3: 0.102, + 4: 0.000, + 5: 0.231, + 6: 0.231, + 7: 0.389, + 8: 0.222, + 9: 0.000, + } + for n in sorted(G): + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_florentine_families_load(self): + G = self.F + c = nx.load_centrality(G) + d = { + "Acciaiuoli": 0.000, + "Albizzi": 0.211, + "Barbadori": 0.093, + "Bischeri": 0.104, + "Castellani": 0.055, + "Ginori": 0.000, + "Guadagni": 0.251, + "Lamberteschi": 0.000, + "Medici": 0.522, + "Pazzi": 0.000, + "Peruzzi": 0.022, + "Ridolfi": 0.117, + "Salviati": 0.143, + "Strozzi": 0.106, + "Tornabuoni": 0.090, + } + for n in sorted(G): + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_les_miserables_load(self): + G = self.LM + c = nx.load_centrality(G) + d = { + "Napoleon": 0.000, + "Myriel": 0.177, + "MlleBaptistine": 0.000, + "MmeMagloire": 0.000, + "CountessDeLo": 0.000, + "Geborand": 0.000, + "Champtercier": 0.000, + "Cravatte": 0.000, + "Count": 0.000, + "OldMan": 0.000, + "Valjean": 0.567, + "Labarre": 0.000, + "Marguerite": 0.000, + "MmeDeR": 0.000, + "Isabeau": 0.000, + "Gervais": 0.000, + "Listolier": 0.000, + "Tholomyes": 0.043, + "Fameuil": 0.000, + "Blacheville": 0.000, + "Favourite": 0.000, + "Dahlia": 0.000, + "Zephine": 0.000, + "Fantine": 0.128, + "MmeThenardier": 0.029, + "Thenardier": 0.075, + "Cosette": 0.024, + "Javert": 0.054, + "Fauchelevent": 0.026, + "Bamatabois": 0.008, + "Perpetue": 0.000, + "Simplice": 0.009, + "Scaufflaire": 0.000, + "Woman1": 0.000, + "Judge": 0.000, + "Champmathieu": 0.000, + "Brevet": 0.000, + "Chenildieu": 0.000, + "Cochepaille": 0.000, + "Pontmercy": 0.007, + "Boulatruelle": 0.000, + "Eponine": 0.012, + "Anzelma": 0.000, + "Woman2": 0.000, + "MotherInnocent": 0.000, + "Gribier": 0.000, + "MmeBurgon": 0.026, + "Jondrette": 0.000, + "Gavroche": 0.164, + "Gillenormand": 0.021, + "Magnon": 0.000, + "MlleGillenormand": 0.047, + "MmePontmercy": 0.000, + "MlleVaubois": 0.000, + "LtGillenormand": 0.000, + "Marius": 0.133, + "BaronessT": 0.000, + "Mabeuf": 0.028, + "Enjolras": 0.041, + "Combeferre": 0.001, + "Prouvaire": 0.000, + "Feuilly": 0.001, + "Courfeyrac": 0.006, + "Bahorel": 0.002, + "Bossuet": 0.032, + "Joly": 0.002, + "Grantaire": 0.000, + "MotherPlutarch": 0.000, + "Gueulemer": 0.005, + "Babet": 0.005, + "Claquesous": 0.005, + "Montparnasse": 0.004, + "Toussaint": 0.000, + "Child1": 0.000, + "Child2": 0.000, + "Brujon": 0.000, + "MmeHucheloup": 0.000, + } + for n in sorted(G): + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_unnormalized_k5_load(self): + G = self.K5 + c = nx.load_centrality(G, normalized=False) + d = {0: 0.000, 1: 0.000, 2: 0.000, 3: 0.000, 4: 0.000} + for n in sorted(G): + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_unnormalized_p3_load(self): + G = self.P3 + c = nx.load_centrality(G, normalized=False) + d = {0: 0.000, 1: 2.000, 2: 0.000} + for n in sorted(G): + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_unnormalized_krackhardt_load(self): + G = self.K + c = nx.load_centrality(G, normalized=False) + d = { + 0: 1.667, + 1: 1.667, + 2: 0.000, + 3: 7.333, + 4: 0.000, + 5: 16.667, + 6: 16.667, + 7: 28.000, + 8: 16.000, + 9: 0.000, + } + + for n in sorted(G): + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_unnormalized_florentine_families_load(self): + G = self.F + c = nx.load_centrality(G, normalized=False) + + d = { + "Acciaiuoli": 0.000, + "Albizzi": 38.333, + "Barbadori": 17.000, + "Bischeri": 19.000, + "Castellani": 10.000, + "Ginori": 0.000, + "Guadagni": 45.667, + "Lamberteschi": 0.000, + "Medici": 95.000, + "Pazzi": 0.000, + "Peruzzi": 4.000, + "Ridolfi": 21.333, + "Salviati": 26.000, + "Strozzi": 19.333, + "Tornabuoni": 16.333, + } + for n in sorted(G): + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_load_betweenness_difference(self): + # Difference Between Load and Betweenness + # --------------------------------------- The smallest graph + # that shows the difference between load and betweenness is + # G=ladder_graph(3) (Graph B below) + + # Graph A and B are from Tao Zhou, Jian-Guo Liu, Bing-Hong + # Wang: Comment on "Scientific collaboration + # networks. II. Shortest paths, weighted networks, and + # centrality". https://arxiv.org/pdf/physics/0511084 + + # Notice that unlike here, their calculation adds to 1 to the + # betweenness of every node i for every path from i to every + # other node. This is exactly what it should be, based on + # Eqn. (1) in their paper: the eqn is B(v) = \sum_{s\neq t, + # s\neq v}{\frac{\sigma_{st}(v)}{\sigma_{st}}}, therefore, + # they allow v to be the target node. + + # We follow Brandes 2001, who follows Freeman 1977 that make + # the sum for betweenness of v exclude paths where v is either + # the source or target node. To agree with their numbers, we + # must additionally, remove edge (4,8) from the graph, see AC + # example following (there is a mistake in the figure in their + # paper - personal communication). + + # A = nx.Graph() + # A.add_edges_from([(0,1), (1,2), (1,3), (2,4), + # (3,5), (4,6), (4,7), (4,8), + # (5,8), (6,9), (7,9), (8,9)]) + B = nx.Graph() # ladder_graph(3) + B.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 3), (2, 4), (4, 5), (3, 5)]) + c = nx.load_centrality(B, normalized=False) + d = {0: 1.750, 1: 1.750, 2: 6.500, 3: 6.500, 4: 1.750, 5: 1.750} + for n in sorted(B): + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_c4_edge_load(self): + G = self.C4 + c = nx.edge_load_centrality(G) + d = {(0, 1): 6.000, (0, 3): 6.000, (1, 2): 6.000, (2, 3): 6.000} + for n in G.edges(): + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_p4_edge_load(self): + G = self.P4 + c = nx.edge_load_centrality(G) + d = {(0, 1): 6.000, (1, 2): 8.000, (2, 3): 6.000} + for n in G.edges(): + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_k5_edge_load(self): + G = self.K5 + c = nx.edge_load_centrality(G) + d = { + (0, 1): 5.000, + (0, 2): 5.000, + (0, 3): 5.000, + (0, 4): 5.000, + (1, 2): 5.000, + (1, 3): 5.000, + (1, 4): 5.000, + (2, 3): 5.000, + (2, 4): 5.000, + (3, 4): 5.000, + } + for n in G.edges(): + assert c[n] == pytest.approx(d[n], abs=1e-3) + + def test_tree_edge_load(self): + G = self.T + c = nx.edge_load_centrality(G) + d = { + (0, 1): 24.000, + (0, 2): 24.000, + (1, 3): 12.000, + (1, 4): 12.000, + (2, 5): 12.000, + (2, 6): 12.000, + } + for n in G.edges(): + assert c[n] == pytest.approx(d[n], abs=1e-3) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_percolation_centrality.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_percolation_centrality.py new file mode 100644 index 0000000000000000000000000000000000000000..0cb8f52965c975013d41be7c3de874cd86ee693a --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_percolation_centrality.py @@ -0,0 +1,87 @@ +import pytest + +import networkx as nx + + +def example1a_G(): + G = nx.Graph() + G.add_node(1, percolation=0.1) + G.add_node(2, percolation=0.2) + G.add_node(3, percolation=0.2) + G.add_node(4, percolation=0.2) + G.add_node(5, percolation=0.3) + G.add_node(6, percolation=0.2) + G.add_node(7, percolation=0.5) + G.add_node(8, percolation=0.5) + G.add_edges_from([(1, 4), (2, 4), (3, 4), (4, 5), (5, 6), (6, 7), (6, 8)]) + return G + + +def example1b_G(): + G = nx.Graph() + G.add_node(1, percolation=0.3) + G.add_node(2, percolation=0.5) + G.add_node(3, percolation=0.5) + G.add_node(4, percolation=0.2) + G.add_node(5, percolation=0.3) + G.add_node(6, percolation=0.2) + G.add_node(7, percolation=0.1) + G.add_node(8, percolation=0.1) + G.add_edges_from([(1, 4), (2, 4), (3, 4), (4, 5), (5, 6), (6, 7), (6, 8)]) + return G + + +def test_percolation_example1a(): + """percolation centrality: example 1a""" + G = example1a_G() + p = nx.percolation_centrality(G) + p_answer = {4: 0.625, 6: 0.667} + for n, k in p_answer.items(): + assert p[n] == pytest.approx(k, abs=1e-3) + + +def test_percolation_example1b(): + """percolation centrality: example 1a""" + G = example1b_G() + p = nx.percolation_centrality(G) + p_answer = {4: 0.825, 6: 0.4} + for n, k in p_answer.items(): + assert p[n] == pytest.approx(k, abs=1e-3) + + +def test_converge_to_betweenness(): + """percolation centrality: should converge to betweenness + centrality when all nodes are percolated the same""" + # taken from betweenness test test_florentine_families_graph + G = nx.florentine_families_graph() + b_answer = { + "Acciaiuoli": 0.000, + "Albizzi": 0.212, + "Barbadori": 0.093, + "Bischeri": 0.104, + "Castellani": 0.055, + "Ginori": 0.000, + "Guadagni": 0.255, + "Lamberteschi": 0.000, + "Medici": 0.522, + "Pazzi": 0.000, + "Peruzzi": 0.022, + "Ridolfi": 0.114, + "Salviati": 0.143, + "Strozzi": 0.103, + "Tornabuoni": 0.092, + } + + # If no initial state is provided, state for + # every node defaults to 1 + p_answer = nx.percolation_centrality(G) + assert p_answer == pytest.approx(b_answer, abs=1e-3) + + p_states = {k: 0.3 for k, v in b_answer.items()} + p_answer = nx.percolation_centrality(G, states=p_states) + assert p_answer == pytest.approx(b_answer, abs=1e-3) + + +def test_default_percolation(): + G = nx.erdos_renyi_graph(42, 0.42, seed=42) + assert nx.percolation_centrality(G) == pytest.approx(nx.betweenness_centrality(G)) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_reaching.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_reaching.py new file mode 100644 index 0000000000000000000000000000000000000000..35d50e701216bc6c003517ca3ed92cddc261c286 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_reaching.py @@ -0,0 +1,140 @@ +"""Unit tests for the :mod:`networkx.algorithms.centrality.reaching` module.""" + +import pytest + +import networkx as nx + + +class TestGlobalReachingCentrality: + """Unit tests for the global reaching centrality function.""" + + def test_non_positive_weights(self): + with pytest.raises(nx.NetworkXError): + G = nx.DiGraph() + nx.global_reaching_centrality(G, weight="weight") + + def test_negatively_weighted(self): + with pytest.raises(nx.NetworkXError): + G = nx.Graph() + G.add_weighted_edges_from([(0, 1, -2), (1, 2, +1)]) + nx.global_reaching_centrality(G, weight="weight") + + def test_directed_star(self): + G = nx.DiGraph() + G.add_weighted_edges_from([(1, 2, 0.5), (1, 3, 0.5)]) + grc = nx.global_reaching_centrality + assert grc(G, normalized=False, weight="weight") == 0.5 + assert grc(G) == 1 + + def test_undirected_unweighted_star(self): + G = nx.star_graph(2) + grc = nx.global_reaching_centrality + assert grc(G, normalized=False, weight=None) == 0.25 + + def test_undirected_weighted_star(self): + G = nx.Graph() + G.add_weighted_edges_from([(1, 2, 1), (1, 3, 2)]) + grc = nx.global_reaching_centrality + assert grc(G, normalized=False, weight="weight") == 0.375 + + def test_cycle_directed_unweighted(self): + G = nx.DiGraph() + G.add_edge(1, 2) + G.add_edge(2, 1) + assert nx.global_reaching_centrality(G, weight=None) == 0 + + def test_cycle_undirected_unweighted(self): + G = nx.Graph() + G.add_edge(1, 2) + assert nx.global_reaching_centrality(G, weight=None) == 0 + + def test_cycle_directed_weighted(self): + G = nx.DiGraph() + G.add_weighted_edges_from([(1, 2, 1), (2, 1, 1)]) + assert nx.global_reaching_centrality(G) == 0 + + def test_cycle_undirected_weighted(self): + G = nx.Graph() + G.add_edge(1, 2, weight=1) + grc = nx.global_reaching_centrality + assert grc(G, normalized=False) == 0 + + def test_directed_weighted(self): + G = nx.DiGraph() + G.add_edge("A", "B", weight=5) + G.add_edge("B", "C", weight=1) + G.add_edge("B", "D", weight=0.25) + G.add_edge("D", "E", weight=1) + + denom = len(G) - 1 + A_local = sum([5, 3, 2.625, 2.0833333333333]) / denom + B_local = sum([1, 0.25, 0.625]) / denom + C_local = 0 + D_local = sum([1]) / denom + E_local = 0 + + local_reach_ctrs = [A_local, C_local, B_local, D_local, E_local] + max_local = max(local_reach_ctrs) + expected = sum(max_local - lrc for lrc in local_reach_ctrs) / denom + grc = nx.global_reaching_centrality + actual = grc(G, normalized=False, weight="weight") + assert expected == pytest.approx(actual, abs=1e-7) + + def test_single_node_with_cycle(self): + G = nx.DiGraph([(1, 1)]) + with pytest.raises(nx.NetworkXError, match="local_reaching_centrality"): + nx.global_reaching_centrality(G) + + def test_single_node_with_weighted_cycle(self): + G = nx.DiGraph() + G.add_weighted_edges_from([(1, 1, 2)]) + with pytest.raises(nx.NetworkXError, match="local_reaching_centrality"): + nx.global_reaching_centrality(G, weight="weight") + + +class TestLocalReachingCentrality: + """Unit tests for the local reaching centrality function.""" + + def test_non_positive_weights(self): + with pytest.raises(nx.NetworkXError): + G = nx.DiGraph() + G.add_weighted_edges_from([(0, 1, 0)]) + nx.local_reaching_centrality(G, 0, weight="weight") + + def test_negatively_weighted(self): + with pytest.raises(nx.NetworkXError): + G = nx.Graph() + G.add_weighted_edges_from([(0, 1, -2), (1, 2, +1)]) + nx.local_reaching_centrality(G, 0, weight="weight") + + def test_undirected_unweighted_star(self): + G = nx.star_graph(2) + grc = nx.local_reaching_centrality + assert grc(G, 1, weight=None, normalized=False) == 0.75 + + def test_undirected_weighted_star(self): + G = nx.Graph() + G.add_weighted_edges_from([(1, 2, 1), (1, 3, 2)]) + centrality = nx.local_reaching_centrality( + G, 1, normalized=False, weight="weight" + ) + assert centrality == 1.5 + + def test_undirected_weighted_normalized(self): + G = nx.Graph() + G.add_weighted_edges_from([(1, 2, 1), (1, 3, 2)]) + centrality = nx.local_reaching_centrality( + G, 1, normalized=True, weight="weight" + ) + assert centrality == 1.0 + + def test_single_node_with_cycle(self): + G = nx.DiGraph([(1, 1)]) + with pytest.raises(nx.NetworkXError, match="local_reaching_centrality"): + nx.local_reaching_centrality(G, 1) + + def test_single_node_with_weighted_cycle(self): + G = nx.DiGraph() + G.add_weighted_edges_from([(1, 1, 2)]) + with pytest.raises(nx.NetworkXError, match="local_reaching_centrality"): + nx.local_reaching_centrality(G, 1, weight="weight") diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_second_order_centrality.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_second_order_centrality.py new file mode 100644 index 0000000000000000000000000000000000000000..cc3047866079fd9fe4cf43a6793cf160a0c0cdce --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_second_order_centrality.py @@ -0,0 +1,82 @@ +""" +Tests for second order centrality. +""" + +import pytest + +pytest.importorskip("numpy") +pytest.importorskip("scipy") + +import networkx as nx + + +def test_empty(): + with pytest.raises(nx.NetworkXException): + G = nx.empty_graph() + nx.second_order_centrality(G) + + +def test_non_connected(): + with pytest.raises(nx.NetworkXException): + G = nx.Graph() + G.add_node(0) + G.add_node(1) + nx.second_order_centrality(G) + + +def test_non_negative_edge_weights(): + with pytest.raises(nx.NetworkXException): + G = nx.path_graph(2) + G.add_edge(0, 1, weight=-1) + nx.second_order_centrality(G) + + +def test_weight_attribute(): + G = nx.Graph() + G.add_weighted_edges_from([(0, 1, 1.0), (1, 2, 3.5)], weight="w") + expected = {0: 3.431, 1: 3.082, 2: 5.612} + b = nx.second_order_centrality(G, weight="w") + + for n in sorted(G): + assert b[n] == pytest.approx(expected[n], abs=1e-2) + + +def test_one_node_graph(): + """Second order centrality: single node""" + G = nx.Graph() + G.add_node(0) + G.add_edge(0, 0) + assert nx.second_order_centrality(G)[0] == 0 + + +def test_P3(): + """Second order centrality: line graph, as defined in paper""" + G = nx.path_graph(3) + b_answer = {0: 3.741, 1: 1.414, 2: 3.741} + + b = nx.second_order_centrality(G) + + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-2) + + +def test_K3(): + """Second order centrality: complete graph, as defined in paper""" + G = nx.complete_graph(3) + b_answer = {0: 1.414, 1: 1.414, 2: 1.414} + + b = nx.second_order_centrality(G) + + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-2) + + +def test_ring_graph(): + """Second order centrality: ring graph, as defined in paper""" + G = nx.cycle_graph(5) + b_answer = {0: 4.472, 1: 4.472, 2: 4.472, 3: 4.472, 4: 4.472} + + b = nx.second_order_centrality(G) + + for n in sorted(G): + assert b[n] == pytest.approx(b_answer[n], abs=1e-2) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_subgraph.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_subgraph.py new file mode 100644 index 0000000000000000000000000000000000000000..710927515baa4786e4be15ddf25ad34e423563d2 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_subgraph.py @@ -0,0 +1,110 @@ +import pytest + +pytest.importorskip("numpy") +pytest.importorskip("scipy") + +import networkx as nx +from networkx.algorithms.centrality.subgraph_alg import ( + communicability_betweenness_centrality, + estrada_index, + subgraph_centrality, + subgraph_centrality_exp, +) + + +class TestSubgraph: + def test_subgraph_centrality(self): + answer = {0: 1.5430806348152433, 1: 1.5430806348152433} + result = subgraph_centrality(nx.path_graph(2)) + for k, v in result.items(): + assert answer[k] == pytest.approx(v, abs=1e-7) + + answer1 = { + "1": 1.6445956054135658, + "Albert": 2.4368257358712189, + "Aric": 2.4368257358712193, + "Dan": 3.1306328496328168, + "Franck": 2.3876142275231915, + } + G1 = nx.Graph( + [ + ("Franck", "Aric"), + ("Aric", "Dan"), + ("Dan", "Albert"), + ("Albert", "Franck"), + ("Dan", "1"), + ("Franck", "Albert"), + ] + ) + result1 = subgraph_centrality(G1) + for k, v in result1.items(): + assert answer1[k] == pytest.approx(v, abs=1e-7) + result1 = subgraph_centrality_exp(G1) + for k, v in result1.items(): + assert answer1[k] == pytest.approx(v, abs=1e-7) + + def test_subgraph_centrality_big_graph(self): + g199 = nx.complete_graph(199) + g200 = nx.complete_graph(200) + + comm199 = nx.subgraph_centrality(g199) + comm199_exp = nx.subgraph_centrality_exp(g199) + + comm200 = nx.subgraph_centrality(g200) + comm200_exp = nx.subgraph_centrality_exp(g200) + + def test_communicability_betweenness_centrality_small(self): + result = communicability_betweenness_centrality(nx.path_graph(2)) + assert result == {0: 0, 1: 0} + + result = communicability_betweenness_centrality(nx.path_graph(1)) + assert result == {0: 0} + + result = communicability_betweenness_centrality(nx.path_graph(0)) + assert result == {} + + answer = {0: 0.1411224421177313, 1: 1.0, 2: 0.1411224421177313} + result = communicability_betweenness_centrality(nx.path_graph(3)) + for k, v in result.items(): + assert answer[k] == pytest.approx(v, abs=1e-7) + + result = communicability_betweenness_centrality(nx.complete_graph(3)) + for k, v in result.items(): + assert 0.49786143366223296 == pytest.approx(v, abs=1e-7) + + def test_communicability_betweenness_centrality(self): + answer = { + 0: 0.07017447951484615, + 1: 0.71565598701107991, + 2: 0.71565598701107991, + 3: 0.07017447951484615, + } + result = communicability_betweenness_centrality(nx.path_graph(4)) + for k, v in result.items(): + assert answer[k] == pytest.approx(v, abs=1e-7) + + answer1 = { + "1": 0.060039074193949521, + "Albert": 0.315470761661372, + "Aric": 0.31547076166137211, + "Dan": 0.68297778678316201, + "Franck": 0.21977926617449497, + } + G1 = nx.Graph( + [ + ("Franck", "Aric"), + ("Aric", "Dan"), + ("Dan", "Albert"), + ("Albert", "Franck"), + ("Dan", "1"), + ("Franck", "Albert"), + ] + ) + result1 = communicability_betweenness_centrality(G1) + for k, v in result1.items(): + assert answer1[k] == pytest.approx(v, abs=1e-7) + + def test_estrada_index(self): + answer = 1041.2470334195475 + result = estrada_index(nx.karate_club_graph()) + assert answer == pytest.approx(result, abs=1e-7) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_trophic.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_trophic.py new file mode 100644 index 0000000000000000000000000000000000000000..8f7d74ddd86aeb127d8dcbc6250ec080affb0860 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_trophic.py @@ -0,0 +1,302 @@ +"""Test trophic levels, trophic differences and trophic coherence""" + +import pytest + +import networkx as nx + +np = pytest.importorskip("numpy") +pytest.importorskip("scipy") + + +def test_trophic_levels(): + """Trivial example""" + G = nx.DiGraph() + G.add_edge("a", "b") + G.add_edge("b", "c") + + d = nx.trophic_levels(G) + assert d == {"a": 1, "b": 2, "c": 3} + + +def test_trophic_levels_levine(): + """Example from Figure 5 in Stephen Levine (1980) J. theor. Biol. 83, + 195-207 + """ + S = nx.DiGraph() + S.add_edge(1, 2, weight=1.0) + S.add_edge(1, 3, weight=0.2) + S.add_edge(1, 4, weight=0.8) + S.add_edge(2, 3, weight=0.2) + S.add_edge(2, 5, weight=0.3) + S.add_edge(4, 3, weight=0.6) + S.add_edge(4, 5, weight=0.7) + S.add_edge(5, 4, weight=0.2) + + # save copy for later, test intermediate implementation details first + S2 = S.copy() + + # drop nodes of in-degree zero + z = [nid for nid, d in S.in_degree if d == 0] + for nid in z: + S.remove_node(nid) + + # find adjacency matrix + q = nx.linalg.graphmatrix.adjacency_matrix(S).T + + # fmt: off + expected_q = np.array([ + [0, 0, 0., 0], + [0.2, 0, 0.6, 0], + [0, 0, 0, 0.2], + [0.3, 0, 0.7, 0] + ]) + # fmt: on + assert np.array_equal(q.todense(), expected_q) + + # must be square, size of number of nodes + assert len(q.shape) == 2 + assert q.shape[0] == q.shape[1] + assert q.shape[0] == len(S) + + nn = q.shape[0] + + i = np.eye(nn) + n = np.linalg.inv(i - q) + y = np.asarray(n) @ np.ones(nn) + + expected_y = np.array([1, 2.07906977, 1.46511628, 2.3255814]) + assert np.allclose(y, expected_y) + + expected_d = {1: 1, 2: 2, 3: 3.07906977, 4: 2.46511628, 5: 3.3255814} + + d = nx.trophic_levels(S2) + + for nid, level in d.items(): + expected_level = expected_d[nid] + assert expected_level == pytest.approx(level, abs=1e-7) + + +def test_trophic_levels_simple(): + matrix_a = np.array([[0, 0], [1, 0]]) + G = nx.from_numpy_array(matrix_a, create_using=nx.DiGraph) + d = nx.trophic_levels(G) + assert d[0] == pytest.approx(2, abs=1e-7) + assert d[1] == pytest.approx(1, abs=1e-7) + + +def test_trophic_levels_more_complex(): + # fmt: off + matrix = np.array([ + [0, 1, 0, 0], + [0, 0, 1, 0], + [0, 0, 0, 1], + [0, 0, 0, 0] + ]) + # fmt: on + G = nx.from_numpy_array(matrix, create_using=nx.DiGraph) + d = nx.trophic_levels(G) + expected_result = [1, 2, 3, 4] + for ind in range(4): + assert d[ind] == pytest.approx(expected_result[ind], abs=1e-7) + + # fmt: off + matrix = np.array([ + [0, 1, 1, 0], + [0, 0, 1, 1], + [0, 0, 0, 1], + [0, 0, 0, 0] + ]) + # fmt: on + G = nx.from_numpy_array(matrix, create_using=nx.DiGraph) + d = nx.trophic_levels(G) + + expected_result = [1, 2, 2.5, 3.25] + for ind in range(4): + assert d[ind] == pytest.approx(expected_result[ind], abs=1e-7) + + +def test_trophic_levels_even_more_complex(): + # fmt: off + # Another, bigger matrix + matrix = np.array([ + [0, 0, 0, 0, 0], + [0, 1, 0, 1, 0], + [1, 0, 0, 0, 0], + [0, 1, 0, 0, 0], + [0, 0, 0, 1, 0] + ]) + # Generated this linear system using pen and paper: + K = np.array([ + [1, 0, -1, 0, 0], + [0, 0.5, 0, -0.5, 0], + [0, 0, 1, 0, 0], + [0, -0.5, 0, 1, -0.5], + [0, 0, 0, 0, 1], + ]) + # fmt: on + result_1 = np.ravel(np.linalg.inv(K) @ np.ones(5)) + G = nx.from_numpy_array(matrix, create_using=nx.DiGraph) + result_2 = nx.trophic_levels(G) + + for ind in range(5): + assert result_1[ind] == pytest.approx(result_2[ind], abs=1e-7) + + +def test_trophic_levels_singular_matrix(): + """Should raise an error with graphs with only non-basal nodes""" + matrix = np.identity(4) + G = nx.from_numpy_array(matrix, create_using=nx.DiGraph) + with pytest.raises(nx.NetworkXError, match="no basal nodes"): + nx.trophic_levels(G) + + +def test_trophic_levels_singular_with_basal(): + """Should fail to compute if there are any parts of the graph which are not + reachable from any basal node (with in-degree zero). + """ + G = nx.DiGraph() + # a has in-degree zero + G.add_edge("a", "b") + + # b is one level above a, c and d + G.add_edge("c", "b") + G.add_edge("d", "b") + + # c and d form a loop, neither are reachable from a + G.add_edge("c", "d") + G.add_edge("d", "c") + + with pytest.raises(nx.NetworkXError) as e: + nx.trophic_levels(G) + msg = ( + "Trophic levels are only defined for graphs where every node " + + "has a path from a basal node (basal nodes are nodes with no " + + "incoming edges)." + ) + assert msg in str(e.value) + + # if self-loops are allowed, smaller example: + G = nx.DiGraph() + G.add_edge("a", "b") # a has in-degree zero + G.add_edge("c", "b") # b is one level above a and c + G.add_edge("c", "c") # c has a self-loop + with pytest.raises(nx.NetworkXError) as e: + nx.trophic_levels(G) + msg = ( + "Trophic levels are only defined for graphs where every node " + + "has a path from a basal node (basal nodes are nodes with no " + + "incoming edges)." + ) + assert msg in str(e.value) + + +def test_trophic_differences(): + matrix_a = np.array([[0, 1], [0, 0]]) + G = nx.from_numpy_array(matrix_a, create_using=nx.DiGraph) + diffs = nx.trophic_differences(G) + assert diffs[(0, 1)] == pytest.approx(1, abs=1e-7) + + # fmt: off + matrix_b = np.array([ + [0, 1, 1, 0], + [0, 0, 1, 1], + [0, 0, 0, 1], + [0, 0, 0, 0] + ]) + # fmt: on + G = nx.from_numpy_array(matrix_b, create_using=nx.DiGraph) + diffs = nx.trophic_differences(G) + + assert diffs[(0, 1)] == pytest.approx(1, abs=1e-7) + assert diffs[(0, 2)] == pytest.approx(1.5, abs=1e-7) + assert diffs[(1, 2)] == pytest.approx(0.5, abs=1e-7) + assert diffs[(1, 3)] == pytest.approx(1.25, abs=1e-7) + assert diffs[(2, 3)] == pytest.approx(0.75, abs=1e-7) + + +def test_trophic_incoherence_parameter_no_cannibalism(): + matrix_a = np.array([[0, 1], [0, 0]]) + G = nx.from_numpy_array(matrix_a, create_using=nx.DiGraph) + q = nx.trophic_incoherence_parameter(G, cannibalism=False) + assert q == pytest.approx(0, abs=1e-7) + + # fmt: off + matrix_b = np.array([ + [0, 1, 1, 0], + [0, 0, 1, 1], + [0, 0, 0, 1], + [0, 0, 0, 0] + ]) + # fmt: on + G = nx.from_numpy_array(matrix_b, create_using=nx.DiGraph) + q = nx.trophic_incoherence_parameter(G, cannibalism=False) + assert q == pytest.approx(np.std([1, 1.5, 0.5, 0.75, 1.25]), abs=1e-7) + + # fmt: off + matrix_c = np.array([ + [0, 1, 1, 0], + [0, 1, 1, 1], + [0, 0, 0, 1], + [0, 0, 0, 1] + ]) + # fmt: on + G = nx.from_numpy_array(matrix_c, create_using=nx.DiGraph) + q = nx.trophic_incoherence_parameter(G, cannibalism=False) + # Ignore the -link + assert q == pytest.approx(np.std([1, 1.5, 0.5, 0.75, 1.25]), abs=1e-7) + + # no self-loops case + # fmt: off + matrix_d = np.array([ + [0, 1, 1, 0], + [0, 0, 1, 1], + [0, 0, 0, 1], + [0, 0, 0, 0] + ]) + # fmt: on + G = nx.from_numpy_array(matrix_d, create_using=nx.DiGraph) + q = nx.trophic_incoherence_parameter(G, cannibalism=False) + # Ignore the -link + assert q == pytest.approx(np.std([1, 1.5, 0.5, 0.75, 1.25]), abs=1e-7) + + +def test_trophic_incoherence_parameter_cannibalism(): + matrix_a = np.array([[0, 1], [0, 0]]) + G = nx.from_numpy_array(matrix_a, create_using=nx.DiGraph) + q = nx.trophic_incoherence_parameter(G, cannibalism=True) + assert q == pytest.approx(0, abs=1e-7) + + # fmt: off + matrix_b = np.array([ + [0, 0, 0, 0, 0], + [0, 1, 0, 1, 0], + [1, 0, 0, 0, 0], + [0, 1, 0, 0, 0], + [0, 0, 0, 1, 0] + ]) + # fmt: on + G = nx.from_numpy_array(matrix_b, create_using=nx.DiGraph) + q = nx.trophic_incoherence_parameter(G, cannibalism=True) + assert q == pytest.approx(2, abs=1e-7) + + # fmt: off + matrix_c = np.array([ + [0, 1, 1, 0], + [0, 0, 1, 1], + [0, 0, 0, 1], + [0, 0, 0, 0] + ]) + # fmt: on + G = nx.from_numpy_array(matrix_c, create_using=nx.DiGraph) + q = nx.trophic_incoherence_parameter(G, cannibalism=True) + # Ignore the -link + assert q == pytest.approx(np.std([1, 1.5, 0.5, 0.75, 1.25]), abs=1e-7) + + +def test_no_basal_node(): + G = nx.DiGraph([(1, 2), (2, 3), (3, 1)]) # No basal node, should raise an error + with pytest.raises(nx.NetworkXError, match="no basal node"): + nx.trophic_levels(G) + G.add_node(4) # add basal node, but not connected + with pytest.raises(nx.NetworkXError, match="every node .* path from a basal node"): + nx.trophic_levels(G) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_voterank.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_voterank.py new file mode 100644 index 0000000000000000000000000000000000000000..a5cfb6107a64f1c1e0923297a81c7df7172d5afe --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/tests/test_voterank.py @@ -0,0 +1,64 @@ +""" +Unit tests for VoteRank. +""" + +import networkx as nx + + +class TestVoteRankCentrality: + # Example Graph present in reference paper + def test_voterank_centrality_1(self): + G = nx.Graph() + G.add_edges_from( + [ + (7, 8), + (7, 5), + (7, 9), + (5, 0), + (0, 1), + (0, 2), + (0, 3), + (0, 4), + (1, 6), + (2, 6), + (3, 6), + (4, 6), + ] + ) + assert [0, 7, 6] == nx.voterank(G) + + def test_voterank_emptygraph(self): + G = nx.Graph() + assert [] == nx.voterank(G) + + # Graph unit test + def test_voterank_centrality_2(self): + G = nx.florentine_families_graph() + d = nx.voterank(G, 4) + exact = ["Medici", "Strozzi", "Guadagni", "Castellani"] + assert exact == d + + # DiGraph unit test + def test_voterank_centrality_3(self): + G = nx.gnc_graph(10, seed=7) + d = nx.voterank(G, 4) + exact = [3, 6, 8] + assert exact == d + + # MultiGraph unit test + def test_voterank_centrality_4(self): + G = nx.MultiGraph() + G.add_edges_from( + [(0, 1), (0, 1), (1, 2), (2, 5), (2, 5), (5, 6), (5, 6), (2, 4), (4, 3)] + ) + exact = [2, 1, 5, 4] + assert exact == nx.voterank(G) + + # MultiDiGraph unit test + def test_voterank_centrality_5(self): + G = nx.MultiDiGraph() + G.add_edges_from( + [(0, 1), (0, 1), (1, 2), (2, 5), (2, 5), (5, 6), (5, 6), (2, 4), (4, 3)] + ) + exact = [2, 0, 5, 4] + assert exact == nx.voterank(G) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/trophic.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/trophic.py new file mode 100644 index 0000000000000000000000000000000000000000..608c110603d12f79edf67a5e9c103a988b0a859e --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/trophic.py @@ -0,0 +1,181 @@ +"""Trophic levels""" + +import networkx as nx +from networkx.utils import not_implemented_for + +__all__ = ["trophic_levels", "trophic_differences", "trophic_incoherence_parameter"] + + +@not_implemented_for("undirected") +@nx._dispatchable(edge_attrs="weight") +def trophic_levels(G, weight="weight"): + r"""Compute the trophic levels of nodes. + + The trophic level of a node $i$ is + + .. math:: + + s_i = 1 + \frac{1}{k^{in}_i} \sum_{j} a_{ij} s_j + + where $k^{in}_i$ is the in-degree of i + + .. math:: + + k^{in}_i = \sum_{j} a_{ij} + + and nodes with $k^{in}_i = 0$ have $s_i = 1$ by convention. + + These are calculated using the method outlined in Levine [1]_. + + Parameters + ---------- + G : DiGraph + A directed networkx graph + + Returns + ------- + nodes : dict + Dictionary of nodes with trophic level as the value. + + References + ---------- + .. [1] Stephen Levine (1980) J. theor. Biol. 83, 195-207 + """ + + basal_nodes = [n for n, deg in G.in_degree if deg == 0] + if not basal_nodes: + raise nx.NetworkXError( + "This graph has no basal nodes (nodes with no incoming edges)." + "Trophic levels are not defined without at least one basal node." + ) + + reachable_nodes = { + node for layer in nx.bfs_layers(G, sources=basal_nodes) for node in layer + } + + if len(reachable_nodes) != len(G.nodes): + raise nx.NetworkXError( + "Trophic levels are only defined for graphs where every node has a path " + "from a basal node (basal nodes are nodes with no incoming edges)." + ) + + import numpy as np + + # find adjacency matrix + a = nx.adjacency_matrix(G, weight=weight).T.toarray() + + # drop rows/columns where in-degree is zero + rowsum = np.sum(a, axis=1) + p = a[rowsum != 0][:, rowsum != 0] + # normalise so sum of in-degree weights is 1 along each row + p = p / rowsum[rowsum != 0][:, np.newaxis] + + # calculate trophic levels + nn = p.shape[0] + i = np.eye(nn) + try: + n = np.linalg.inv(i - p) + except np.linalg.LinAlgError as err: + # LinAlgError is raised when there is a non-basal node + msg = ( + "Trophic levels are only defined for graphs where every " + + "node has a path from a basal node (basal nodes are nodes " + + "with no incoming edges)." + ) + raise nx.NetworkXError(msg) from err + y = n.sum(axis=1) + 1 + + levels = {} + + # all nodes with in-degree zero have trophic level == 1 + zero_node_ids = (node_id for node_id, degree in G.in_degree if degree == 0) + for node_id in zero_node_ids: + levels[node_id] = 1 + + # all other nodes have levels as calculated + nonzero_node_ids = (node_id for node_id, degree in G.in_degree if degree != 0) + for i, node_id in enumerate(nonzero_node_ids): + levels[node_id] = y.item(i) + + return levels + + +@not_implemented_for("undirected") +@nx._dispatchable(edge_attrs="weight") +def trophic_differences(G, weight="weight"): + r"""Compute the trophic differences of the edges of a directed graph. + + The trophic difference $x_ij$ for each edge is defined in Johnson et al. + [1]_ as: + + .. math:: + x_ij = s_j - s_i + + Where $s_i$ is the trophic level of node $i$. + + Parameters + ---------- + G : DiGraph + A directed networkx graph + + Returns + ------- + diffs : dict + Dictionary of edges with trophic differences as the value. + + References + ---------- + .. [1] Samuel Johnson, Virginia Dominguez-Garcia, Luca Donetti, Miguel A. + Munoz (2014) PNAS "Trophic coherence determines food-web stability" + """ + levels = trophic_levels(G, weight=weight) + diffs = {} + for u, v in G.edges: + diffs[(u, v)] = levels[v] - levels[u] + return diffs + + +@not_implemented_for("undirected") +@nx._dispatchable(edge_attrs="weight") +def trophic_incoherence_parameter(G, weight="weight", cannibalism=False): + r"""Compute the trophic incoherence parameter of a graph. + + Trophic coherence is defined as the homogeneity of the distribution of + trophic distances: the more similar, the more coherent. This is measured by + the standard deviation of the trophic differences and referred to as the + trophic incoherence parameter $q$ by [1]. + + Parameters + ---------- + G : DiGraph + A directed networkx graph + + cannibalism: Boolean + If set to False, self edges are not considered in the calculation + + Returns + ------- + trophic_incoherence_parameter : float + The trophic coherence of a graph + + References + ---------- + .. [1] Samuel Johnson, Virginia Dominguez-Garcia, Luca Donetti, Miguel A. + Munoz (2014) PNAS "Trophic coherence determines food-web stability" + """ + import numpy as np + + if cannibalism: + diffs = trophic_differences(G, weight=weight) + else: + # If no cannibalism, remove self-edges + self_loops = list(nx.selfloop_edges(G)) + if self_loops: + # Make a copy so we do not change G's edges in memory + G_2 = G.copy() + G_2.remove_edges_from(self_loops) + else: + # Avoid copy otherwise + G_2 = G + diffs = trophic_differences(G_2, weight=weight) + return float(np.std(list(diffs.values()))) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/voterank_alg.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/voterank_alg.py new file mode 100644 index 0000000000000000000000000000000000000000..9b510b2886a5e2eca1eb3396f55f67abc4ce9f30 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/centrality/voterank_alg.py @@ -0,0 +1,95 @@ +"""Algorithm to select influential nodes in a graph using VoteRank.""" + +import networkx as nx + +__all__ = ["voterank"] + + +@nx._dispatchable +def voterank(G, number_of_nodes=None): + """Select a list of influential nodes in a graph using VoteRank algorithm + + VoteRank [1]_ computes a ranking of the nodes in a graph G based on a + voting scheme. With VoteRank, all nodes vote for each of its in-neighbors + and the node with the highest votes is elected iteratively. The voting + ability of out-neighbors of elected nodes is decreased in subsequent turns. + + Parameters + ---------- + G : graph + A NetworkX graph. + + number_of_nodes : integer, optional + Number of ranked nodes to extract (default all nodes). + + Returns + ------- + voterank : list + Ordered list of computed seeds. + Only nodes with positive number of votes are returned. + + Examples + -------- + >>> G = nx.Graph([(0, 1), (0, 2), (0, 3), (1, 4)]) + >>> nx.voterank(G) + [0, 1] + + The algorithm can be used both for undirected and directed graphs. + However, the directed version is different in two ways: + (i) nodes only vote for their in-neighbors and + (ii) only the voting ability of elected node and its out-neighbors are updated: + + >>> G = nx.DiGraph([(0, 1), (2, 1), (2, 3), (3, 4)]) + >>> nx.voterank(G) + [2, 3] + + Notes + ----- + Each edge is treated independently in case of multigraphs. + + References + ---------- + .. [1] Zhang, J.-X. et al. (2016). + Identifying a set of influential spreaders in complex networks. + Sci. Rep. 6, 27823; doi: 10.1038/srep27823. + """ + influential_nodes = [] + vote_rank = {} + if len(G) == 0: + return influential_nodes + if number_of_nodes is None or number_of_nodes > len(G): + number_of_nodes = len(G) + if G.is_directed(): + # For directed graphs compute average out-degree + avgDegree = sum(deg for _, deg in G.out_degree()) / len(G) + else: + # For undirected graphs compute average degree + avgDegree = sum(deg for _, deg in G.degree()) / len(G) + # step 1 - initiate all nodes to (0,1) (score, voting ability) + for n in G.nodes(): + vote_rank[n] = [0, 1] + # Repeat steps 1b to 4 until num_seeds are elected. + for _ in range(number_of_nodes): + # step 1b - reset rank + for n in G.nodes(): + vote_rank[n][0] = 0 + # step 2 - vote + for n, nbr in G.edges(): + # In directed graphs nodes only vote for their in-neighbors + vote_rank[n][0] += vote_rank[nbr][1] + if not G.is_directed(): + vote_rank[nbr][0] += vote_rank[n][1] + for n in influential_nodes: + vote_rank[n][0] = 0 + # step 3 - select top node + n = max(G.nodes, key=lambda x: vote_rank[x][0]) + if vote_rank[n][0] == 0: + return influential_nodes + influential_nodes.append(n) + # weaken the selected node + vote_rank[n] = [0, 0] + # step 4 - update voterank properties + for _, nbr in G.edges(n): + vote_rank[nbr][1] -= 1 / avgDegree + vote_rank[nbr][1] = max(vote_rank[nbr][1], 0) + return influential_nodes diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..39381d9f163a5400f362b91a89215bfc915a8022 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/__init__.py @@ -0,0 +1,4 @@ +from networkx.algorithms.coloring.greedy_coloring import * +from networkx.algorithms.coloring.equitable_coloring import equitable_color + +__all__ = ["greedy_color", "equitable_color"] diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f98c478dfe4071d34b629178045d9815ecf68a5b Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/__pycache__/equitable_coloring.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/__pycache__/equitable_coloring.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3c4285953b9e5d4a2900b320b9816b3b5e55707c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/__pycache__/equitable_coloring.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/__pycache__/greedy_coloring.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/__pycache__/greedy_coloring.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2f5f4b75d4ae0514ffc7c6a27988f00d4ec31c2c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/__pycache__/greedy_coloring.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/equitable_coloring.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/equitable_coloring.py new file mode 100644 index 0000000000000000000000000000000000000000..e464a07447045fcdaa8e7ca4ea56552fb00e2826 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/equitable_coloring.py @@ -0,0 +1,505 @@ +""" +Equitable coloring of graphs with bounded degree. +""" + +from collections import defaultdict + +import networkx as nx + +__all__ = ["equitable_color"] + + +@nx._dispatchable +def is_coloring(G, coloring): + """Determine if the coloring is a valid coloring for the graph G.""" + # Verify that the coloring is valid. + return all(coloring[s] != coloring[d] for s, d in G.edges) + + +@nx._dispatchable +def is_equitable(G, coloring, num_colors=None): + """Determines if the coloring is valid and equitable for the graph G.""" + + if not is_coloring(G, coloring): + return False + + # Verify whether it is equitable. + color_set_size = defaultdict(int) + for color in coloring.values(): + color_set_size[color] += 1 + + if num_colors is not None: + for color in range(num_colors): + if color not in color_set_size: + # These colors do not have any vertices attached to them. + color_set_size[color] = 0 + + # If there are more than 2 distinct values, the coloring cannot be equitable + all_set_sizes = set(color_set_size.values()) + if len(all_set_sizes) == 0 and num_colors is None: # Was an empty graph + return True + elif len(all_set_sizes) == 1: + return True + elif len(all_set_sizes) == 2: + a, b = list(all_set_sizes) + return abs(a - b) <= 1 + else: # len(all_set_sizes) > 2: + return False + + +def make_C_from_F(F): + C = defaultdict(list) + for node, color in F.items(): + C[color].append(node) + + return C + + +def make_N_from_L_C(L, C): + nodes = L.keys() + colors = C.keys() + return { + (node, color): sum(1 for v in L[node] if v in C[color]) + for node in nodes + for color in colors + } + + +def make_H_from_C_N(C, N): + return { + (c1, c2): sum(1 for node in C[c1] if N[(node, c2)] == 0) for c1 in C for c2 in C + } + + +def change_color(u, X, Y, N, H, F, C, L): + """Change the color of 'u' from X to Y and update N, H, F, C.""" + assert F[u] == X and X != Y + + # Change the class of 'u' from X to Y + F[u] = Y + + for k in C: + # 'u' witnesses an edge from k -> Y instead of from k -> X now. + if N[u, k] == 0: + H[(X, k)] -= 1 + H[(Y, k)] += 1 + + for v in L[u]: + # 'v' has lost a neighbor in X and gained one in Y + N[(v, X)] -= 1 + N[(v, Y)] += 1 + + if N[(v, X)] == 0: + # 'v' witnesses F[v] -> X + H[(F[v], X)] += 1 + + if N[(v, Y)] == 1: + # 'v' no longer witnesses F[v] -> Y + H[(F[v], Y)] -= 1 + + C[X].remove(u) + C[Y].append(u) + + +def move_witnesses(src_color, dst_color, N, H, F, C, T_cal, L): + """Move witness along a path from src_color to dst_color.""" + X = src_color + while X != dst_color: + Y = T_cal[X] + # Move _any_ witness from X to Y = T_cal[X] + w = next(x for x in C[X] if N[(x, Y)] == 0) + change_color(w, X, Y, N=N, H=H, F=F, C=C, L=L) + X = Y + + +@nx._dispatchable(mutates_input=True) +def pad_graph(G, num_colors): + """Add a disconnected complete clique K_p such that the number of nodes in + the graph becomes a multiple of `num_colors`. + + Assumes that the graph's nodes are labelled using integers. + + Returns the number of nodes with each color. + """ + + n_ = len(G) + r = num_colors - 1 + + # Ensure that the number of nodes in G is a multiple of (r + 1) + s = n_ // (r + 1) + if n_ != s * (r + 1): + p = (r + 1) - n_ % (r + 1) + s += 1 + + # Complete graph K_p between (imaginary) nodes [n_, ... , n_ + p] + K = nx.relabel_nodes(nx.complete_graph(p), {idx: idx + n_ for idx in range(p)}) + G.add_edges_from(K.edges) + + return s + + +def procedure_P(V_minus, V_plus, N, H, F, C, L, excluded_colors=None): + """Procedure P as described in the paper.""" + + if excluded_colors is None: + excluded_colors = set() + + A_cal = set() + T_cal = {} + R_cal = [] + + # BFS to determine A_cal, i.e. colors reachable from V- + reachable = [V_minus] + marked = set(reachable) + idx = 0 + + while idx < len(reachable): + pop = reachable[idx] + idx += 1 + + A_cal.add(pop) + R_cal.append(pop) + + # TODO: Checking whether a color has been visited can be made faster by + # using a look-up table instead of testing for membership in a set by a + # logarithmic factor. + next_layer = [] + for k in C: + if ( + H[(k, pop)] > 0 + and k not in A_cal + and k not in excluded_colors + and k not in marked + ): + next_layer.append(k) + + for dst in next_layer: + # Record that `dst` can reach `pop` + T_cal[dst] = pop + + marked.update(next_layer) + reachable.extend(next_layer) + + # Variables for the algorithm + b = len(C) - len(A_cal) + + if V_plus in A_cal: + # Easy case: V+ is in A_cal + # Move one node from V+ to V- using T_cal to find the parents. + move_witnesses(V_plus, V_minus, N=N, H=H, F=F, C=C, T_cal=T_cal, L=L) + else: + # If there is a solo edge, we can resolve the situation by + # moving witnesses from B to A, making G[A] equitable and then + # recursively balancing G[B - w] with a different V_minus and + # but the same V_plus. + + A_0 = set() + A_cal_0 = set() + num_terminal_sets_found = 0 + made_equitable = False + + for W_1 in R_cal[::-1]: + for v in C[W_1]: + X = None + + for U in C: + if N[(v, U)] == 0 and U in A_cal and U != W_1: + X = U + + # v does not witness an edge in H[A_cal] + if X is None: + continue + + for U in C: + # Note: Departing from the paper here. + if N[(v, U)] >= 1 and U not in A_cal: + X_prime = U + w = v + + try: + # Finding the solo neighbor of w in X_prime + y = next( + node + for node in L[w] + if F[node] == X_prime and N[(node, W_1)] == 1 + ) + except StopIteration: + pass + else: + W = W_1 + + # Move w from W to X, now X has one extra node. + change_color(w, W, X, N=N, H=H, F=F, C=C, L=L) + + # Move witness from X to V_minus, making the coloring + # equitable. + move_witnesses( + src_color=X, + dst_color=V_minus, + N=N, + H=H, + F=F, + C=C, + T_cal=T_cal, + L=L, + ) + + # Move y from X_prime to W, making W the correct size. + change_color(y, X_prime, W, N=N, H=H, F=F, C=C, L=L) + + # Then call the procedure on G[B - y] + procedure_P( + V_minus=X_prime, + V_plus=V_plus, + N=N, + H=H, + C=C, + F=F, + L=L, + excluded_colors=excluded_colors.union(A_cal), + ) + made_equitable = True + break + + if made_equitable: + break + else: + # No node in W_1 was found such that + # it had a solo-neighbor. + A_cal_0.add(W_1) + A_0.update(C[W_1]) + num_terminal_sets_found += 1 + + if num_terminal_sets_found == b: + # Otherwise, construct the maximal independent set and find + # a pair of z_1, z_2 as in Case II. + + # BFS to determine B_cal': the set of colors reachable from V+ + B_cal_prime = set() + T_cal_prime = {} + + reachable = [V_plus] + marked = set(reachable) + idx = 0 + while idx < len(reachable): + pop = reachable[idx] + idx += 1 + + B_cal_prime.add(pop) + + # No need to check for excluded_colors here because + # they only exclude colors from A_cal + next_layer = [ + k + for k in C + if H[(pop, k)] > 0 and k not in B_cal_prime and k not in marked + ] + + for dst in next_layer: + T_cal_prime[pop] = dst + + marked.update(next_layer) + reachable.extend(next_layer) + + # Construct the independent set of G[B'] + I_set = set() + I_covered = set() + W_covering = {} + + B_prime = [node for k in B_cal_prime for node in C[k]] + + # Add the nodes in V_plus to I first. + for z in C[V_plus] + B_prime: + if z in I_covered or F[z] not in B_cal_prime: + continue + + I_set.add(z) + I_covered.add(z) + I_covered.update(list(L[z])) + + for w in L[z]: + if F[w] in A_cal_0 and N[(z, F[w])] == 1: + if w not in W_covering: + W_covering[w] = z + else: + # Found z1, z2 which have the same solo + # neighbor in some W + z_1 = W_covering[w] + # z_2 = z + + Z = F[z_1] + W = F[w] + + # shift nodes along W, V- + move_witnesses( + W, V_minus, N=N, H=H, F=F, C=C, T_cal=T_cal, L=L + ) + + # shift nodes along V+ to Z + move_witnesses( + V_plus, + Z, + N=N, + H=H, + F=F, + C=C, + T_cal=T_cal_prime, + L=L, + ) + + # change color of z_1 to W + change_color(z_1, Z, W, N=N, H=H, F=F, C=C, L=L) + + # change color of w to some color in B_cal + W_plus = next( + k for k in C if N[(w, k)] == 0 and k not in A_cal + ) + change_color(w, W, W_plus, N=N, H=H, F=F, C=C, L=L) + + # recurse with G[B \cup W*] + excluded_colors.update( + [k for k in C if k != W and k not in B_cal_prime] + ) + procedure_P( + V_minus=W, + V_plus=W_plus, + N=N, + H=H, + C=C, + F=F, + L=L, + excluded_colors=excluded_colors, + ) + + made_equitable = True + break + + if made_equitable: + break + else: + assert False, ( + "Must find a w which is the solo neighbor " + "of two vertices in B_cal_prime." + ) + + if made_equitable: + break + + +@nx._dispatchable +def equitable_color(G, num_colors): + """Provides an equitable coloring for nodes of `G`. + + Attempts to color a graph using `num_colors` colors, where no neighbors of + a node can have same color as the node itself and the number of nodes with + each color differ by at most 1. `num_colors` must be greater than the + maximum degree of `G`. The algorithm is described in [1]_ and has + complexity O(num_colors * n**2). + + Parameters + ---------- + G : networkX graph + The nodes of this graph will be colored. + + num_colors : number of colors to use + This number must be at least one more than the maximum degree of nodes + in the graph. + + Returns + ------- + A dictionary with keys representing nodes and values representing + corresponding coloring. + + Examples + -------- + >>> G = nx.cycle_graph(4) + >>> nx.coloring.equitable_color(G, num_colors=3) # doctest: +SKIP + {0: 2, 1: 1, 2: 2, 3: 0} + + Raises + ------ + NetworkXAlgorithmError + If `num_colors` is not at least the maximum degree of the graph `G` + + References + ---------- + .. [1] Kierstead, H. A., Kostochka, A. V., Mydlarz, M., & Szemerédi, E. + (2010). A fast algorithm for equitable coloring. Combinatorica, 30(2), + 217-224. + """ + + # Map nodes to integers for simplicity later. + nodes_to_int = {} + int_to_nodes = {} + + for idx, node in enumerate(G.nodes): + nodes_to_int[node] = idx + int_to_nodes[idx] = node + + G = nx.relabel_nodes(G, nodes_to_int, copy=True) + + # Basic graph statistics and sanity check. + if len(G.nodes) > 0: + r_ = max(G.degree(node) for node in G.nodes) + else: + r_ = 0 + + if r_ >= num_colors: + raise nx.NetworkXAlgorithmError( + f"Graph has maximum degree {r_}, needs " + f"{r_ + 1} (> {num_colors}) colors for guaranteed coloring." + ) + + # Ensure that the number of nodes in G is a multiple of (r + 1) + pad_graph(G, num_colors) + + # Starting the algorithm. + # L = {node: list(G.neighbors(node)) for node in G.nodes} + L_ = {node: [] for node in G.nodes} + + # Arbitrary equitable allocation of colors to nodes. + F = {node: idx % num_colors for idx, node in enumerate(G.nodes)} + + C = make_C_from_F(F) + + # The neighborhood is empty initially. + N = make_N_from_L_C(L_, C) + + # Currently all nodes witness all edges. + H = make_H_from_C_N(C, N) + + # Start of algorithm. + edges_seen = set() + + for u in sorted(G.nodes): + for v in sorted(G.neighbors(u)): + # Do not double count edges if (v, u) has already been seen. + if (v, u) in edges_seen: + continue + + edges_seen.add((u, v)) + + L_[u].append(v) + L_[v].append(u) + + N[(u, F[v])] += 1 + N[(v, F[u])] += 1 + + if F[u] != F[v]: + # Were 'u' and 'v' witnesses for F[u] -> F[v] or F[v] -> F[u]? + if N[(u, F[v])] == 1: + H[F[u], F[v]] -= 1 # u cannot witness an edge between F[u], F[v] + + if N[(v, F[u])] == 1: + H[F[v], F[u]] -= 1 # v cannot witness an edge between F[v], F[u] + + if N[(u, F[u])] != 0: + # Find the first color where 'u' does not have any neighbors. + Y = next(k for k in C if N[(u, k)] == 0) + X = F[u] + change_color(u, X, Y, N=N, H=H, F=F, C=C, L=L_) + + # Procedure P + procedure_P(V_minus=X, V_plus=Y, N=N, H=H, F=F, C=C, L=L_) + + return {int_to_nodes[x]: F[x] for x in int_to_nodes} diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/greedy_coloring.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/greedy_coloring.py new file mode 100644 index 0000000000000000000000000000000000000000..311bc3a929f76dc2cac0b85bc02459ce0a29ffd0 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/greedy_coloring.py @@ -0,0 +1,565 @@ +""" +Greedy graph coloring using various strategies. +""" + +import itertools +from collections import defaultdict, deque + +import networkx as nx +from networkx.utils import arbitrary_element, py_random_state + +__all__ = [ + "greedy_color", + "strategy_connected_sequential", + "strategy_connected_sequential_bfs", + "strategy_connected_sequential_dfs", + "strategy_independent_set", + "strategy_largest_first", + "strategy_random_sequential", + "strategy_saturation_largest_first", + "strategy_smallest_last", +] + + +def strategy_largest_first(G, colors): + """Returns a list of the nodes of ``G`` in decreasing order by + degree. + + ``G`` is a NetworkX graph. ``colors`` is ignored. + + """ + return sorted(G, key=G.degree, reverse=True) + + +@py_random_state(2) +def strategy_random_sequential(G, colors, seed=None): + """Returns a random permutation of the nodes of ``G`` as a list. + + ``G`` is a NetworkX graph. ``colors`` is ignored. + + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + """ + nodes = list(G) + seed.shuffle(nodes) + return nodes + + +def strategy_smallest_last(G, colors): + """Returns a deque of the nodes of ``G``, "smallest" last. + + Specifically, the degrees of each node are tracked in a bucket queue. + From this, the node of minimum degree is repeatedly popped from the + graph, updating its neighbors' degrees. + + ``G`` is a NetworkX graph. ``colors`` is ignored. + + This implementation of the strategy runs in $O(n + m)$ time + (ignoring polylogarithmic factors), where $n$ is the number of nodes + and $m$ is the number of edges. + + This strategy is related to :func:`strategy_independent_set`: if we + interpret each node removed as an independent set of size one, then + this strategy chooses an independent set of size one instead of a + maximal independent set. + + """ + H = G.copy() + result = deque() + + # Build initial degree list (i.e. the bucket queue data structure) + degrees = defaultdict(set) # set(), for fast random-access removals + lbound = float("inf") + for node, d in H.degree(): + degrees[d].add(node) + lbound = min(lbound, d) # Lower bound on min-degree. + + def find_min_degree(): + # Save time by starting the iterator at `lbound`, not 0. + # The value that we find will be our new `lbound`, which we set later. + return next(d for d in itertools.count(lbound) if d in degrees) + + for _ in G: + # Pop a min-degree node and add it to the list. + min_degree = find_min_degree() + u = degrees[min_degree].pop() + if not degrees[min_degree]: # Clean up the degree list. + del degrees[min_degree] + result.appendleft(u) + + # Update degrees of removed node's neighbors. + for v in H[u]: + degree = H.degree(v) + degrees[degree].remove(v) + if not degrees[degree]: # Clean up the degree list. + del degrees[degree] + degrees[degree - 1].add(v) + + # Finally, remove the node. + H.remove_node(u) + lbound = min_degree - 1 # Subtract 1 in case of tied neighbors. + + return result + + +def _maximal_independent_set(G): + """Returns a maximal independent set of nodes in ``G`` by repeatedly + choosing an independent node of minimum degree (with respect to the + subgraph of unchosen nodes). + + """ + result = set() + remaining = set(G) + while remaining: + G = G.subgraph(remaining) + v = min(remaining, key=G.degree) + result.add(v) + remaining -= set(G[v]) | {v} + return result + + +def strategy_independent_set(G, colors): + """Uses a greedy independent set removal strategy to determine the + colors. + + This function updates ``colors`` **in-place** and return ``None``, + unlike the other strategy functions in this module. + + This algorithm repeatedly finds and removes a maximal independent + set, assigning each node in the set an unused color. + + ``G`` is a NetworkX graph. + + This strategy is related to :func:`strategy_smallest_last`: in that + strategy, an independent set of size one is chosen at each step + instead of a maximal independent set. + + """ + remaining_nodes = set(G) + while len(remaining_nodes) > 0: + nodes = _maximal_independent_set(G.subgraph(remaining_nodes)) + remaining_nodes -= nodes + yield from nodes + + +def strategy_connected_sequential_bfs(G, colors): + """Returns an iterable over nodes in ``G`` in the order given by a + breadth-first traversal. + + The generated sequence has the property that for each node except + the first, at least one neighbor appeared earlier in the sequence. + + ``G`` is a NetworkX graph. ``colors`` is ignored. + + """ + return strategy_connected_sequential(G, colors, "bfs") + + +def strategy_connected_sequential_dfs(G, colors): + """Returns an iterable over nodes in ``G`` in the order given by a + depth-first traversal. + + The generated sequence has the property that for each node except + the first, at least one neighbor appeared earlier in the sequence. + + ``G`` is a NetworkX graph. ``colors`` is ignored. + + """ + return strategy_connected_sequential(G, colors, "dfs") + + +def strategy_connected_sequential(G, colors, traversal="bfs"): + """Returns an iterable over nodes in ``G`` in the order given by a + breadth-first or depth-first traversal. + + ``traversal`` must be one of the strings ``'dfs'`` or ``'bfs'``, + representing depth-first traversal or breadth-first traversal, + respectively. + + The generated sequence has the property that for each node except + the first, at least one neighbor appeared earlier in the sequence. + + ``G`` is a NetworkX graph. ``colors`` is ignored. + + """ + if traversal == "bfs": + traverse = nx.bfs_edges + elif traversal == "dfs": + traverse = nx.dfs_edges + else: + raise nx.NetworkXError( + "Please specify one of the strings 'bfs' or" + " 'dfs' for connected sequential ordering" + ) + for component in nx.connected_components(G): + source = arbitrary_element(component) + # Yield the source node, then all the nodes in the specified + # traversal order. + yield source + for _, end in traverse(G.subgraph(component), source): + yield end + + +def strategy_saturation_largest_first(G, colors): + """Iterates over all the nodes of ``G`` in "saturation order" (also + known as "DSATUR"). + + ``G`` is a NetworkX graph. ``colors`` is a dictionary mapping nodes of + ``G`` to colors, for those nodes that have already been colored. + + """ + distinct_colors = {v: set() for v in G} + + # Add the node color assignments given in colors to the + # distinct colors set for each neighbor of that node + for node, color in colors.items(): + for neighbor in G[node]: + distinct_colors[neighbor].add(color) + + # Check that the color assignments in colors are valid + # i.e. no neighboring nodes have the same color + if len(colors) >= 2: + for node, color in colors.items(): + if color in distinct_colors[node]: + raise nx.NetworkXError("Neighboring nodes must have different colors") + + # If 0 nodes have been colored, simply choose the node of highest degree. + if not colors: + node = max(G, key=G.degree) + yield node + # Add the color 0 to the distinct colors set for each + # neighbor of that node. + for v in G[node]: + distinct_colors[v].add(0) + + while len(G) != len(colors): + # Update the distinct color sets for the neighbors. + for node, color in colors.items(): + for neighbor in G[node]: + distinct_colors[neighbor].add(color) + + # Compute the maximum saturation and the set of nodes that + # achieve that saturation. + saturation = {v: len(c) for v, c in distinct_colors.items() if v not in colors} + # Yield the node with the highest saturation, and break ties by + # degree. + node = max(saturation, key=lambda v: (saturation[v], G.degree(v))) + yield node + + +#: Dictionary mapping name of a strategy as a string to the strategy function. +STRATEGIES = { + "largest_first": strategy_largest_first, + "random_sequential": strategy_random_sequential, + "smallest_last": strategy_smallest_last, + "independent_set": strategy_independent_set, + "connected_sequential_bfs": strategy_connected_sequential_bfs, + "connected_sequential_dfs": strategy_connected_sequential_dfs, + "connected_sequential": strategy_connected_sequential, + "saturation_largest_first": strategy_saturation_largest_first, + "DSATUR": strategy_saturation_largest_first, +} + + +@nx._dispatchable +def greedy_color(G, strategy="largest_first", interchange=False): + """Color a graph using various strategies of greedy graph coloring. + + Attempts to color a graph using as few colors as possible, where no + neighbors of a node can have same color as the node itself. The + given strategy determines the order in which nodes are colored. + + The strategies are described in [1]_, and smallest-last is based on + [2]_. + + Parameters + ---------- + G : NetworkX graph + + strategy : string or function(G, colors) + A function (or a string representing a function) that provides + the coloring strategy, by returning nodes in the ordering they + should be colored. ``G`` is the graph, and ``colors`` is a + dictionary of the currently assigned colors, keyed by nodes. The + function must return an iterable over all the nodes in ``G``. + + If the strategy function is an iterator generator (that is, a + function with ``yield`` statements), keep in mind that the + ``colors`` dictionary will be updated after each ``yield``, since + this function chooses colors greedily. + + If ``strategy`` is a string, it must be one of the following, + each of which represents one of the built-in strategy functions. + + * ``'largest_first'`` + * ``'random_sequential'`` + * ``'smallest_last'`` + * ``'independent_set'`` + * ``'connected_sequential_bfs'`` + * ``'connected_sequential_dfs'`` + * ``'connected_sequential'`` (alias for the previous strategy) + * ``'saturation_largest_first'`` + * ``'DSATUR'`` (alias for the previous strategy) + + interchange: bool + Will use the color interchange algorithm described by [3]_ if set + to ``True``. + + Note that ``saturation_largest_first`` and ``independent_set`` + do not work with interchange. Furthermore, if you use + interchange with your own strategy function, you cannot rely + on the values in the ``colors`` argument. + + Returns + ------- + A dictionary with keys representing nodes and values representing + corresponding coloring. + + Examples + -------- + >>> G = nx.cycle_graph(4) + >>> d = nx.coloring.greedy_color(G, strategy="largest_first") + >>> d in [{0: 0, 1: 1, 2: 0, 3: 1}, {0: 1, 1: 0, 2: 1, 3: 0}] + True + + Raises + ------ + NetworkXPointlessConcept + If ``strategy`` is ``saturation_largest_first`` or + ``independent_set`` and ``interchange`` is ``True``. + + References + ---------- + .. [1] Adrian Kosowski, and Krzysztof Manuszewski, + Classical Coloring of Graphs, Graph Colorings, 2-19, 2004. + ISBN 0-8218-3458-4. + .. [2] David W. Matula, and Leland L. Beck, "Smallest-last + ordering and clustering and graph coloring algorithms." *J. ACM* 30, + 3 (July 1983), 417–427. + .. [3] Maciej M. Sysło, Narsingh Deo, Janusz S. Kowalik, + Discrete Optimization Algorithms with Pascal Programs, 415-424, 1983. + ISBN 0-486-45353-7. + + """ + if len(G) == 0: + return {} + # Determine the strategy provided by the caller. + strategy = STRATEGIES.get(strategy, strategy) + if not callable(strategy): + raise nx.NetworkXError( + f"strategy must be callable or a valid string. {strategy} not valid." + ) + # Perform some validation on the arguments before executing any + # strategy functions. + if interchange: + if strategy is strategy_independent_set: + msg = "interchange cannot be used with independent_set" + raise nx.NetworkXPointlessConcept(msg) + if strategy is strategy_saturation_largest_first: + msg = "interchange cannot be used with saturation_largest_first" + raise nx.NetworkXPointlessConcept(msg) + colors = {} + nodes = strategy(G, colors) + if interchange: + return _greedy_coloring_with_interchange(G, nodes) + for u in nodes: + # Set to keep track of colors of neighbors + nbr_colors = {colors[v] for v in G[u] if v in colors} + # Find the first unused color. + for color in itertools.count(): + if color not in nbr_colors: + break + # Assign the new color to the current node. + colors[u] = color + return colors + + +# Tools for coloring with interchanges +class _Node: + __slots__ = ["node_id", "color", "adj_list", "adj_color"] + + def __init__(self, node_id, n): + self.node_id = node_id + self.color = -1 + self.adj_list = None + self.adj_color = [None for _ in range(n)] + + def __repr__(self): + return ( + f"Node_id: {self.node_id}, Color: {self.color}, " + f"Adj_list: ({self.adj_list}), adj_color: ({self.adj_color})" + ) + + def assign_color(self, adj_entry, color): + adj_entry.col_prev = None + adj_entry.col_next = self.adj_color[color] + self.adj_color[color] = adj_entry + if adj_entry.col_next is not None: + adj_entry.col_next.col_prev = adj_entry + + def clear_color(self, adj_entry, color): + if adj_entry.col_prev is None: + self.adj_color[color] = adj_entry.col_next + else: + adj_entry.col_prev.col_next = adj_entry.col_next + if adj_entry.col_next is not None: + adj_entry.col_next.col_prev = adj_entry.col_prev + + def iter_neighbors(self): + adj_node = self.adj_list + while adj_node is not None: + yield adj_node + adj_node = adj_node.next + + def iter_neighbors_color(self, color): + adj_color_node = self.adj_color[color] + while adj_color_node is not None: + yield adj_color_node.node_id + adj_color_node = adj_color_node.col_next + + +class _AdjEntry: + __slots__ = ["node_id", "next", "mate", "col_next", "col_prev"] + + def __init__(self, node_id): + self.node_id = node_id + self.next = None + self.mate = None + self.col_next = None + self.col_prev = None + + def __repr__(self): + col_next = None if self.col_next is None else self.col_next.node_id + col_prev = None if self.col_prev is None else self.col_prev.node_id + return ( + f"Node_id: {self.node_id}, Next: ({self.next}), " + f"Mate: ({self.mate.node_id}), " + f"col_next: ({col_next}), col_prev: ({col_prev})" + ) + + +def _greedy_coloring_with_interchange(G, nodes): + """Return a coloring for `original_graph` using interchange approach + + This procedure is an adaption of the algorithm described by [1]_, + and is an implementation of coloring with interchange. Please be + advised, that the datastructures used are rather complex because + they are optimized to minimize the time spent identifying + subcomponents of the graph, which are possible candidates for color + interchange. + + Parameters + ---------- + G : NetworkX graph + The graph to be colored + + nodes : list + nodes ordered using the strategy of choice + + Returns + ------- + dict : + A dictionary keyed by node to a color value + + References + ---------- + .. [1] Maciej M. Syslo, Narsingh Deo, Janusz S. Kowalik, + Discrete Optimization Algorithms with Pascal Programs, 415-424, 1983. + ISBN 0-486-45353-7. + """ + n = len(G) + + graph = {node: _Node(node, n) for node in G} + + for node1, node2 in G.edges(): + adj_entry1 = _AdjEntry(node2) + adj_entry2 = _AdjEntry(node1) + adj_entry1.mate = adj_entry2 + adj_entry2.mate = adj_entry1 + node1_head = graph[node1].adj_list + adj_entry1.next = node1_head + graph[node1].adj_list = adj_entry1 + node2_head = graph[node2].adj_list + adj_entry2.next = node2_head + graph[node2].adj_list = adj_entry2 + + k = 0 + for node in nodes: + # Find the smallest possible, unused color + neighbors = graph[node].iter_neighbors() + col_used = {graph[adj_node.node_id].color for adj_node in neighbors} + col_used.discard(-1) + k1 = next(itertools.dropwhile(lambda x: x in col_used, itertools.count())) + + # k1 is now the lowest available color + if k1 > k: + connected = True + visited = set() + col1 = -1 + col2 = -1 + while connected and col1 < k: + col1 += 1 + neighbor_cols = graph[node].iter_neighbors_color(col1) + col1_adj = list(neighbor_cols) + + col2 = col1 + while connected and col2 < k: + col2 += 1 + visited = set(col1_adj) + frontier = list(col1_adj) + i = 0 + while i < len(frontier): + search_node = frontier[i] + i += 1 + col_opp = col2 if graph[search_node].color == col1 else col1 + neighbor_cols = graph[search_node].iter_neighbors_color(col_opp) + + for neighbor in neighbor_cols: + if neighbor not in visited: + visited.add(neighbor) + frontier.append(neighbor) + + # Search if node is not adj to any col2 vertex + connected = ( + len( + visited.intersection(graph[node].iter_neighbors_color(col2)) + ) + > 0 + ) + + # If connected is false then we can swap !!! + if not connected: + # Update all the nodes in the component + for search_node in visited: + graph[search_node].color = ( + col2 if graph[search_node].color == col1 else col1 + ) + col2_adj = graph[search_node].adj_color[col2] + graph[search_node].adj_color[col2] = graph[search_node].adj_color[ + col1 + ] + graph[search_node].adj_color[col1] = col2_adj + + # Update all the neighboring nodes + for search_node in visited: + col = graph[search_node].color + col_opp = col1 if col == col2 else col2 + for adj_node in graph[search_node].iter_neighbors(): + if graph[adj_node.node_id].color != col_opp: + # Direct reference to entry + adj_mate = adj_node.mate + graph[adj_node.node_id].clear_color(adj_mate, col_opp) + graph[adj_node.node_id].assign_color(adj_mate, col) + k1 = col1 + + # We can color this node color k1 + graph[node].color = k1 + k = max(k1, k) + + # Update the neighbors of this node + for adj_node in graph[node].iter_neighbors(): + adj_mate = adj_node.mate + graph[adj_node.node_id].assign_color(adj_mate, k1) + + return {node.node_id: node.color for node in graph.values()} diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/tests/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/tests/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/tests/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7050665c2434db760bd518f8eecf4e79be51ea5c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/tests/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/tests/__pycache__/test_coloring.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/tests/__pycache__/test_coloring.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..26214edba55eeb9ed9c4256d5368e4624688ca64 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/tests/__pycache__/test_coloring.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/tests/test_coloring.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/tests/test_coloring.py new file mode 100644 index 0000000000000000000000000000000000000000..1e5a913c7c07bc0060274e611cef18b054d71238 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/coloring/tests/test_coloring.py @@ -0,0 +1,863 @@ +"""Greedy coloring test suite.""" + +import itertools + +import pytest + +import networkx as nx + +is_coloring = nx.algorithms.coloring.equitable_coloring.is_coloring +is_equitable = nx.algorithms.coloring.equitable_coloring.is_equitable + + +ALL_STRATEGIES = [ + "largest_first", + "random_sequential", + "smallest_last", + "independent_set", + "connected_sequential_bfs", + "connected_sequential_dfs", + "connected_sequential", + "saturation_largest_first", + "DSATUR", +] + +# List of strategies where interchange=True results in an error +INTERCHANGE_INVALID = ["independent_set", "saturation_largest_first", "DSATUR"] + + +class TestColoring: + def test_basic_cases(self): + def check_basic_case(graph_func, n_nodes, strategy, interchange): + graph = graph_func() + coloring = nx.coloring.greedy_color( + graph, strategy=strategy, interchange=interchange + ) + assert verify_length(coloring, n_nodes) + assert verify_coloring(graph, coloring) + + for graph_func, n_nodes in BASIC_TEST_CASES.items(): + for interchange in [True, False]: + for strategy in ALL_STRATEGIES: + check_basic_case(graph_func, n_nodes, strategy, False) + if strategy not in INTERCHANGE_INVALID: + check_basic_case(graph_func, n_nodes, strategy, True) + + def test_special_cases(self): + def check_special_case(strategy, graph_func, interchange, colors): + graph = graph_func() + coloring = nx.coloring.greedy_color( + graph, strategy=strategy, interchange=interchange + ) + if not hasattr(colors, "__len__"): + colors = [colors] + assert any(verify_length(coloring, n_colors) for n_colors in colors) + assert verify_coloring(graph, coloring) + + for strategy, arglist in SPECIAL_TEST_CASES.items(): + for args in arglist: + check_special_case(strategy, args[0], args[1], args[2]) + + def test_interchange_invalid(self): + graph = one_node_graph() + for strategy in INTERCHANGE_INVALID: + pytest.raises( + nx.NetworkXPointlessConcept, + nx.coloring.greedy_color, + graph, + strategy=strategy, + interchange=True, + ) + + def test_bad_inputs(self): + graph = one_node_graph() + pytest.raises( + nx.NetworkXError, + nx.coloring.greedy_color, + graph, + strategy="invalid strategy", + ) + + def test_strategy_as_function(self): + graph = lf_shc() + colors_1 = nx.coloring.greedy_color(graph, "largest_first") + colors_2 = nx.coloring.greedy_color(graph, nx.coloring.strategy_largest_first) + assert colors_1 == colors_2 + + def test_seed_argument(self): + graph = lf_shc() + rs = nx.coloring.strategy_random_sequential + c1 = nx.coloring.greedy_color(graph, lambda g, c: rs(g, c, seed=1)) + for u, v in graph.edges: + assert c1[u] != c1[v] + + def test_is_coloring(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (1, 2)]) + coloring = {0: 0, 1: 1, 2: 0} + assert is_coloring(G, coloring) + + coloring[0] = 1 + assert not is_coloring(G, coloring) + assert not is_equitable(G, coloring) + + def test_is_equitable(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (1, 2)]) + coloring = {0: 0, 1: 1, 2: 0} + assert is_equitable(G, coloring) + + G.add_edges_from([(2, 3), (2, 4), (2, 5)]) + coloring[3] = 1 + coloring[4] = 1 + coloring[5] = 1 + assert is_coloring(G, coloring) + assert not is_equitable(G, coloring) + + def test_num_colors(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (0, 3)]) + pytest.raises(nx.NetworkXAlgorithmError, nx.coloring.equitable_color, G, 2) + + def test_equitable_color(self): + G = nx.fast_gnp_random_graph(n=10, p=0.2, seed=42) + coloring = nx.coloring.equitable_color(G, max_degree(G) + 1) + assert is_equitable(G, coloring) + + def test_equitable_color_empty(self): + G = nx.empty_graph() + coloring = nx.coloring.equitable_color(G, max_degree(G) + 1) + assert is_equitable(G, coloring) + + def test_equitable_color_large(self): + G = nx.fast_gnp_random_graph(100, 0.1, seed=42) + coloring = nx.coloring.equitable_color(G, max_degree(G) + 1) + assert is_equitable(G, coloring, num_colors=max_degree(G) + 1) + + def test_case_V_plus_not_in_A_cal(self): + # Hand crafted case to avoid the easy case. + L = { + 0: [2, 5], + 1: [3, 4], + 2: [0, 8], + 3: [1, 7], + 4: [1, 6], + 5: [0, 6], + 6: [4, 5], + 7: [3], + 8: [2], + } + + F = { + # Color 0 + 0: 0, + 1: 0, + # Color 1 + 2: 1, + 3: 1, + 4: 1, + 5: 1, + # Color 2 + 6: 2, + 7: 2, + 8: 2, + } + + C = nx.algorithms.coloring.equitable_coloring.make_C_from_F(F) + N = nx.algorithms.coloring.equitable_coloring.make_N_from_L_C(L, C) + H = nx.algorithms.coloring.equitable_coloring.make_H_from_C_N(C, N) + + nx.algorithms.coloring.equitable_coloring.procedure_P( + V_minus=0, V_plus=1, N=N, H=H, F=F, C=C, L=L + ) + check_state(L=L, N=N, H=H, F=F, C=C) + + def test_cast_no_solo(self): + L = { + 0: [8, 9], + 1: [10, 11], + 2: [8], + 3: [9], + 4: [10, 11], + 5: [8], + 6: [9], + 7: [10, 11], + 8: [0, 2, 5], + 9: [0, 3, 6], + 10: [1, 4, 7], + 11: [1, 4, 7], + } + + F = {0: 0, 1: 0, 2: 2, 3: 2, 4: 2, 5: 3, 6: 3, 7: 3, 8: 1, 9: 1, 10: 1, 11: 1} + + C = nx.algorithms.coloring.equitable_coloring.make_C_from_F(F) + N = nx.algorithms.coloring.equitable_coloring.make_N_from_L_C(L, C) + H = nx.algorithms.coloring.equitable_coloring.make_H_from_C_N(C, N) + + nx.algorithms.coloring.equitable_coloring.procedure_P( + V_minus=0, V_plus=1, N=N, H=H, F=F, C=C, L=L + ) + check_state(L=L, N=N, H=H, F=F, C=C) + + def test_hard_prob(self): + # Tests for two levels of recursion. + num_colors, s = 5, 5 + + G = nx.Graph() + G.add_edges_from( + [ + (0, 10), + (0, 11), + (0, 12), + (0, 23), + (10, 4), + (10, 9), + (10, 20), + (11, 4), + (11, 8), + (11, 16), + (12, 9), + (12, 22), + (12, 23), + (23, 7), + (1, 17), + (1, 18), + (1, 19), + (1, 24), + (17, 5), + (17, 13), + (17, 22), + (18, 5), + (19, 5), + (19, 6), + (19, 8), + (24, 7), + (24, 16), + (2, 4), + (2, 13), + (2, 14), + (2, 15), + (4, 6), + (13, 5), + (13, 21), + (14, 6), + (14, 15), + (15, 6), + (15, 21), + (3, 16), + (3, 20), + (3, 21), + (3, 22), + (16, 8), + (20, 8), + (21, 9), + (22, 7), + ] + ) + F = {node: node // s for node in range(num_colors * s)} + F[s - 1] = num_colors - 1 + + params = make_params_from_graph(G=G, F=F) + + nx.algorithms.coloring.equitable_coloring.procedure_P( + V_minus=0, V_plus=num_colors - 1, **params + ) + check_state(**params) + + def test_hardest_prob(self): + # Tests for two levels of recursion. + num_colors, s = 10, 4 + + G = nx.Graph() + G.add_edges_from( + [ + (0, 19), + (0, 24), + (0, 29), + (0, 30), + (0, 35), + (19, 3), + (19, 7), + (19, 9), + (19, 15), + (19, 21), + (19, 24), + (19, 30), + (19, 38), + (24, 5), + (24, 11), + (24, 13), + (24, 20), + (24, 30), + (24, 37), + (24, 38), + (29, 6), + (29, 10), + (29, 13), + (29, 15), + (29, 16), + (29, 17), + (29, 20), + (29, 26), + (30, 6), + (30, 10), + (30, 15), + (30, 22), + (30, 23), + (30, 39), + (35, 6), + (35, 9), + (35, 14), + (35, 18), + (35, 22), + (35, 23), + (35, 25), + (35, 27), + (1, 20), + (1, 26), + (1, 31), + (1, 34), + (1, 38), + (20, 4), + (20, 8), + (20, 14), + (20, 18), + (20, 28), + (20, 33), + (26, 7), + (26, 10), + (26, 14), + (26, 18), + (26, 21), + (26, 32), + (26, 39), + (31, 5), + (31, 8), + (31, 13), + (31, 16), + (31, 17), + (31, 21), + (31, 25), + (31, 27), + (34, 7), + (34, 8), + (34, 13), + (34, 18), + (34, 22), + (34, 23), + (34, 25), + (34, 27), + (38, 4), + (38, 9), + (38, 12), + (38, 14), + (38, 21), + (38, 27), + (2, 3), + (2, 18), + (2, 21), + (2, 28), + (2, 32), + (2, 33), + (2, 36), + (2, 37), + (2, 39), + (3, 5), + (3, 9), + (3, 13), + (3, 22), + (3, 23), + (3, 25), + (3, 27), + (18, 6), + (18, 11), + (18, 15), + (18, 39), + (21, 4), + (21, 10), + (21, 14), + (21, 36), + (28, 6), + (28, 10), + (28, 14), + (28, 16), + (28, 17), + (28, 25), + (28, 27), + (32, 5), + (32, 10), + (32, 12), + (32, 16), + (32, 17), + (32, 22), + (32, 23), + (33, 7), + (33, 10), + (33, 12), + (33, 16), + (33, 17), + (33, 25), + (33, 27), + (36, 5), + (36, 8), + (36, 15), + (36, 16), + (36, 17), + (36, 25), + (36, 27), + (37, 5), + (37, 11), + (37, 15), + (37, 16), + (37, 17), + (37, 22), + (37, 23), + (39, 7), + (39, 8), + (39, 15), + (39, 22), + (39, 23), + ] + ) + F = {node: node // s for node in range(num_colors * s)} + F[s - 1] = num_colors - 1 # V- = 0, V+ = num_colors - 1 + + params = make_params_from_graph(G=G, F=F) + + nx.algorithms.coloring.equitable_coloring.procedure_P( + V_minus=0, V_plus=num_colors - 1, **params + ) + check_state(**params) + + def test_strategy_saturation_largest_first(self): + def color_remaining_nodes( + G, + colored_nodes, + full_color_assignment=None, + nodes_to_add_between_calls=1, + ): + color_assignments = [] + aux_colored_nodes = colored_nodes.copy() + + node_iterator = nx.algorithms.coloring.greedy_coloring.strategy_saturation_largest_first( + G, aux_colored_nodes + ) + + for u in node_iterator: + # Set to keep track of colors of neighbors + nbr_colors = { + aux_colored_nodes[v] for v in G[u] if v in aux_colored_nodes + } + # Find the first unused color. + for color in itertools.count(): + if color not in nbr_colors: + break + aux_colored_nodes[u] = color + color_assignments.append((u, color)) + + # Color nodes between iterations + for i in range(nodes_to_add_between_calls - 1): + if not len(color_assignments) + len(colored_nodes) >= len( + full_color_assignment + ): + full_color_assignment_node, color = full_color_assignment[ + len(color_assignments) + len(colored_nodes) + ] + + # Assign the new color to the current node. + aux_colored_nodes[full_color_assignment_node] = color + color_assignments.append((full_color_assignment_node, color)) + + return color_assignments, aux_colored_nodes + + for G, _, _ in SPECIAL_TEST_CASES["saturation_largest_first"]: + G = G() + + # Check that function still works when nodes are colored between iterations + for nodes_to_add_between_calls in range(1, 5): + # Get a full color assignment, (including the order in which nodes were colored) + colored_nodes = {} + full_color_assignment, full_colored_nodes = color_remaining_nodes( + G, colored_nodes + ) + + # For each node in the color assignment, add it to colored_nodes and re-run the function + for ind, (node, color) in enumerate(full_color_assignment): + colored_nodes[node] = color + + ( + partial_color_assignment, + partial_colored_nodes, + ) = color_remaining_nodes( + G, + colored_nodes, + full_color_assignment=full_color_assignment, + nodes_to_add_between_calls=nodes_to_add_between_calls, + ) + + # Check that the color assignment and order of remaining nodes are the same + assert full_color_assignment[ind + 1 :] == partial_color_assignment + assert full_colored_nodes == partial_colored_nodes + + +# ############################ Utility functions ############################ +def verify_coloring(graph, coloring): + for node in graph.nodes(): + if node not in coloring: + return False + + color = coloring[node] + for neighbor in graph.neighbors(node): + if coloring[neighbor] == color: + return False + + return True + + +def verify_length(coloring, expected): + coloring = dict_to_sets(coloring) + return len(coloring) == expected + + +def dict_to_sets(colors): + if len(colors) == 0: + return [] + + k = max(colors.values()) + 1 + sets = [set() for _ in range(k)] + + for node, color in colors.items(): + sets[color].add(node) + + return sets + + +# ############################ Graph Generation ############################ + + +def empty_graph(): + return nx.Graph() + + +def one_node_graph(): + graph = nx.Graph() + graph.add_nodes_from([1]) + return graph + + +def two_node_graph(): + graph = nx.Graph() + graph.add_nodes_from([1, 2]) + graph.add_edges_from([(1, 2)]) + return graph + + +def three_node_clique(): + graph = nx.Graph() + graph.add_nodes_from([1, 2, 3]) + graph.add_edges_from([(1, 2), (1, 3), (2, 3)]) + return graph + + +def disconnected(): + graph = nx.Graph() + graph.add_edges_from([(1, 2), (2, 3), (4, 5), (5, 6)]) + return graph + + +def rs_shc(): + graph = nx.Graph() + graph.add_nodes_from([1, 2, 3, 4]) + graph.add_edges_from([(1, 2), (2, 3), (3, 4)]) + return graph + + +def slf_shc(): + graph = nx.Graph() + graph.add_nodes_from([1, 2, 3, 4, 5, 6, 7]) + graph.add_edges_from( + [(1, 2), (1, 5), (1, 6), (2, 3), (2, 7), (3, 4), (3, 7), (4, 5), (4, 6), (5, 6)] + ) + return graph + + +def slf_hc(): + graph = nx.Graph() + graph.add_nodes_from([1, 2, 3, 4, 5, 6, 7, 8]) + graph.add_edges_from( + [ + (1, 2), + (1, 3), + (1, 4), + (1, 5), + (2, 3), + (2, 4), + (2, 6), + (5, 7), + (5, 8), + (6, 7), + (6, 8), + (7, 8), + ] + ) + return graph + + +def lf_shc(): + graph = nx.Graph() + graph.add_nodes_from([1, 2, 3, 4, 5, 6]) + graph.add_edges_from([(6, 1), (1, 4), (4, 3), (3, 2), (2, 5)]) + return graph + + +def lf_hc(): + graph = nx.Graph() + graph.add_nodes_from([1, 2, 3, 4, 5, 6, 7]) + graph.add_edges_from( + [ + (1, 7), + (1, 6), + (1, 3), + (1, 4), + (7, 2), + (2, 6), + (2, 3), + (2, 5), + (5, 3), + (5, 4), + (4, 3), + ] + ) + return graph + + +def sl_shc(): + graph = nx.Graph() + graph.add_nodes_from([1, 2, 3, 4, 5, 6]) + graph.add_edges_from( + [(1, 2), (1, 3), (2, 3), (1, 4), (2, 5), (3, 6), (4, 5), (4, 6), (5, 6)] + ) + return graph + + +def sl_hc(): + graph = nx.Graph() + graph.add_nodes_from([1, 2, 3, 4, 5, 6, 7, 8]) + graph.add_edges_from( + [ + (1, 2), + (1, 3), + (1, 5), + (1, 7), + (2, 3), + (2, 4), + (2, 8), + (8, 4), + (8, 6), + (8, 7), + (7, 5), + (7, 6), + (3, 4), + (4, 6), + (6, 5), + (5, 3), + ] + ) + return graph + + +def gis_shc(): + graph = nx.Graph() + graph.add_nodes_from([1, 2, 3, 4]) + graph.add_edges_from([(1, 2), (2, 3), (3, 4)]) + return graph + + +def gis_hc(): + graph = nx.Graph() + graph.add_nodes_from([1, 2, 3, 4, 5, 6]) + graph.add_edges_from([(1, 5), (2, 5), (3, 6), (4, 6), (5, 6)]) + return graph + + +def cs_shc(): + graph = nx.Graph() + graph.add_nodes_from([1, 2, 3, 4, 5]) + graph.add_edges_from([(1, 2), (1, 5), (2, 3), (2, 4), (2, 5), (3, 4), (4, 5)]) + return graph + + +def rsi_shc(): + graph = nx.Graph() + graph.add_nodes_from([1, 2, 3, 4, 5, 6]) + graph.add_edges_from( + [(1, 2), (1, 5), (1, 6), (2, 3), (3, 4), (4, 5), (4, 6), (5, 6)] + ) + return graph + + +def lfi_shc(): + graph = nx.Graph() + graph.add_nodes_from([1, 2, 3, 4, 5, 6, 7]) + graph.add_edges_from( + [(1, 2), (1, 5), (1, 6), (2, 3), (2, 7), (3, 4), (3, 7), (4, 5), (4, 6), (5, 6)] + ) + return graph + + +def lfi_hc(): + graph = nx.Graph() + graph.add_nodes_from([1, 2, 3, 4, 5, 6, 7, 8, 9]) + graph.add_edges_from( + [ + (1, 2), + (1, 5), + (1, 6), + (1, 7), + (2, 3), + (2, 8), + (2, 9), + (3, 4), + (3, 8), + (3, 9), + (4, 5), + (4, 6), + (4, 7), + (5, 6), + ] + ) + return graph + + +def sli_shc(): + graph = nx.Graph() + graph.add_nodes_from([1, 2, 3, 4, 5, 6, 7]) + graph.add_edges_from( + [ + (1, 2), + (1, 3), + (1, 5), + (1, 7), + (2, 3), + (2, 6), + (3, 4), + (4, 5), + (4, 6), + (5, 7), + (6, 7), + ] + ) + return graph + + +def sli_hc(): + graph = nx.Graph() + graph.add_nodes_from([1, 2, 3, 4, 5, 6, 7, 8, 9]) + graph.add_edges_from( + [ + (1, 2), + (1, 3), + (1, 4), + (1, 5), + (2, 3), + (2, 7), + (2, 8), + (2, 9), + (3, 6), + (3, 7), + (3, 9), + (4, 5), + (4, 6), + (4, 8), + (4, 9), + (5, 6), + (5, 7), + (5, 8), + (6, 7), + (6, 9), + (7, 8), + (8, 9), + ] + ) + return graph + + +# -------------------------------------------------------------------------- +# Basic tests for all strategies +# For each basic graph function, specify the number of expected colors. +BASIC_TEST_CASES = { + empty_graph: 0, + one_node_graph: 1, + two_node_graph: 2, + disconnected: 2, + three_node_clique: 3, +} + + +# -------------------------------------------------------------------------- +# Special test cases. Each strategy has a list of tuples of the form +# (graph function, interchange, valid # of colors) +SPECIAL_TEST_CASES = { + "random_sequential": [ + (rs_shc, False, (2, 3)), + (rs_shc, True, 2), + (rsi_shc, True, (3, 4)), + ], + "saturation_largest_first": [(slf_shc, False, (3, 4)), (slf_hc, False, 4)], + "largest_first": [ + (lf_shc, False, (2, 3)), + (lf_hc, False, 4), + (lf_shc, True, 2), + (lf_hc, True, 3), + (lfi_shc, True, (3, 4)), + (lfi_hc, True, 4), + ], + "smallest_last": [ + (sl_shc, False, (3, 4)), + (sl_hc, False, 5), + (sl_shc, True, 3), + (sl_hc, True, 4), + (sli_shc, True, (3, 4)), + (sli_hc, True, 5), + ], + "independent_set": [(gis_shc, False, (2, 3)), (gis_hc, False, 3)], + "connected_sequential": [(cs_shc, False, (3, 4)), (cs_shc, True, 3)], + "connected_sequential_dfs": [(cs_shc, False, (3, 4))], +} + + +# -------------------------------------------------------------------------- +# Helper functions to test +# (graph function, interchange, valid # of colors) + + +def check_state(L, N, H, F, C): + s = len(C[0]) + num_colors = len(C.keys()) + + assert all(u in L[v] for u in L for v in L[u]) + assert all(F[u] != F[v] for u in L for v in L[u]) + assert all(len(L[u]) < num_colors for u in L) + assert all(len(C[x]) == s for x in C) + assert all(H[(c1, c2)] >= 0 for c1 in C for c2 in C) + assert all(N[(u, F[u])] == 0 for u in F) + + +def max_degree(G): + """Get the maximum degree of any node in G.""" + return max(G.degree(node) for node in G.nodes) if len(G.nodes) > 0 else 0 + + +def make_params_from_graph(G, F): + """Returns {N, L, H, C} from the given graph.""" + num_nodes = len(G) + L = {u: [] for u in range(num_nodes)} + for u, v in G.edges: + L[u].append(v) + L[v].append(u) + + C = nx.algorithms.coloring.equitable_coloring.make_C_from_F(F) + N = nx.algorithms.coloring.equitable_coloring.make_N_from_L_C(L, C) + H = nx.algorithms.coloring.equitable_coloring.make_H_from_C_N(C, N) + + return {"N": N, "F": F, "C": C, "H": H, "L": L} diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..8014032c41e195bee307e4c638c627ca2ddf16c6 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__init__.py @@ -0,0 +1,28 @@ +"""Functions for computing and measuring community structure. + +The ``community`` subpackage can be accessed by using :mod:`networkx.community`, then accessing the +functions as attributes of ``community``. For example:: + + >>> import networkx as nx + >>> G = nx.barbell_graph(5, 1) + >>> communities_generator = nx.community.girvan_newman(G) + >>> top_level_communities = next(communities_generator) + >>> next_level_communities = next(communities_generator) + >>> sorted(map(sorted, next_level_communities)) + [[0, 1, 2, 3, 4], [5], [6, 7, 8, 9, 10]] + +""" + +from networkx.algorithms.community.asyn_fluid import * +from networkx.algorithms.community.bipartitions import * +from networkx.algorithms.community.centrality import * +from networkx.algorithms.community.divisive import * +from networkx.algorithms.community.kclique import * +from networkx.algorithms.community.label_propagation import * +from networkx.algorithms.community.lukes import * +from networkx.algorithms.community.modularity_max import * +from networkx.algorithms.community.quality import * +from networkx.algorithms.community.community_utils import * +from networkx.algorithms.community.louvain import * +from networkx.algorithms.community.leiden import * +from networkx.algorithms.community.local import * diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..40026c452cbeb0dce251ccba9902275aceb29186 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/asyn_fluid.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/asyn_fluid.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8dadfc12f34da60658121af94588ef5d501d24bc Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/asyn_fluid.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/bipartitions.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/bipartitions.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e1a82061f8602e8ba134ed824a203e2e32fb53cf Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/bipartitions.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/centrality.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/centrality.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6119a7e83796e7bf8d2bff6a8c769258e206ae16 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/centrality.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/community_utils.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/community_utils.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d31641676c4dbd489ebcee304fcea89e2f841b02 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/community_utils.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/divisive.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/divisive.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e5d79661860bbf0bfc87c982271809cd6be5788d Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/divisive.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/kclique.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/kclique.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2719f1570f476d4a488f1b7aa1b640a7e7c41ff9 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/kclique.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/label_propagation.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/label_propagation.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..819d6505f20ff8ec7b4b1b93a0750ba2f652b7a3 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/label_propagation.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/leiden.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/leiden.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..098e69ba60434c96f59f37316d2a9345cfbe3084 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/leiden.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/local.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/local.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fba510e205614c444343af01b51bde2056e80283 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/local.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/louvain.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/louvain.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9814b54861074607978ad9ac686701d0af5b456e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/louvain.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/modularity_max.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/modularity_max.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..16636500607aec90c68baf40da3c2fa3adac4de8 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/modularity_max.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/quality.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/quality.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8fadaebb5d7ab563f936ffdf0ffc48c32312b531 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/__pycache__/quality.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/asyn_fluid.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/asyn_fluid.py new file mode 100644 index 0000000000000000000000000000000000000000..47a4dfcaa36ac5136d582ae28d92ee9210d90286 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/asyn_fluid.py @@ -0,0 +1,153 @@ +"""Asynchronous Fluid Communities algorithm for community detection.""" + +from collections import Counter + +import networkx as nx +from networkx.algorithms.components import is_connected +from networkx.exception import NetworkXError +from networkx.utils import groups, not_implemented_for, py_random_state + +__all__ = ["asyn_fluidc"] + + +@not_implemented_for("directed") +@not_implemented_for("multigraph") +@py_random_state(3) +@nx._dispatchable +def asyn_fluidc(G, k, max_iter=100, seed=None): + """Returns communities in `G` as detected by Fluid Communities algorithm. + + The asynchronous fluid communities algorithm is described in + [1]_. The algorithm is based on the simple idea of fluids interacting + in an environment, expanding and pushing each other. Its initialization is + random, so found communities may vary on different executions. + + The algorithm proceeds as follows. First each of the initial k communities + is initialized in a random vertex in the graph. Then the algorithm iterates + over all vertices in a random order, updating the community of each vertex + based on its own community and the communities of its neighbors. This + process is performed several times until convergence. + At all times, each community has a total density of 1, which is equally + distributed among the vertices it contains. If a vertex changes of + community, vertex densities of affected communities are adjusted + immediately. When a complete iteration over all vertices is done, such that + no vertex changes the community it belongs to, the algorithm has converged + and returns. + + This is the original version of the algorithm described in [1]_. + Unfortunately, it does not support weighted graphs yet. + + Parameters + ---------- + G : NetworkX graph + Graph must be simple and undirected. + + k : integer + The number of communities to be found. + + max_iter : integer + The number of maximum iterations allowed. By default 100. + + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + + Returns + ------- + communities : iterable + Iterable of communities given as sets of nodes. + + Notes + ----- + k variable is not an optional argument. + + References + ---------- + .. [1] Parés F., Garcia-Gasulla D. et al. "Fluid Communities: A + Competitive and Highly Scalable Community Detection Algorithm". + [https://arxiv.org/pdf/1703.09307.pdf]. + """ + # Initial checks + if not isinstance(k, int): + raise NetworkXError("k must be an integer.") + if not k > 0: + raise NetworkXError("k must be greater than 0.") + if not is_connected(G): + raise NetworkXError("Fluid Communities require connected Graphs.") + if len(G) < k: + raise NetworkXError("k cannot be bigger than the number of nodes.") + if max_iter <= 0: + msg = f"{max_iter=} must be greater than 0" + raise ValueError(msg) + # Initialization + max_density = 1.0 + vertices = list(G) + seed.shuffle(vertices) + communities = {n: i for i, n in enumerate(vertices[:k])} + density = {} + com_to_numvertices = {} + for vertex in communities: + com_to_numvertices[communities[vertex]] = 1 + density[communities[vertex]] = max_density + # Set up control variables and start iterating + iter_count = 0 + cont = True + while cont and iter_count < max_iter: + cont = False + iter_count += 1 + # Loop over all vertices in graph in a random order + vertices = list(G) + seed.shuffle(vertices) + for vertex in vertices: + # Updating rule + com_counter = Counter() + # Take into account self vertex community + try: + com_counter.update({communities[vertex]: density[communities[vertex]]}) + except KeyError: + pass + # Gather neighbor vertex communities + for v in G[vertex]: + try: + com_counter.update({communities[v]: density[communities[v]]}) + except KeyError: + continue + # Check which is the community with highest density + new_com = -1 + if len(com_counter.keys()) > 0: + max_freq = max(com_counter.values()) + best_communities = [ + com + for com, freq in com_counter.items() + if (max_freq - freq) < 0.0001 + ] + # If actual vertex com in best communities, it is preserved + try: + if communities[vertex] in best_communities: + new_com = communities[vertex] + except KeyError: + pass + + # If vertex community changes... + if new_com == -1: + # Set flag of non-convergence + cont = True + # Randomly chose a new community from candidates + new_com = seed.choice(best_communities) + # Update previous community status + try: + com_to_numvertices[communities[vertex]] -= 1 + density[communities[vertex]] = ( + max_density / com_to_numvertices[communities[vertex]] + ) + except KeyError: + pass + # Update new community status + communities[vertex] = new_com + com_to_numvertices[communities[vertex]] += 1 + density[communities[vertex]] = ( + max_density / com_to_numvertices[communities[vertex]] + ) + # If maximum iterations reached --> output actual results + # Return results by grouping communities as list of vertices + return iter(groups(communities).values()) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/community_utils.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/community_utils.py new file mode 100644 index 0000000000000000000000000000000000000000..ba73a6b30b28410b49babd8f996927a43931124d --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/community_utils.py @@ -0,0 +1,30 @@ +"""Helper functions for community-finding algorithms.""" + +import networkx as nx + +__all__ = ["is_partition"] + + +@nx._dispatchable +def is_partition(G, communities): + """Returns *True* if `communities` is a partition of the nodes of `G`. + + A partition of a universe set is a family of pairwise disjoint sets + whose union is the entire universe set. + + Parameters + ---------- + G : NetworkX graph. + + communities : list or iterable of sets of nodes + If not a list, the iterable is converted internally to a list. + If it is an iterator it is exhausted. + + """ + # Alternate implementation: + # return all(sum(1 if v in c else 0 for c in communities) == 1 for v in G) + if not isinstance(communities, list): + communities = list(communities) + nodes = {n for c in communities for n in c if n in G} + + return len(G) == len(nodes) == sum(len(c) for c in communities) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/divisive.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/divisive.py new file mode 100644 index 0000000000000000000000000000000000000000..be3c7d863e9d28f6e9c56faea4a60a640f8892bb --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/divisive.py @@ -0,0 +1,216 @@ +import functools + +import networkx as nx + +__all__ = [ + "edge_betweenness_partition", + "edge_current_flow_betweenness_partition", +] + + +@nx._dispatchable(edge_attrs="weight") +def edge_betweenness_partition(G, number_of_sets, *, weight=None): + """Partition created by iteratively removing the highest edge betweenness edge. + + This algorithm works by calculating the edge betweenness for all + edges and removing the edge with the highest value. It is then + determined whether the graph has been broken into at least + `number_of_sets` connected components. + If not the process is repeated. + + Parameters + ---------- + G : NetworkX Graph, DiGraph or MultiGraph + Graph to be partitioned + + number_of_sets : int + Number of sets in the desired partition of the graph + + weight : key, optional, default=None + The key to use if using weights for edge betweenness calculation + + Returns + ------- + C : list of sets + Partition of the nodes of G + + Raises + ------ + NetworkXError + If number_of_sets is <= 0 or if number_of_sets > len(G) + + Examples + -------- + >>> G = nx.karate_club_graph() + >>> part = nx.community.edge_betweenness_partition(G, 2) + >>> {0, 1, 3, 4, 5, 6, 7, 10, 11, 12, 13, 16, 17, 19, 21} in part + True + >>> { + ... 2, + ... 8, + ... 9, + ... 14, + ... 15, + ... 18, + ... 20, + ... 22, + ... 23, + ... 24, + ... 25, + ... 26, + ... 27, + ... 28, + ... 29, + ... 30, + ... 31, + ... 32, + ... 33, + ... } in part + True + + See Also + -------- + edge_current_flow_betweenness_partition + + Notes + ----- + This algorithm is fairly slow, as both the calculation of connected + components and edge betweenness relies on all pairs shortest + path algorithms. They could potentially be combined to cut down + on overall computation time. + + References + ---------- + .. [1] Santo Fortunato 'Community Detection in Graphs' Physical Reports + Volume 486, Issue 3-5 p. 75-174 + http://arxiv.org/abs/0906.0612 + """ + if number_of_sets <= 0: + raise nx.NetworkXError("number_of_sets must be >0") + if number_of_sets == 1: + return [set(G)] + if number_of_sets == len(G): + return [{n} for n in G] + if number_of_sets > len(G): + raise nx.NetworkXError("number_of_sets must be <= len(G)") + + H = G.copy() + partition = list(nx.connected_components(H)) + while len(partition) < number_of_sets: + ranking = nx.edge_betweenness_centrality(H, weight=weight) + edge = max(ranking, key=ranking.get) + H.remove_edge(*edge) + partition = list(nx.connected_components(H)) + return partition + + +@nx._dispatchable(edge_attrs="weight") +def edge_current_flow_betweenness_partition(G, number_of_sets, *, weight=None): + """Partition created by removing the highest edge current flow betweenness edge. + + This algorithm works by calculating the edge current flow + betweenness for all edges and removing the edge with the + highest value. It is then determined whether the graph has + been broken into at least `number_of_sets` connected + components. If not the process is repeated. + + Parameters + ---------- + G : NetworkX Graph, DiGraph or MultiGraph + Graph to be partitioned + + number_of_sets : int + Number of sets in the desired partition of the graph + + weight : key, optional (default=None) + The edge attribute key to use as weights for + edge current flow betweenness calculations + + Returns + ------- + C : list of sets + Partition of G + + Raises + ------ + NetworkXError + If number_of_sets is <= 0 or number_of_sets > len(G) + + Examples + -------- + >>> G = nx.karate_club_graph() + >>> part = nx.community.edge_current_flow_betweenness_partition(G, 2) + >>> {0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 16, 17, 19, 21} in part + True + >>> {8, 14, 15, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33} in part + True + + + See Also + -------- + edge_betweenness_partition + + Notes + ----- + This algorithm is extremely slow, as the recalculation of the edge + current flow betweenness is extremely slow. + + References + ---------- + .. [1] Santo Fortunato 'Community Detection in Graphs' Physical Reports + Volume 486, Issue 3-5 p. 75-174 + http://arxiv.org/abs/0906.0612 + """ + if number_of_sets <= 0: + raise nx.NetworkXError("number_of_sets must be >0") + elif number_of_sets == 1: + return [set(G)] + elif number_of_sets == len(G): + return [{n} for n in G] + elif number_of_sets > len(G): + raise nx.NetworkXError("number_of_sets must be <= len(G)") + + rank = functools.partial( + nx.edge_current_flow_betweenness_centrality, normalized=False, weight=weight + ) + + # current flow requires a connected network so we track the components explicitly + H = G.copy() + partition = list(nx.connected_components(H)) + if len(partition) > 1: + Hcc_subgraphs = [H.subgraph(cc).copy() for cc in partition] + else: + Hcc_subgraphs = [H] + + ranking = {} + for Hcc in Hcc_subgraphs: + ranking.update(rank(Hcc)) + + while len(partition) < number_of_sets: + edge = max(ranking, key=ranking.get) + for cc, Hcc in zip(partition, Hcc_subgraphs): + if edge[0] in cc: + Hcc.remove_edge(*edge) + del ranking[edge] + splitcc_list = list(nx.connected_components(Hcc)) + if len(splitcc_list) > 1: + # there are 2 connected components. split off smaller one + cc_new = min(splitcc_list, key=len) + Hcc_new = Hcc.subgraph(cc_new).copy() + # update edge rankings for Hcc_new + newranks = rank(Hcc_new) + for e, r in newranks.items(): + ranking[e if e in ranking else e[::-1]] = r + # append new cc and Hcc to their lists. + partition.append(cc_new) + Hcc_subgraphs.append(Hcc_new) + + # leave existing cc and Hcc in their lists, but shrink them + Hcc.remove_nodes_from(cc_new) + cc.difference_update(cc_new) + # update edge rankings for Hcc whether it was split or not + newranks = rank(Hcc) + for e, r in newranks.items(): + ranking[e if e in ranking else e[::-1]] = r + break + return partition diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/kclique.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/kclique.py new file mode 100644 index 0000000000000000000000000000000000000000..c72491042046b6f79ba5c7cb4a90ac8822491d84 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/kclique.py @@ -0,0 +1,79 @@ +from collections import defaultdict + +import networkx as nx + +__all__ = ["k_clique_communities"] + + +@nx._dispatchable +def k_clique_communities(G, k, cliques=None): + """Find k-clique communities in graph using the percolation method. + + A k-clique community is the union of all cliques of size k that + can be reached through adjacent (sharing k-1 nodes) k-cliques. + + Parameters + ---------- + G : NetworkX graph + + k : int + Size of smallest clique + + cliques: list or generator + Precomputed cliques (use networkx.find_cliques(G)) + + Returns + ------- + Yields sets of nodes, one for each k-clique community. + + Examples + -------- + >>> G = nx.complete_graph(5) + >>> K5 = nx.convert_node_labels_to_integers(G, first_label=2) + >>> G.add_edges_from(K5.edges()) + >>> c = list(nx.community.k_clique_communities(G, 4)) + >>> sorted(list(c[0])) + [0, 1, 2, 3, 4, 5, 6] + >>> list(nx.community.k_clique_communities(G, 6)) + [] + + References + ---------- + .. [1] Gergely Palla, Imre Derényi, Illés Farkas1, and Tamás Vicsek, + Uncovering the overlapping community structure of complex networks + in nature and society Nature 435, 814-818, 2005, + doi:10.1038/nature03607 + """ + if k < 2: + raise nx.NetworkXError(f"k={k}, k must be greater than 1.") + if cliques is None: + cliques = nx.find_cliques(G) + cliques = [frozenset(c) for c in cliques if len(c) >= k] + + # First index which nodes are in which cliques + membership_dict = defaultdict(list) + for clique in cliques: + for node in clique: + membership_dict[node].append(clique) + + # For each clique, see which adjacent cliques percolate + perc_graph = nx.Graph() + perc_graph.add_nodes_from(cliques) + for clique in cliques: + for adj_clique in _get_adjacent_cliques(clique, membership_dict): + if len(clique.intersection(adj_clique)) >= (k - 1): + perc_graph.add_edge(clique, adj_clique) + + # Connected components of clique graph with perc edges + # are the percolated cliques + for component in nx.connected_components(perc_graph): + yield (frozenset.union(*component)) + + +def _get_adjacent_cliques(clique, membership_dict): + adjacent_cliques = set() + for n in clique: + for adj_clique in membership_dict[n]: + if clique != adj_clique: + adjacent_cliques.add(adj_clique) + return adjacent_cliques diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/label_propagation.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/label_propagation.py new file mode 100644 index 0000000000000000000000000000000000000000..7488028655af419c617bd3573b98071e012c4eda --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/label_propagation.py @@ -0,0 +1,338 @@ +""" +Label propagation community detection algorithms. +""" + +from collections import Counter, defaultdict, deque + +import networkx as nx +from networkx.utils import groups, not_implemented_for, py_random_state + +__all__ = [ + "label_propagation_communities", + "asyn_lpa_communities", + "fast_label_propagation_communities", +] + + +@py_random_state("seed") +@nx._dispatchable(edge_attrs="weight") +def fast_label_propagation_communities(G, *, weight=None, seed=None): + """Returns communities in `G` as detected by fast label propagation. + + The fast label propagation algorithm is described in [1]_. The algorithm is + probabilistic and the found communities may vary in different executions. + + The algorithm operates as follows. First, the community label of each node is + set to a unique label. The algorithm then repeatedly updates the labels of + the nodes to the most frequent label in their neighborhood. In case of ties, + a random label is chosen from the most frequent labels. + + The algorithm maintains a queue of nodes that still need to be processed. + Initially, all nodes are added to the queue in a random order. Then the nodes + are removed from the queue one by one and processed. If a node updates its label, + all its neighbors that have a different label are added to the queue (if not + already in the queue). The algorithm stops when the queue is empty. + + Parameters + ---------- + G : Graph, DiGraph, MultiGraph, or MultiDiGraph + Any NetworkX graph. + + weight : string, or None (default) + The edge attribute representing a non-negative weight of an edge. If None, + each edge is assumed to have weight one. The weight of an edge is used in + determining the frequency with which a label appears among the neighbors of + a node (edge with weight `w` is equivalent to `w` unweighted edges). + + seed : integer, random_state, or None (default) + Indicator of random number generation state. See :ref:`Randomness`. + + Returns + ------- + communities : iterable + Iterable of communities given as sets of nodes. + + Notes + ----- + Edge directions are ignored for directed graphs. + Edge weights must be non-negative numbers. + + References + ---------- + .. [1] Vincent A. Traag & Lovro Šubelj. "Large network community detection by + fast label propagation." Scientific Reports 13 (2023): 2701. + https://doi.org/10.1038/s41598-023-29610-z + """ + + # Queue of nodes to be processed. + nodes_queue = deque(G) + seed.shuffle(nodes_queue) + + # Set of nodes in the queue. + nodes_set = set(G) + + # Assign unique label to each node. + comms = {node: i for i, node in enumerate(G)} + + while nodes_queue: + # Remove next node from the queue to process. + node = nodes_queue.popleft() + nodes_set.remove(node) + + # Isolated nodes retain their initial label. + if G.degree(node) > 0: + # Compute frequency of labels in node's neighborhood. + label_freqs = _fast_label_count(G, comms, node, weight) + max_freq = max(label_freqs.values()) + + # Always sample new label from most frequent labels. + comm = seed.choice( + [comm for comm in label_freqs if label_freqs[comm] == max_freq] + ) + + if comms[node] != comm: + comms[node] = comm + + # Add neighbors that have different label to the queue. + for nbr in nx.all_neighbors(G, node): + if comms[nbr] != comm and nbr not in nodes_set: + nodes_queue.append(nbr) + nodes_set.add(nbr) + + yield from groups(comms).values() + + +def _fast_label_count(G, comms, node, weight=None): + """Computes the frequency of labels in the neighborhood of a node. + + Returns a dictionary keyed by label to the frequency of that label. + """ + + if weight is None: + # Unweighted (un)directed simple graph. + if not G.is_multigraph(): + label_freqs = Counter(map(comms.get, nx.all_neighbors(G, node))) + + # Unweighted (un)directed multigraph. + else: + label_freqs = defaultdict(int) + for nbr in G[node]: + label_freqs[comms[nbr]] += len(G[node][nbr]) + + if G.is_directed(): + for nbr in G.pred[node]: + label_freqs[comms[nbr]] += len(G.pred[node][nbr]) + + else: + # Weighted undirected simple/multigraph. + label_freqs = defaultdict(float) + for _, nbr, w in G.edges(node, data=weight, default=1): + label_freqs[comms[nbr]] += w + + # Weighted directed simple/multigraph. + if G.is_directed(): + for nbr, _, w in G.in_edges(node, data=weight, default=1): + label_freqs[comms[nbr]] += w + + return label_freqs + + +@py_random_state(2) +@nx._dispatchable(edge_attrs="weight") +def asyn_lpa_communities(G, weight=None, seed=None): + """Returns communities in `G` as detected by asynchronous label + propagation. + + The asynchronous label propagation algorithm is described in + [1]_. The algorithm is probabilistic and the found communities may + vary on different executions. + + The algorithm proceeds as follows. After initializing each node with + a unique label, the algorithm repeatedly sets the label of a node to + be the label that appears most frequently among that nodes + neighbors. The algorithm halts when each node has the label that + appears most frequently among its neighbors. The algorithm is + asynchronous because each node is updated without waiting for + updates on the remaining nodes. + + This generalized version of the algorithm in [1]_ accepts edge + weights. + + Parameters + ---------- + G : Graph + + weight : string + The edge attribute representing the weight of an edge. + If None, each edge is assumed to have weight one. In this + algorithm, the weight of an edge is used in determining the + frequency with which a label appears among the neighbors of a + node: a higher weight means the label appears more often. + + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + + Returns + ------- + communities : iterable + Iterable of communities given as sets of nodes. + + Notes + ----- + Edge weight attributes must be numerical. + + References + ---------- + .. [1] Raghavan, Usha Nandini, Réka Albert, and Soundar Kumara. "Near + linear time algorithm to detect community structures in large-scale + networks." Physical Review E 76.3 (2007): 036106. + """ + + labels = {n: i for i, n in enumerate(G)} + cont = True + + while cont: + cont = False + nodes = list(G) + seed.shuffle(nodes) + + for node in nodes: + if not G[node]: + continue + + # Get label frequencies among adjacent nodes. + # Depending on the order they are processed in, + # some nodes will be in iteration t and others in t-1, + # making the algorithm asynchronous. + if weight is None: + # initialising a Counter from an iterator of labels is + # faster for getting unweighted label frequencies + label_freq = Counter(map(labels.get, G[node])) + else: + # updating a defaultdict is substantially faster + # for getting weighted label frequencies + label_freq = defaultdict(float) + for _, v, wt in G.edges(node, data=weight, default=1): + label_freq[labels[v]] += wt + + # Get the labels that appear with maximum frequency. + max_freq = max(label_freq.values()) + best_labels = [ + label for label, freq in label_freq.items() if freq == max_freq + ] + + # If the node does not have one of the maximum frequency labels, + # randomly choose one of them and update the node's label. + # Continue the iteration as long as at least one node + # doesn't have a maximum frequency label. + if labels[node] not in best_labels: + labels[node] = seed.choice(best_labels) + cont = True + + yield from groups(labels).values() + + +@not_implemented_for("directed") +@nx._dispatchable +def label_propagation_communities(G): + """Generates community sets determined by label propagation + + Finds communities in `G` using a semi-synchronous label propagation + method [1]_. This method combines the advantages of both the synchronous + and asynchronous models. Not implemented for directed graphs. + + Parameters + ---------- + G : graph + An undirected NetworkX graph. + + Returns + ------- + communities : iterable + A dict_values object that contains a set of nodes for each community. + + Raises + ------ + NetworkXNotImplemented + If the graph is directed + + References + ---------- + .. [1] Cordasco, G., & Gargano, L. (2010, December). Community detection + via semi-synchronous label propagation algorithms. In Business + Applications of Social Network Analysis (BASNA), 2010 IEEE International + Workshop on (pp. 1-8). IEEE. + """ + coloring = _color_network(G) + # Create a unique label for each node in the graph + labeling = {v: k for k, v in enumerate(G)} + while not _labeling_complete(labeling, G): + # Update the labels of every node with the same color. + for color, nodes in coloring.items(): + for n in nodes: + _update_label(n, labeling, G) + + clusters = defaultdict(set) + for node, label in labeling.items(): + clusters[label].add(node) + return clusters.values() + + +def _color_network(G): + """Colors the network so that neighboring nodes all have distinct colors. + + Returns a dict keyed by color to a set of nodes with that color. + """ + coloring = {} # color => set(node) + colors = nx.coloring.greedy_color(G) + for node, color in colors.items(): + if color in coloring: + coloring[color].add(node) + else: + coloring[color] = {node} + return coloring + + +def _labeling_complete(labeling, G): + """Determines whether or not LPA is done. + + Label propagation is complete when all nodes have a label that is + in the set of highest frequency labels amongst its neighbors. + + Nodes with no neighbors are considered complete. + """ + return all( + labeling[v] in _most_frequent_labels(v, labeling, G) for v in G if len(G[v]) > 0 + ) + + +def _most_frequent_labels(node, labeling, G): + """Returns a set of all labels with maximum frequency in `labeling`. + + Input `labeling` should be a dict keyed by node to labels. + """ + if not G[node]: + # Nodes with no neighbors are themselves a community and are labeled + # accordingly, hence the immediate if statement. + return {labeling[node]} + + # Compute the frequencies of all neighbors of node + freqs = Counter(labeling[q] for q in G[node]) + max_freq = max(freqs.values()) + return {label for label, freq in freqs.items() if freq == max_freq} + + +def _update_label(node, labeling, G): + """Updates the label of a node using the Prec-Max tie breaking algorithm + + The algorithm is explained in: 'Community Detection via Semi-Synchronous + Label Propagation Algorithms' Cordasco and Gargano, 2011 + """ + high_labels = _most_frequent_labels(node, labeling, G) + if len(high_labels) == 1: + labeling[node] = high_labels.pop() + elif len(high_labels) > 1: + # Prec-Max + if labeling[node] not in high_labels: + labeling[node] = max(high_labels) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/local.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/local.py new file mode 100644 index 0000000000000000000000000000000000000000..68fc06a0f25823f5be51ff804134a1bfa82a0e07 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/local.py @@ -0,0 +1,220 @@ +""" +Local Community Detection Algorithms + +Local Community Detection (LCD) aims to detected one or a few communities +starting from certain source nodes in the network. This differs from Global +Community Detection (GCD), which aims to partition an entire network into +communities. + +LCD is often useful when only a portion of the graph is known or the +graph is large enough that GCD is infeasable + +[1]_ Gives a good introduction and overview of LCD + +References +---------- +.. [1] Baltsou, Georgia, Konstantinos Christopoulos, and Konstantinos Tsichlas. + Local community detection: A survey. IEEE Access 10 (2022): 110701-110726. + https://doi.org/10.1109/ACCESS.2022.3213980 + + +""" + +__all__ = ["greedy_source_expansion"] + + +def _clauset_greedy_source_expansion(G, *, source, cutoff=None): + if cutoff is None: + cutoff = float("inf") + C = {source} + B = {source} + U = G[source].keys() - C + T = {frozenset([node, nbr]) for node in B for nbr in G.neighbors(node)} + I = {edge for edge in T if all(node in C for node in edge)} + + R_value = 0 + while len(C) < cutoff: + if not U: + break + + max_R = 0 + best_node = None + best_node_B = best_node_T = best_node_I = set() + + for v in U: + R_tmp, B_tmp, T_tmp, I_tmp = _calculate_local_modularity_for_candidate( + G, v, C, B, T, I + ) + if R_tmp > max_R: + max_R = R_tmp + best_node = v + best_node_B = B_tmp + best_node_T = T_tmp + best_node_I = I_tmp + + C = C | {best_node} + U.update(G[best_node].keys() - C) + U.remove(best_node) + B = best_node_B + T = best_node_T + I = best_node_I + if max_R < R_value: + break + R_value = max_R + + return C + + +def _calculate_local_modularity_for_candidate(G, v, C, B, T, I): + """ + Compute the local modularity R and updated variables when adding node v to the community. + + Parameters + ---------- + G : NetworkX graph + The input graph. + v : node + The candidate node to add to the community. + C : set + The current set of community nodes. + B : set + The current set of boundary nodes. + T : set of frozenset + The current set of boundary edges. + I : set of frozenset + The current set of internal boundary edges. + + Returns + ------- + R_tmp : float + The local modularity after adding node v. + B_tmp : set + The updated set of boundary nodes. + T_tmp : set of frozenset + The updated set of boundary edges. + I_tmp : set of frozenset + The updated set of internal boundary edges. + """ + C_tmp = C | {v} + B_tmp = B.copy() + T_tmp = T.copy() + I_tmp = I.copy() + removed_B_nodes = set() + + # Update boundary nodes and edges + for nbr in G[v]: + if nbr not in C_tmp: + # v has nbrs not in the community, so it remains a boundary node + B_tmp.add(v) + # Add edge between v and nbr to boundary edges + T_tmp.add(frozenset([v, nbr])) + + if nbr in B: + # Check if nbr should be removed from boundary nodes + # Go through nbrs nbrs to see if it is still a boundary node + nbr_still_in_B = any(nbr_nbr not in C_tmp for nbr_nbr in G[nbr]) + if not nbr_still_in_B: + B_tmp.remove(nbr) + removed_B_nodes.add(nbr) + + if nbr in C_tmp: + # Add edge between v and nbr to internal edges + I_tmp.add(frozenset([v, nbr])) + + # Remove edges no longer in the boundary + for removed_node in removed_B_nodes: + for removed_node_nbr in G[removed_node]: + if removed_node_nbr not in B_tmp: + T_tmp.discard(frozenset([removed_node_nbr, removed_node])) + I_tmp.discard(frozenset([removed_node_nbr, removed_node])) + + R_tmp = len(I_tmp) / len(T_tmp) if len(T_tmp) > 0 else 1 + return R_tmp, B_tmp, T_tmp, I_tmp + + +ALGORITHMS = { + "clauset": _clauset_greedy_source_expansion, +} + + +def greedy_source_expansion(G, *, source, cutoff=None, method="clauset"): + r"""Find the local community around a source node. + + Find the local community around a source node using Greedy Source + Expansion. Greedy Source Expansion generally identifies a local community + starting from the source node and expands it based on the criteria of the + chosen algorithm. + + The algorithm is specified with the `method` keyword argument. + + * `"clauset"` [1]_ uses local modularity gain to determine local communities. + The algorithm adds nbring nodes that maximize local modularity to the + community iteratively, stopping when no additional nodes improve the modularity + or when a predefined cutoff is reached. + + Local modularity measures the density of edges within a community relative + to the total graph. By focusing on local modularity, the algorithm efficiently + uncovers communities around a specific node without requiring global + optimization over the entire graph. + + The algorithm assumes that the graph $G$ consists of a known community $C$ and + an unknown set of nodes $U$, which are adjacent to $C$ . The boundary of the + community $B$, consists of nodes in $C$ that have at least one nbr in $U$. + + Mathematically, the local modularity is expressed as: + + .. math:: + R = \frac{I}{T} + + where $T$ is the number of edges with one or more endpoints in $B$, and $I$ is the + number of those edges with neither endpoint in $U$. + + Parameters + ---------- + G : NetworkX graph + The input graph. + + source : node + The source node from which the community expansion begins. + + cutoff : int, optional (default=None) + The maximum number of nodes to include in the community. If None, the algorithm + expands until no further modularity gain can be made. + + method : string, optional (default='clauset') + The algorithm to use to carry out greedy source expansion. + Supported options: 'clauset'. Other inputs produce a ValueError + + Returns + ------- + set + A set of nodes representing the local community around the source node. + + Examples + -------- + >>> G = nx.karate_club_graph() + >>> nx.community.greedy_source_expansion(G, source=16) + {16, 0, 4, 5, 6, 10} + + Notes + ----- + This algorithm is designed for detecting local communities around a specific node, + which is useful for large networks where global community detection is computationally + expensive. + + The result of the algorithm may vary based on the structure of the graph, the choice of + the source node, and the presence of ties between nodes during the greedy expansion process. + + References + ---------- + .. [1] Clauset, Aaron. Finding local community structure in networks. + Physical Review E—Statistical, Nonlinear, and Soft Matter Physics 72, no. 2 (2005): 026132. + https://arxiv.org/pdf/physics/0503036 + + """ + try: + algo = ALGORITHMS[method] + except KeyError as e: + raise ValueError(f"{method} is not a valid choice for an algorithm.") from e + + return algo(G, source=source, cutoff=cutoff) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/louvain.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/louvain.py new file mode 100644 index 0000000000000000000000000000000000000000..c8407a8acabadb7df04268d0489337392773e557 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/louvain.py @@ -0,0 +1,384 @@ +"""Functions for detecting communities based on Louvain Community Detection +Algorithm""" + +import itertools +from collections import defaultdict, deque + +import networkx as nx +from networkx.algorithms.community import modularity +from networkx.utils import py_random_state + +__all__ = ["louvain_communities", "louvain_partitions"] + + +@py_random_state("seed") +@nx._dispatchable(edge_attrs="weight") +def louvain_communities( + G, weight="weight", resolution=1, threshold=0.0000001, max_level=None, seed=None +): + r"""Find the best partition of a graph using the Louvain Community Detection + Algorithm. + + Louvain Community Detection Algorithm is a simple method to extract the community + structure of a network. This is a heuristic method based on modularity optimization. [1]_ + + The algorithm works in 2 steps. On the first step it assigns every node to be + in its own community and then for each node it tries to find the maximum positive + modularity gain by moving each node to all of its neighbor communities. If no positive + gain is achieved the node remains in its original community. + + The modularity gain obtained by moving an isolated node $i$ into a community $C$ can + easily be calculated by the following formula (combining [1]_ [2]_ and some algebra): + + .. math:: + \Delta Q = \frac{k_{i,in}}{2m} - \gamma\frac{ \Sigma_{tot} \cdot k_i}{2m^2} + + where $m$ is the size of the graph, $k_{i,in}$ is the sum of the weights of the links + from $i$ to nodes in $C$, $k_i$ is the sum of the weights of the links incident to node $i$, + $\Sigma_{tot}$ is the sum of the weights of the links incident to nodes in $C$ and $\gamma$ + is the resolution parameter. + + For the directed case the modularity gain can be computed using this formula according to [3]_ + + .. math:: + \Delta Q = \frac{k_{i,in}}{m} + - \gamma\frac{k_i^{out} \cdot\Sigma_{tot}^{in} + k_i^{in} \cdot \Sigma_{tot}^{out}}{m^2} + + where $k_i^{out}$, $k_i^{in}$ are the outer and inner weighted degrees of node $i$ and + $\Sigma_{tot}^{in}$, $\Sigma_{tot}^{out}$ are the sum of in-going and out-going links incident + to nodes in $C$. + + The first phase continues until no individual move can improve the modularity. + + The second phase consists in building a new network whose nodes are now the communities + found in the first phase. To do so, the weights of the links between the new nodes are given by + the sum of the weight of the links between nodes in the corresponding two communities. Once this + phase is complete it is possible to reapply the first phase creating bigger communities with + increased modularity. + + The above two phases are executed until no modularity gain is achieved (or is less than + the `threshold`, or until `max_levels` is reached). + + Be careful with self-loops in the input graph. These are treated as + previously reduced communities -- as if the process had been started + in the middle of the algorithm. Large self-loop edge weights thus + represent strong communities and in practice may be hard to add + other nodes to. If your input graph edge weights for self-loops + do not represent already reduced communities you may want to remove + the self-loops before inputting that graph. + + Parameters + ---------- + G : NetworkX graph + weight : string or None, optional (default="weight") + The name of an edge attribute that holds the numerical value + used as a weight. If None then each edge has weight 1. + resolution : float, optional (default=1) + If resolution is less than 1, the algorithm favors larger communities. + Greater than 1 favors smaller communities + threshold : float, optional (default=0.0000001) + Modularity gain threshold for each level. If the gain of modularity + between 2 levels of the algorithm is less than the given threshold + then the algorithm stops and returns the resulting communities. + max_level : int or None, optional (default=None) + The maximum number of levels (steps of the algorithm) to compute. + Must be a positive integer or None. If None, then there is no max + level and the threshold parameter determines the stopping condition. + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + + Returns + ------- + list + A list of sets (partition of `G`). Each set represents one community and contains + all the nodes that constitute it. + + Examples + -------- + >>> import networkx as nx + >>> G = nx.petersen_graph() + >>> nx.community.louvain_communities(G, seed=123) + [{0, 4, 5, 7, 9}, {1, 2, 3, 6, 8}] + + Notes + ----- + The order in which the nodes are considered can affect the final output. In the algorithm + the ordering happens using a random shuffle. + + References + ---------- + .. [1] Blondel, V.D. et al. Fast unfolding of communities in + large networks. J. Stat. Mech 10008, 1-12(2008). https://doi.org/10.1088/1742-5468/2008/10/P10008 + .. [2] Traag, V.A., Waltman, L. & van Eck, N.J. From Louvain to Leiden: guaranteeing + well-connected communities. Sci Rep 9, 5233 (2019). https://doi.org/10.1038/s41598-019-41695-z + .. [3] Nicolas Dugué, Anthony Perez. Directed Louvain : maximizing modularity in directed networks. + [Research Report] Université d’Orléans. 2015. hal-01231784. https://hal.archives-ouvertes.fr/hal-01231784 + + See Also + -------- + louvain_partitions + :any:`leiden_communities` + """ + + partitions = louvain_partitions(G, weight, resolution, threshold, seed) + if max_level is not None: + if max_level <= 0: + raise ValueError("max_level argument must be a positive integer or None") + partitions = itertools.islice(partitions, max_level) + final_partition = deque(partitions, maxlen=1) + return final_partition.pop() + + +@py_random_state("seed") +@nx._dispatchable(edge_attrs="weight") +def louvain_partitions( + G, weight="weight", resolution=1, threshold=0.0000001, seed=None +): + """Yield partitions for each level of the Louvain Community Detection Algorithm + + Louvain Community Detection Algorithm is a simple method to extract the community + structure of a network. This is a heuristic method based on modularity optimization. [1]_ + + The partitions at each level (step of the algorithm) form a dendrogram of communities. + A dendrogram is a diagram representing a tree and each level represents + a partition of the G graph. The top level contains the smallest communities + and as you traverse to the bottom of the tree the communities get bigger + and the overall modularity increases making the partition better. + + Each level is generated by executing the two phases of the Louvain Community + Detection Algorithm. + + Be careful with self-loops in the input graph. These are treated as + previously reduced communities -- as if the process had been started + in the middle of the algorithm. Large self-loop edge weights thus + represent strong communities and in practice may be hard to add + other nodes to. If your input graph edge weights for self-loops + do not represent already reduced communities you may want to remove + the self-loops before inputting that graph. + + Parameters + ---------- + G : NetworkX graph + weight : string or None, optional (default="weight") + The name of an edge attribute that holds the numerical value + used as a weight. If None then each edge has weight 1. + resolution : float, optional (default=1) + If resolution is less than 1, the algorithm favors larger communities. + Greater than 1 favors smaller communities + threshold : float, optional (default=0.0000001) + Modularity gain threshold for each level. If the gain of modularity + between 2 levels of the algorithm is less than the given threshold + then the algorithm stops and returns the resulting communities. + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + + Yields + ------ + list + A list of sets (partition of `G`). Each set represents one community and contains + all the nodes that constitute it. + + References + ---------- + .. [1] Blondel, V.D. et al. Fast unfolding of communities in + large networks. J. Stat. Mech 10008, 1-12(2008) + + See Also + -------- + louvain_communities + :any:`leiden_partitions` + """ + + partition = [{u} for u in G.nodes()] + if nx.is_empty(G): + yield partition + return + mod = modularity(G, partition, resolution=resolution, weight=weight) + is_directed = G.is_directed() + if G.is_multigraph(): + graph = _convert_multigraph(G, weight, is_directed) + else: + graph = G.__class__() + graph.add_nodes_from(G) + graph.add_weighted_edges_from(G.edges(data=weight, default=1)) + + m = graph.size(weight="weight") + partition, inner_partition, improvement = _one_level( + graph, m, partition, resolution, is_directed, seed + ) + improvement = True + while improvement: + # gh-5901 protect the sets in the yielded list from further manipulation here + yield [s.copy() for s in partition] + new_mod = modularity( + graph, inner_partition, resolution=resolution, weight="weight" + ) + if new_mod - mod <= threshold: + return + mod = new_mod + graph = _gen_graph(graph, inner_partition) + partition, inner_partition, improvement = _one_level( + graph, m, partition, resolution, is_directed, seed + ) + + +def _one_level(G, m, partition, resolution=1, is_directed=False, seed=None): + """Calculate one level of the Louvain partitions tree + + Parameters + ---------- + G : NetworkX Graph/DiGraph + The graph from which to detect communities + m : number + The size of the graph `G`. + partition : list of sets of nodes + A valid partition of the graph `G` + resolution : positive number + The resolution parameter for computing the modularity of a partition + is_directed : bool + True if `G` is a directed graph. + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + + """ + node2com = {u: i for i, u in enumerate(G.nodes())} + inner_partition = [{u} for u in G.nodes()] + if is_directed: + in_degrees = dict(G.in_degree(weight="weight")) + out_degrees = dict(G.out_degree(weight="weight")) + Stot_in = list(in_degrees.values()) + Stot_out = list(out_degrees.values()) + # Calculate weights for both in and out neighbors without considering self-loops + nbrs = {} + for u in G: + nbrs[u] = defaultdict(float) + for _, n, wt in G.out_edges(u, data="weight"): + if u != n: + nbrs[u][n] += wt + for n, _, wt in G.in_edges(u, data="weight"): + if u != n: + nbrs[u][n] += wt + else: + degrees = dict(G.degree(weight="weight")) + Stot = list(degrees.values()) + nbrs = {u: {v: data["weight"] for v, data in G[u].items() if v != u} for u in G} + rand_nodes = list(G.nodes) + seed.shuffle(rand_nodes) + nb_moves = 1 + improvement = False + while nb_moves > 0: + nb_moves = 0 + for u in rand_nodes: + best_mod = 0 + best_com = node2com[u] + weights2com = _neighbor_weights(nbrs[u], node2com) + if is_directed: + in_degree = in_degrees[u] + out_degree = out_degrees[u] + Stot_in[best_com] -= in_degree + Stot_out[best_com] -= out_degree + remove_cost = ( + -weights2com[best_com] / m + + resolution + * (out_degree * Stot_in[best_com] + in_degree * Stot_out[best_com]) + / m**2 + ) + else: + degree = degrees[u] + Stot[best_com] -= degree + remove_cost = -weights2com[best_com] / m + resolution * ( + Stot[best_com] * degree + ) / (2 * m**2) + for nbr_com, wt in weights2com.items(): + if is_directed: + gain = ( + remove_cost + + wt / m + - resolution + * ( + out_degree * Stot_in[nbr_com] + + in_degree * Stot_out[nbr_com] + ) + / m**2 + ) + else: + gain = ( + remove_cost + + wt / m + - resolution * (Stot[nbr_com] * degree) / (2 * m**2) + ) + if gain > best_mod: + best_mod = gain + best_com = nbr_com + if is_directed: + Stot_in[best_com] += in_degree + Stot_out[best_com] += out_degree + else: + Stot[best_com] += degree + if best_com != node2com[u]: + com = G.nodes[u].get("nodes", {u}) + partition[node2com[u]].difference_update(com) + inner_partition[node2com[u]].remove(u) + partition[best_com].update(com) + inner_partition[best_com].add(u) + improvement = True + nb_moves += 1 + node2com[u] = best_com + partition = list(filter(len, partition)) + inner_partition = list(filter(len, inner_partition)) + return partition, inner_partition, improvement + + +def _neighbor_weights(nbrs, node2com): + """Calculate weights between node and its neighbor communities. + + Parameters + ---------- + nbrs : dictionary + Dictionary with nodes' neighbors as keys and their edge weight as value. + node2com : dictionary + Dictionary with all graph's nodes as keys and their community index as value. + + """ + weights = defaultdict(float) + for nbr, wt in nbrs.items(): + weights[node2com[nbr]] += wt + return weights + + +def _gen_graph(G, partition): + """Generate a new graph based on the partitions of a given graph""" + H = G.__class__() + node2com = {} + for i, part in enumerate(partition): + nodes = set() + for node in part: + node2com[node] = i + nodes.update(G.nodes[node].get("nodes", {node})) + H.add_node(i, nodes=nodes) + + for node1, node2, wt in G.edges(data=True): + wt = wt["weight"] + com1 = node2com[node1] + com2 = node2com[node2] + temp = H.get_edge_data(com1, com2, {"weight": 0})["weight"] + H.add_edge(com1, com2, weight=wt + temp) + return H + + +def _convert_multigraph(G, weight, is_directed): + """Convert a Multigraph to normal Graph""" + if is_directed: + H = nx.DiGraph() + else: + H = nx.Graph() + H.add_nodes_from(G) + for u, v, wt in G.edges(data=weight, default=1): + if H.has_edge(u, v): + H[u][v]["weight"] += wt + else: + H.add_edge(u, v, weight=wt) + return H diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/lukes.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/lukes.py new file mode 100644 index 0000000000000000000000000000000000000000..08dd7cd52ff414c1397e3effea504853f3c9caf7 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/lukes.py @@ -0,0 +1,227 @@ +"""Lukes Algorithm for exact optimal weighted tree partitioning.""" + +from copy import deepcopy +from functools import lru_cache +from random import choice + +import networkx as nx +from networkx.utils import not_implemented_for + +__all__ = ["lukes_partitioning"] + +D_EDGE_W = "weight" +D_EDGE_VALUE = 1.0 +D_NODE_W = "weight" +D_NODE_VALUE = 1 +PKEY = "partitions" +CLUSTER_EVAL_CACHE_SIZE = 2048 + + +def _split_n_from(n, min_size_of_first_part): + # splits j in two parts of which the first is at least + # the second argument + assert n >= min_size_of_first_part + for p1 in range(min_size_of_first_part, n + 1): + yield p1, n - p1 + + +@nx._dispatchable(node_attrs="node_weight", edge_attrs="edge_weight") +def lukes_partitioning(G, max_size, node_weight=None, edge_weight=None): + """Optimal partitioning of a weighted tree using the Lukes algorithm. + + This algorithm partitions a connected, acyclic graph featuring integer + node weights and float edge weights. The resulting clusters are such + that the total weight of the nodes in each cluster does not exceed + max_size and that the weight of the edges that are cut by the partition + is minimum. The algorithm is based on [1]_. + + Parameters + ---------- + G : NetworkX graph + + max_size : int + Maximum weight a partition can have in terms of sum of + node_weight for all nodes in the partition + + edge_weight : key + Edge data key to use as weight. If None, the weights are all + set to one. + + node_weight : key + Node data key to use as weight. If None, the weights are all + set to one. The data must be int. + + Returns + ------- + partition : list + A list of sets of nodes representing the clusters of the + partition. + + Raises + ------ + NotATree + If G is not a tree. + TypeError + If any of the values of node_weight is not int. + + References + ---------- + .. [1] Lukes, J. A. (1974). + "Efficient Algorithm for the Partitioning of Trees." + IBM Journal of Research and Development, 18(3), 217–224. + + """ + # First sanity check and tree preparation + if not nx.is_tree(G): + raise nx.NotATree("lukes_partitioning works only on trees") + else: + if nx.is_directed(G): + root = [n for n, d in G.in_degree() if d == 0] + assert len(root) == 1 + root = root[0] + t_G = deepcopy(G) + else: + root = choice(list(G.nodes)) + # this has the desirable side effect of not inheriting attributes + t_G = nx.dfs_tree(G, root) + + # Since we do not want to screw up the original graph, + # if we have a blank attribute, we make a deepcopy + if edge_weight is None or node_weight is None: + safe_G = deepcopy(G) + if edge_weight is None: + nx.set_edge_attributes(safe_G, D_EDGE_VALUE, D_EDGE_W) + edge_weight = D_EDGE_W + if node_weight is None: + nx.set_node_attributes(safe_G, D_NODE_VALUE, D_NODE_W) + node_weight = D_NODE_W + else: + safe_G = G + + # Second sanity check + # The values of node_weight MUST BE int. + # I cannot see any room for duck typing without incurring serious + # danger of subtle bugs. + all_n_attr = nx.get_node_attributes(safe_G, node_weight).values() + for x in all_n_attr: + if not isinstance(x, int): + raise TypeError( + "lukes_partitioning needs integer " + f"values for node_weight ({node_weight})" + ) + + # SUBROUTINES ----------------------- + # these functions are defined here for two reasons: + # - brevity: we can leverage global "safe_G" + # - caching: signatures are hashable + + @not_implemented_for("undirected") + # this is intended to be called only on t_G + def _leaves(gr): + for x in gr.nodes: + if not nx.descendants(gr, x): + yield x + + @not_implemented_for("undirected") + def _a_parent_of_leaves_only(gr): + tleaves = set(_leaves(gr)) + for n in set(gr.nodes) - tleaves: + if all(x in tleaves for x in nx.descendants(gr, n)): + return n + + @lru_cache(CLUSTER_EVAL_CACHE_SIZE) + def _value_of_cluster(cluster): + valid_edges = [e for e in safe_G.edges if e[0] in cluster and e[1] in cluster] + return sum(safe_G.edges[e][edge_weight] for e in valid_edges) + + def _value_of_partition(partition): + return sum(_value_of_cluster(frozenset(c)) for c in partition) + + @lru_cache(CLUSTER_EVAL_CACHE_SIZE) + def _weight_of_cluster(cluster): + return sum(safe_G.nodes[n][node_weight] for n in cluster) + + def _pivot(partition, node): + ccx = [c for c in partition if node in c] + assert len(ccx) == 1 + return ccx[0] + + def _concatenate_or_merge(partition_1, partition_2, x, i, ref_weight): + ccx = _pivot(partition_1, x) + cci = _pivot(partition_2, i) + merged_xi = ccx.union(cci) + + # We first check if we can do the merge. + # If so, we do the actual calculations, otherwise we concatenate + if _weight_of_cluster(frozenset(merged_xi)) <= ref_weight: + cp1 = list(filter(lambda x: x != ccx, partition_1)) + cp2 = list(filter(lambda x: x != cci, partition_2)) + + option_2 = [merged_xi] + cp1 + cp2 + return option_2, _value_of_partition(option_2) + else: + option_1 = partition_1 + partition_2 + return option_1, _value_of_partition(option_1) + + # INITIALIZATION ----------------------- + leaves = set(_leaves(t_G)) + for lv in leaves: + t_G.nodes[lv][PKEY] = {} + slot = safe_G.nodes[lv][node_weight] + t_G.nodes[lv][PKEY][slot] = [{lv}] + t_G.nodes[lv][PKEY][0] = [{lv}] + + for inner in [x for x in t_G.nodes if x not in leaves]: + t_G.nodes[inner][PKEY] = {} + slot = safe_G.nodes[inner][node_weight] + t_G.nodes[inner][PKEY][slot] = [{inner}] + nx._clear_cache(t_G) + + # CORE ALGORITHM ----------------------- + while True: + x_node = _a_parent_of_leaves_only(t_G) + weight_of_x = safe_G.nodes[x_node][node_weight] + best_value = 0 + best_partition = None + bp_buffer = {} + x_descendants = nx.descendants(t_G, x_node) + for i_node in x_descendants: + for j in range(weight_of_x, max_size + 1): + for a, b in _split_n_from(j, weight_of_x): + if ( + a not in t_G.nodes[x_node][PKEY] + or b not in t_G.nodes[i_node][PKEY] + ): + # it's not possible to form this particular weight sum + continue + + part1 = t_G.nodes[x_node][PKEY][a] + part2 = t_G.nodes[i_node][PKEY][b] + part, value = _concatenate_or_merge(part1, part2, x_node, i_node, j) + + if j not in bp_buffer or bp_buffer[j][1] < value: + # we annotate in the buffer the best partition for j + bp_buffer[j] = part, value + + # we also keep track of the overall best partition + if best_value <= value: + best_value = value + best_partition = part + + # as illustrated in Lukes, once we finished a child, we can + # discharge the partitions we found into the graph + # (the key phrase is make all x == x') + # so that they are used by the subsequent children + for w, (best_part_for_vl, vl) in bp_buffer.items(): + t_G.nodes[x_node][PKEY][w] = best_part_for_vl + bp_buffer.clear() + + # the absolute best partition for this node + # across all weights has to be stored at 0 + t_G.nodes[x_node][PKEY][0] = best_partition + t_G.remove_nodes_from(x_descendants) + + if x_node == root: + # the 0-labeled partition of root + # is the optimal one for the whole tree + return t_G.nodes[root][PKEY][0] diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/modularity_max.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/modularity_max.py new file mode 100644 index 0000000000000000000000000000000000000000..ece44c4b839d3ddaffdde5554c09bd9a9a6476f0 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/modularity_max.py @@ -0,0 +1,452 @@ +"""Functions for detecting communities based on modularity.""" + +import random +from collections import defaultdict +from copy import deepcopy + +import networkx as nx +from networkx.algorithms.community.quality import modularity +from networkx.utils.mapped_queue import MappedQueue + +__all__ = [ + "greedy_modularity_communities", + "naive_greedy_modularity_communities", +] + + +def _greedy_modularity_communities_generator(G, weight=None, resolution=1): + r"""Yield community partitions of G and the modularity change at each step. + + This function performs Clauset-Newman-Moore greedy modularity maximization [2]_ + At each step of the process it yields the change in modularity that will occur in + the next step followed by yielding the new community partition after that step. + + Greedy modularity maximization begins with each node in its own community + and repeatedly joins the pair of communities that lead to the largest + modularity until one community contains all nodes (the partition has one set). + + This function maximizes the generalized modularity, where `resolution` + is the resolution parameter, often expressed as $\gamma$. + See :func:`~networkx.algorithms.community.quality.modularity`. + + Parameters + ---------- + G : NetworkX graph + + weight : string or None, optional (default=None) + The name of an edge attribute that holds the numerical value used + as a weight. If None, then each edge has weight 1. + The degree is the sum of the edge weights adjacent to the node. + + resolution : float (default=1) + If resolution is less than 1, modularity favors larger communities. + Greater than 1 favors smaller communities. + + Yields + ------ + Alternating yield statements produce the following two objects: + + communities: dict_values + A dict_values of frozensets of nodes, one for each community. + This represents a partition of the nodes of the graph into communities. + The first yield is the partition with each node in its own community. + + dq: float + The change in modularity when merging the next two communities + that leads to the largest modularity. + + See Also + -------- + modularity + + References + ---------- + .. [1] Newman, M. E. J. "Networks: An Introduction", page 224 + Oxford University Press 2011. + .. [2] Clauset, A., Newman, M. E., & Moore, C. + "Finding community structure in very large networks." + Physical Review E 70(6), 2004. + .. [3] Reichardt and Bornholdt "Statistical Mechanics of Community + Detection" Phys. Rev. E74, 2006. + .. [4] Newman, M. E. J."Analysis of weighted networks" + Physical Review E 70(5 Pt 2):056131, 2004. + """ + directed = G.is_directed() + N = G.number_of_nodes() + + # Count edges (or the sum of edge-weights for weighted graphs) + m = G.size(weight) + q0 = 1 / m + + # Calculate degrees (notation from the papers) + # a : the fraction of (weighted) out-degree for each node + # b : the fraction of (weighted) in-degree for each node + if directed: + a = {node: deg_out * q0 for node, deg_out in G.out_degree(weight=weight)} + b = {node: deg_in * q0 for node, deg_in in G.in_degree(weight=weight)} + else: + a = b = {node: deg * q0 * 0.5 for node, deg in G.degree(weight=weight)} + + # this preliminary step collects the edge weights for each node pair + # It handles multigraph and digraph and works fine for graph. + dq_dict = defaultdict(lambda: defaultdict(float)) + for u, v, wt in G.edges(data=weight, default=1): + if u == v: + continue + dq_dict[u][v] += wt + dq_dict[v][u] += wt + + # now scale and subtract the expected edge-weights term + for u, nbrdict in dq_dict.items(): + for v, wt in nbrdict.items(): + dq_dict[u][v] = q0 * wt - resolution * (a[u] * b[v] + b[u] * a[v]) + + # Use -dq to get a max_heap instead of a min_heap + # dq_heap holds a heap for each node's neighbors + dq_heap = {u: MappedQueue({(u, v): -dq for v, dq in dq_dict[u].items()}) for u in G} + # H -> all_dq_heap holds a heap with the best items for each node + H = MappedQueue([dq_heap[n].heap[0] for n in G if len(dq_heap[n]) > 0]) + + # Initialize single-node communities + communities = {n: frozenset([n]) for n in G} + yield communities.values() + + # Merge the two communities that lead to the largest modularity + while len(H) > 1: + # Find best merge + # Remove from heap of row maxes + # Ties will be broken by choosing the pair with lowest min community id + try: + negdq, u, v = H.pop() + except IndexError: + break + dq = -negdq + yield dq + # Remove best merge from row u heap + dq_heap[u].pop() + # Push new row max onto H + if len(dq_heap[u]) > 0: + H.push(dq_heap[u].heap[0]) + # If this element was also at the root of row v, we need to remove the + # duplicate entry from H + if dq_heap[v].heap[0] == (v, u): + H.remove((v, u)) + # Remove best merge from row v heap + dq_heap[v].remove((v, u)) + # Push new row max onto H + if len(dq_heap[v]) > 0: + H.push(dq_heap[v].heap[0]) + else: + # Duplicate wasn't in H, just remove from row v heap + dq_heap[v].remove((v, u)) + + # Perform merge + communities[v] = frozenset(communities[u] | communities[v]) + del communities[u] + + # Get neighbor communities connected to the merged communities + u_nbrs = set(dq_dict[u]) + v_nbrs = set(dq_dict[v]) + all_nbrs = (u_nbrs | v_nbrs) - {u, v} + both_nbrs = u_nbrs & v_nbrs + # Update dq for merge of u into v + for w in all_nbrs: + # Calculate new dq value + if w in both_nbrs: + dq_vw = dq_dict[v][w] + dq_dict[u][w] + elif w in v_nbrs: + dq_vw = dq_dict[v][w] - resolution * (a[u] * b[w] + a[w] * b[u]) + else: # w in u_nbrs + dq_vw = dq_dict[u][w] - resolution * (a[v] * b[w] + a[w] * b[v]) + # Update rows v and w + for row, col in [(v, w), (w, v)]: + dq_heap_row = dq_heap[row] + # Update dict for v,w only (u is removed below) + dq_dict[row][col] = dq_vw + # Save old max of per-row heap + if len(dq_heap_row) > 0: + d_oldmax = dq_heap_row.heap[0] + else: + d_oldmax = None + # Add/update heaps + d = (row, col) + d_negdq = -dq_vw + # Save old value for finding heap index + if w in v_nbrs: + # Update existing element in per-row heap + dq_heap_row.update(d, d, priority=d_negdq) + else: + # We're creating a new nonzero element, add to heap + dq_heap_row.push(d, priority=d_negdq) + # Update heap of row maxes if necessary + if d_oldmax is None: + # No entries previously in this row, push new max + H.push(d, priority=d_negdq) + else: + # We've updated an entry in this row, has the max changed? + row_max = dq_heap_row.heap[0] + if d_oldmax != row_max or d_oldmax.priority != row_max.priority: + H.update(d_oldmax, row_max) + + # Remove row/col u from dq_dict matrix + for w in dq_dict[u]: + # Remove from dict + dq_old = dq_dict[w][u] + del dq_dict[w][u] + # Remove from heaps if we haven't already + if w != v: + # Remove both row and column + for row, col in [(w, u), (u, w)]: + dq_heap_row = dq_heap[row] + # Check if replaced dq is row max + d_old = (row, col) + if dq_heap_row.heap[0] == d_old: + # Update per-row heap and heap of row maxes + dq_heap_row.remove(d_old) + H.remove(d_old) + # Update row max + if len(dq_heap_row) > 0: + H.push(dq_heap_row.heap[0]) + else: + # Only update per-row heap + dq_heap_row.remove(d_old) + + del dq_dict[u] + # Mark row u as deleted, but keep placeholder + dq_heap[u] = MappedQueue() + # Merge u into v and update a + a[v] += a[u] + a[u] = 0 + if directed: + b[v] += b[u] + b[u] = 0 + + yield communities.values() + + +@nx._dispatchable(edge_attrs="weight") +def greedy_modularity_communities( + G, + weight=None, + resolution=1, + cutoff=1, + best_n=None, +): + r"""Find communities in G using greedy modularity maximization. + + This function uses Clauset-Newman-Moore greedy modularity maximization [2]_ + to find the community partition with the largest modularity. + + Greedy modularity maximization begins with each node in its own community + and repeatedly joins the pair of communities that lead to the largest + modularity until no further increase in modularity is possible (a maximum). + Two keyword arguments adjust the stopping condition. `cutoff` is a lower + limit on the number of communities so you can stop the process before + reaching a maximum (used to save computation time). `best_n` is an upper + limit on the number of communities so you can make the process continue + until at most n communities remain even if the maximum modularity occurs + for more. To obtain exactly n communities, set both `cutoff` and `best_n` to n. + + This function maximizes the generalized modularity, where `resolution` + is the resolution parameter, often expressed as $\gamma$. + See :func:`~networkx.algorithms.community.quality.modularity`. + + Parameters + ---------- + G : NetworkX graph + + weight : string or None, optional (default=None) + The name of an edge attribute that holds the numerical value used + as a weight. If None, then each edge has weight 1. + The degree is the sum of the edge weights adjacent to the node. + + resolution : float, optional (default=1) + If resolution is less than 1, modularity favors larger communities. + Greater than 1 favors smaller communities. + + cutoff : int, optional (default=1) + A minimum number of communities below which the merging process stops. + The process stops at this number of communities even if modularity + is not maximized. The goal is to let the user stop the process early. + The process stops before the cutoff if it finds a maximum of modularity. + + best_n : int or None, optional (default=None) + A maximum number of communities above which the merging process will + not stop. This forces community merging to continue after modularity + starts to decrease until `best_n` communities remain. + If ``None``, don't force it to continue beyond a maximum. + + Raises + ------ + ValueError : If the `cutoff` or `best_n` value is not in the range + ``[1, G.number_of_nodes()]``, or if `best_n` < `cutoff`. + + Returns + ------- + communities: list + A list of frozensets of nodes, one for each community. + Sorted by length with largest communities first. + + Examples + -------- + >>> G = nx.karate_club_graph() + >>> c = nx.community.greedy_modularity_communities(G) + >>> sorted(c[0]) + [8, 14, 15, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33] + + See Also + -------- + modularity + + References + ---------- + .. [1] Newman, M. E. J. "Networks: An Introduction", page 224 + Oxford University Press 2011. + .. [2] Clauset, A., Newman, M. E., & Moore, C. + "Finding community structure in very large networks." + Physical Review E 70(6), 2004. + .. [3] Reichardt and Bornholdt "Statistical Mechanics of Community + Detection" Phys. Rev. E74, 2006. + .. [4] Newman, M. E. J."Analysis of weighted networks" + Physical Review E 70(5 Pt 2):056131, 2004. + """ + if not G.size(): + return [{n} for n in G] + + if (cutoff < 1) or (cutoff > G.number_of_nodes()): + raise ValueError(f"cutoff must be between 1 and {len(G)}. Got {cutoff}.") + if best_n is not None: + if (best_n < 1) or (best_n > G.number_of_nodes()): + raise ValueError(f"best_n must be between 1 and {len(G)}. Got {best_n}.") + if best_n < cutoff: + raise ValueError(f"Must have best_n >= cutoff. Got {best_n} < {cutoff}") + if best_n == 1: + return [set(G)] + else: + best_n = G.number_of_nodes() + + # retrieve generator object to construct output + community_gen = _greedy_modularity_communities_generator( + G, weight=weight, resolution=resolution + ) + + # construct the first best community + communities = next(community_gen) + + # continue merging communities until one of the breaking criteria is satisfied + while len(communities) > cutoff: + try: + dq = next(community_gen) + # StopIteration occurs when communities are the connected components + except StopIteration: + communities = sorted(communities, key=len, reverse=True) + # if best_n requires more merging, merge big sets for highest modularity + while len(communities) > best_n: + comm1, comm2, *rest = communities + communities = [comm1 ^ comm2] + communities.extend(rest) + return communities + + # keep going unless max_mod is reached or best_n says to merge more + if dq < 0 and len(communities) <= best_n: + break + communities = next(community_gen) + + return sorted(communities, key=len, reverse=True) + + +@nx.utils.not_implemented_for("directed") +@nx.utils.not_implemented_for("multigraph") +@nx._dispatchable(edge_attrs="weight") +def naive_greedy_modularity_communities(G, resolution=1, weight=None): + r"""Find communities in G using greedy modularity maximization. + + This implementation is O(n^4), much slower than alternatives, but it is + provided as an easy-to-understand reference implementation. + + Greedy modularity maximization begins with each node in its own community + and joins the pair of communities that most increases modularity until no + such pair exists. + + This function maximizes the generalized modularity, where `resolution` + is the resolution parameter, often expressed as $\gamma$. + See :func:`~networkx.algorithms.community.quality.modularity`. + + Parameters + ---------- + G : NetworkX graph + Graph must be simple and undirected. + + resolution : float (default=1) + If resolution is less than 1, modularity favors larger communities. + Greater than 1 favors smaller communities. + + weight : string or None, optional (default=None) + The name of an edge attribute that holds the numerical value used + as a weight. If None, then each edge has weight 1. + The degree is the sum of the edge weights adjacent to the node. + + Returns + ------- + list + A list of sets of nodes, one for each community. + Sorted by length with largest communities first. + + Examples + -------- + >>> G = nx.karate_club_graph() + >>> c = nx.community.naive_greedy_modularity_communities(G) + >>> sorted(c[0]) + [8, 14, 15, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33] + + See Also + -------- + greedy_modularity_communities + modularity + """ + # First create one community for each node + communities = [frozenset([u]) for u in G.nodes()] + # Track merges + merges = [] + # Greedily merge communities until no improvement is possible + old_modularity = None + new_modularity = modularity(G, communities, resolution=resolution, weight=weight) + while old_modularity is None or new_modularity > old_modularity: + # Save modularity for comparison + old_modularity = new_modularity + # Find best pair to merge + trial_communities = list(communities) + to_merge = None + for i, u in enumerate(communities): + for j, v in enumerate(communities): + # Skip i==j and empty communities + if j <= i or len(u) == 0 or len(v) == 0: + continue + # Merge communities u and v + trial_communities[j] = u | v + trial_communities[i] = frozenset([]) + trial_modularity = modularity( + G, trial_communities, resolution=resolution, weight=weight + ) + if trial_modularity >= new_modularity: + # Check if strictly better or tie + if trial_modularity > new_modularity: + # Found new best, save modularity and group indexes + new_modularity = trial_modularity + to_merge = (i, j, new_modularity - old_modularity) + elif to_merge and min(i, j) < min(to_merge[0], to_merge[1]): + # Break ties by choosing pair with lowest min id + new_modularity = trial_modularity + to_merge = (i, j, new_modularity - old_modularity) + # Un-merge + trial_communities[i] = u + trial_communities[j] = v + if to_merge is not None: + # If the best merge improves modularity, use it + merges.append(to_merge) + i, j, dq = to_merge + u, v = communities[i], communities[j] + communities[j] = u | v + communities[i] = frozenset([]) + # Remove empty communities and sort + return sorted((c for c in communities if len(c) > 0), key=len, reverse=True) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ced438ef21a662f0859140347ff8938c1fb829f9 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_asyn_fluid.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_asyn_fluid.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..df93bc7e2e060094a00f9d61764b288c1de0d32b Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_asyn_fluid.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_bipartitions.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_bipartitions.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..df41505ed76b8c5d2cb9cf9b4461f16a909c8528 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_bipartitions.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_centrality.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_centrality.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..70f9493c678025db3f8fbfce77aff8af6a900b5d Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_centrality.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_divisive.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_divisive.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..181fb074e73cfd449a41e1cbe3d1db59403aca4e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_divisive.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_kclique.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_kclique.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..43b6397fbe5203f4fd137ec3903f4b3de560aac2 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_kclique.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_label_propagation.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_label_propagation.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..819f3a926dd124287b0ea96eb42877926cb4e89c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_label_propagation.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_leiden.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_leiden.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f789d6d1e5e8b23aa05426039ff90a7d605709fe Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_leiden.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_local.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_local.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..df1c15831faa4b70f5dc16d4f6d34ccb6f6e47d0 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_local.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_louvain.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_louvain.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..77f835c3c32ee3f78a2e30c175582cac3d4b190f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_louvain.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_lukes.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_lukes.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cb903cadedc00abe7edd0ec9a3286a274a8825f1 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_lukes.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_modularity_max.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_modularity_max.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..607b5ec2c7f2c66fb53bb9b5e05b1bcd3ea2a0bf Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_modularity_max.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_quality.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_quality.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..702a489c73684b92953348f044ca317ba27ad283 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_quality.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_utils.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_utils.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c81d7ed076ff79449ef29c3210ac4cdd24f1e62b Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/community/tests/__pycache__/test_utils.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5ec7b1eda6be70f00ed51e6c0f8de1e656b93b48 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/__pycache__/attracting.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/__pycache__/attracting.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..16b818838f873232b358e73c09efc808a5d2cfbd Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/__pycache__/attracting.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/__pycache__/biconnected.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/__pycache__/biconnected.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..704e5ffeda3e6a0bb5b1a25ec71f5aa4be6e8757 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/__pycache__/biconnected.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/__pycache__/connected.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/__pycache__/connected.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8879adc4ebd1c4768878768aa5bedd2135a3fbf3 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/__pycache__/connected.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/__pycache__/semiconnected.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/__pycache__/semiconnected.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a67c9f8e6bbbd436b414629d4f3786febb521e1b Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/__pycache__/semiconnected.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/__pycache__/strongly_connected.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/__pycache__/strongly_connected.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..72e481fbfbd7492633bb60c2b6569459a70e8bc8 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/__pycache__/strongly_connected.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/__pycache__/weakly_connected.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/__pycache__/weakly_connected.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..08f28fa40681a23ec383d567d256504bfb40cefb Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/__pycache__/weakly_connected.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2c480b21968b1c228a6890a9bbf6cdaa9326eba2 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/__pycache__/test_attracting.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/__pycache__/test_attracting.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..50983b8d51f6b40ff7f73de42b085fede2d771b4 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/__pycache__/test_attracting.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/__pycache__/test_biconnected.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/__pycache__/test_biconnected.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e284a096e3391fbef5c08992a2ee70070633fe06 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/__pycache__/test_biconnected.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/__pycache__/test_connected.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/__pycache__/test_connected.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3b7e9ccee2927ea2cca677e6e2c57c8720b8ba6c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/__pycache__/test_connected.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/__pycache__/test_semiconnected.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/__pycache__/test_semiconnected.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0eb9238f71cc341293d916d67f8a5ab9b8b6d6f1 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/__pycache__/test_semiconnected.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/__pycache__/test_strongly_connected.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/__pycache__/test_strongly_connected.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..647e979f2828dd2f194fd25c04e968a4a6e44c3a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/__pycache__/test_strongly_connected.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/__pycache__/test_weakly_connected.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/__pycache__/test_weakly_connected.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6dfbb7ff296056d8f24935f236b0221ffb9d359b Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/__pycache__/test_weakly_connected.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/test_attracting.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/test_attracting.py new file mode 100644 index 0000000000000000000000000000000000000000..336c40ddc27162c1c2f5cc245f4fc840311506b5 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/test_attracting.py @@ -0,0 +1,70 @@ +import pytest + +import networkx as nx +from networkx import NetworkXNotImplemented + + +class TestAttractingComponents: + @classmethod + def setup_class(cls): + cls.G1 = nx.DiGraph() + cls.G1.add_edges_from( + [ + (5, 11), + (11, 2), + (11, 9), + (11, 10), + (7, 11), + (7, 8), + (8, 9), + (3, 8), + (3, 10), + ] + ) + cls.G2 = nx.DiGraph() + cls.G2.add_edges_from([(0, 1), (0, 2), (1, 1), (1, 2), (2, 1)]) + + cls.G3 = nx.DiGraph() + cls.G3.add_edges_from([(0, 1), (1, 2), (2, 1), (0, 3), (3, 4), (4, 3)]) + + cls.G4 = nx.DiGraph() + + def test_attracting_components(self): + ac = list(nx.attracting_components(self.G1)) + assert {2} in ac + assert {9} in ac + assert {10} in ac + + ac = list(nx.attracting_components(self.G2)) + ac = [tuple(sorted(x)) for x in ac] + assert ac == [(1, 2)] + + ac = list(nx.attracting_components(self.G3)) + ac = [tuple(sorted(x)) for x in ac] + assert (1, 2) in ac + assert (3, 4) in ac + assert len(ac) == 2 + + ac = list(nx.attracting_components(self.G4)) + assert ac == [] + + def test_number_attacting_components(self): + assert nx.number_attracting_components(self.G1) == 3 + assert nx.number_attracting_components(self.G2) == 1 + assert nx.number_attracting_components(self.G3) == 2 + assert nx.number_attracting_components(self.G4) == 0 + + def test_is_attracting_component(self): + assert not nx.is_attracting_component(self.G1) + assert not nx.is_attracting_component(self.G2) + assert not nx.is_attracting_component(self.G3) + g2 = self.G3.subgraph([1, 2]) + assert nx.is_attracting_component(g2) + assert not nx.is_attracting_component(self.G4) + + def test_connected_raise(self): + G = nx.Graph() + with pytest.raises(NetworkXNotImplemented): + next(nx.attracting_components(G)) + pytest.raises(NetworkXNotImplemented, nx.number_attracting_components, G) + pytest.raises(NetworkXNotImplemented, nx.is_attracting_component, G) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/test_biconnected.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/test_biconnected.py new file mode 100644 index 0000000000000000000000000000000000000000..19d2d8831ced26a516d101e735b6701f39865c1b --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/test_biconnected.py @@ -0,0 +1,248 @@ +import pytest + +import networkx as nx +from networkx import NetworkXNotImplemented + + +def assert_components_edges_equal(x, y): + sx = {frozenset(frozenset(e) for e in c) for c in x} + sy = {frozenset(frozenset(e) for e in c) for c in y} + assert sx == sy + + +def assert_components_equal(x, y): + sx = {frozenset(c) for c in x} + sy = {frozenset(c) for c in y} + assert sx == sy + + +def test_barbell(): + G = nx.barbell_graph(8, 4) + nx.add_path(G, [7, 20, 21, 22]) + nx.add_cycle(G, [22, 23, 24, 25]) + pts = set(nx.articulation_points(G)) + assert pts == {7, 8, 9, 10, 11, 12, 20, 21, 22} + + answer = [ + {12, 13, 14, 15, 16, 17, 18, 19}, + {0, 1, 2, 3, 4, 5, 6, 7}, + {22, 23, 24, 25}, + {11, 12}, + {10, 11}, + {9, 10}, + {8, 9}, + {7, 8}, + {21, 22}, + {20, 21}, + {7, 20}, + ] + assert_components_equal(list(nx.biconnected_components(G)), answer) + + G.add_edge(2, 17) + pts = set(nx.articulation_points(G)) + assert pts == {7, 20, 21, 22} + + +def test_articulation_points_repetitions(): + G = nx.Graph() + G.add_edges_from([(0, 1), (1, 2), (1, 3)]) + assert list(nx.articulation_points(G)) == [1] + + +def test_articulation_points_cycle(): + G = nx.cycle_graph(3) + nx.add_cycle(G, [1, 3, 4]) + pts = set(nx.articulation_points(G)) + assert pts == {1} + + +def test_is_biconnected(): + G = nx.cycle_graph(3) + assert nx.is_biconnected(G) + nx.add_cycle(G, [1, 3, 4]) + assert not nx.is_biconnected(G) + + +def test_empty_is_biconnected(): + G = nx.empty_graph(5) + assert not nx.is_biconnected(G) + G.add_edge(0, 1) + assert not nx.is_biconnected(G) + + +def test_biconnected_components_cycle(): + G = nx.cycle_graph(3) + nx.add_cycle(G, [1, 3, 4]) + answer = [{0, 1, 2}, {1, 3, 4}] + assert_components_equal(list(nx.biconnected_components(G)), answer) + + +def test_biconnected_components1(): + # graph example from + # https://web.archive.org/web/20121229123447/http://www.ibluemojo.com/school/articul_algorithm.html + edges = [ + (0, 1), + (0, 5), + (0, 6), + (0, 14), + (1, 5), + (1, 6), + (1, 14), + (2, 4), + (2, 10), + (3, 4), + (3, 15), + (4, 6), + (4, 7), + (4, 10), + (5, 14), + (6, 14), + (7, 9), + (8, 9), + (8, 12), + (8, 13), + (10, 15), + (11, 12), + (11, 13), + (12, 13), + ] + G = nx.Graph(edges) + pts = set(nx.articulation_points(G)) + assert pts == {4, 6, 7, 8, 9} + comps = list(nx.biconnected_component_edges(G)) + answer = [ + [(3, 4), (15, 3), (10, 15), (10, 4), (2, 10), (4, 2)], + [(13, 12), (13, 8), (11, 13), (12, 11), (8, 12)], + [(9, 8)], + [(7, 9)], + [(4, 7)], + [(6, 4)], + [(14, 0), (5, 1), (5, 0), (14, 5), (14, 1), (6, 14), (6, 0), (1, 6), (0, 1)], + ] + assert_components_edges_equal(comps, answer) + + +def test_biconnected_components2(): + G = nx.Graph() + nx.add_cycle(G, "ABC") + nx.add_cycle(G, "CDE") + nx.add_cycle(G, "FIJHG") + nx.add_cycle(G, "GIJ") + G.add_edge("E", "G") + comps = list(nx.biconnected_component_edges(G)) + answer = [ + [ + tuple("GF"), + tuple("FI"), + tuple("IG"), + tuple("IJ"), + tuple("JG"), + tuple("JH"), + tuple("HG"), + ], + [tuple("EG")], + [tuple("CD"), tuple("DE"), tuple("CE")], + [tuple("AB"), tuple("BC"), tuple("AC")], + ] + assert_components_edges_equal(comps, answer) + + +def test_biconnected_davis(): + D = nx.davis_southern_women_graph() + bcc = list(nx.biconnected_components(D))[0] + assert set(D) == bcc # All nodes in a giant bicomponent + # So no articulation points + assert len(list(nx.articulation_points(D))) == 0 + + +def test_biconnected_karate(): + K = nx.karate_club_graph() + answer = [ + { + 0, + 1, + 2, + 3, + 7, + 8, + 9, + 12, + 13, + 14, + 15, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + }, + {0, 4, 5, 6, 10, 16}, + {0, 11}, + ] + bcc = list(nx.biconnected_components(K)) + assert_components_equal(bcc, answer) + assert set(nx.articulation_points(K)) == {0} + + +def test_biconnected_eppstein(): + # tests from http://www.ics.uci.edu/~eppstein/PADS/Biconnectivity.py + G1 = nx.Graph( + { + 0: [1, 2, 5], + 1: [0, 5], + 2: [0, 3, 4], + 3: [2, 4, 5, 6], + 4: [2, 3, 5, 6], + 5: [0, 1, 3, 4], + 6: [3, 4], + } + ) + G2 = nx.Graph( + { + 0: [2, 5], + 1: [3, 8], + 2: [0, 3, 5], + 3: [1, 2, 6, 8], + 4: [7], + 5: [0, 2], + 6: [3, 8], + 7: [4], + 8: [1, 3, 6], + } + ) + assert nx.is_biconnected(G1) + assert not nx.is_biconnected(G2) + answer_G2 = [{1, 3, 6, 8}, {0, 2, 5}, {2, 3}, {4, 7}] + bcc = list(nx.biconnected_components(G2)) + assert_components_equal(bcc, answer_G2) + + +def test_null_graph(): + G = nx.Graph() + assert not nx.is_biconnected(G) + assert list(nx.biconnected_components(G)) == [] + assert list(nx.biconnected_component_edges(G)) == [] + assert list(nx.articulation_points(G)) == [] + + +def test_connected_raise(): + DG = nx.DiGraph() + with pytest.raises(NetworkXNotImplemented): + next(nx.biconnected_components(DG)) + with pytest.raises(NetworkXNotImplemented): + next(nx.biconnected_component_edges(DG)) + with pytest.raises(NetworkXNotImplemented): + next(nx.articulation_points(DG)) + pytest.raises(NetworkXNotImplemented, nx.is_biconnected, DG) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/test_connected.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/test_connected.py new file mode 100644 index 0000000000000000000000000000000000000000..207214c1262ed58ac1152a5917a270514748dc0a --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/test_connected.py @@ -0,0 +1,138 @@ +import pytest + +import networkx as nx +from networkx import NetworkXNotImplemented +from networkx import convert_node_labels_to_integers as cnlti +from networkx.classes.tests import dispatch_interface + + +class TestConnected: + @classmethod + def setup_class(cls): + G1 = cnlti(nx.grid_2d_graph(2, 2), first_label=0, ordering="sorted") + G2 = cnlti(nx.lollipop_graph(3, 3), first_label=4, ordering="sorted") + G3 = cnlti(nx.house_graph(), first_label=10, ordering="sorted") + cls.G = nx.union(G1, G2) + cls.G = nx.union(cls.G, G3) + cls.DG = nx.DiGraph([(1, 2), (1, 3), (2, 3)]) + cls.grid = cnlti(nx.grid_2d_graph(4, 4), first_label=1) + + cls.gc = [] + G = nx.DiGraph() + G.add_edges_from( + [ + (1, 2), + (2, 3), + (2, 8), + (3, 4), + (3, 7), + (4, 5), + (5, 3), + (5, 6), + (7, 4), + (7, 6), + (8, 1), + (8, 7), + ] + ) + C = [[3, 4, 5, 7], [1, 2, 8], [6]] + cls.gc.append((G, C)) + + G = nx.DiGraph() + G.add_edges_from([(1, 2), (1, 3), (1, 4), (4, 2), (3, 4), (2, 3)]) + C = [[2, 3, 4], [1]] + cls.gc.append((G, C)) + + G = nx.DiGraph() + G.add_edges_from([(1, 2), (2, 3), (3, 2), (2, 1)]) + C = [[1, 2, 3]] + cls.gc.append((G, C)) + + # Eppstein's tests + G = nx.DiGraph({0: [1], 1: [2, 3], 2: [4, 5], 3: [4, 5], 4: [6], 5: [], 6: []}) + C = [[0], [1], [2], [3], [4], [5], [6]] + cls.gc.append((G, C)) + + G = nx.DiGraph({0: [1], 1: [2, 3, 4], 2: [0, 3], 3: [4], 4: [3]}) + C = [[0, 1, 2], [3, 4]] + cls.gc.append((G, C)) + + G = nx.DiGraph() + C = [] + cls.gc.append((G, C)) + + def test_connected_components(self): + # Test duplicated below + cc = nx.connected_components + G = self.G + C = { + frozenset([0, 1, 2, 3]), + frozenset([4, 5, 6, 7, 8, 9]), + frozenset([10, 11, 12, 13, 14]), + } + assert {frozenset(g) for g in cc(G)} == C + + def test_connected_components_nx_loopback(self): + # This tests the @nx._dispatchable mechanism, treating nx.connected_components + # as if it were a re-implementation from another package. + # Test duplicated from above + cc = nx.connected_components + G = dispatch_interface.convert(self.G) + C = { + frozenset([0, 1, 2, 3]), + frozenset([4, 5, 6, 7, 8, 9]), + frozenset([10, 11, 12, 13, 14]), + } + if "nx_loopback" in nx.config.backends or not nx.config.backends: + # If `nx.config.backends` is empty, then `_dispatchable.__call__` takes a + # "fast path" and does not check graph inputs, so using an unknown backend + # here will still work. + assert {frozenset(g) for g in cc(G)} == C + else: + # This raises, because "nx_loopback" is not registered as a backend. + with pytest.raises( + ImportError, match="'nx_loopback' backend is not installed" + ): + cc(G) + + def test_number_connected_components(self): + ncc = nx.number_connected_components + assert ncc(self.G) == 3 + + def test_number_connected_components2(self): + ncc = nx.number_connected_components + assert ncc(self.grid) == 1 + + def test_connected_components2(self): + cc = nx.connected_components + G = self.grid + C = {frozenset([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16])} + assert {frozenset(g) for g in cc(G)} == C + + def test_node_connected_components(self): + ncc = nx.node_connected_component + G = self.grid + C = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16} + assert ncc(G, 1) == C + + def test_is_connected(self): + assert nx.is_connected(self.grid) + G = nx.Graph() + G.add_nodes_from([1, 2]) + assert not nx.is_connected(G) + + def test_connected_raise(self): + with pytest.raises(NetworkXNotImplemented): + next(nx.connected_components(self.DG)) + pytest.raises(NetworkXNotImplemented, nx.number_connected_components, self.DG) + pytest.raises(NetworkXNotImplemented, nx.node_connected_component, self.DG, 1) + pytest.raises(NetworkXNotImplemented, nx.is_connected, self.DG) + pytest.raises(nx.NetworkXPointlessConcept, nx.is_connected, nx.Graph()) + + def test_connected_mutability(self): + G = self.grid + seen = set() + for component in nx.connected_components(G): + assert len(seen & component) == 0 + seen.update(component) + component.clear() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/test_semiconnected.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/test_semiconnected.py new file mode 100644 index 0000000000000000000000000000000000000000..6376bbfb12a061e1724b0c74d2614e116149d8bf --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/test_semiconnected.py @@ -0,0 +1,55 @@ +from itertools import chain + +import pytest + +import networkx as nx + + +class TestIsSemiconnected: + def test_undirected(self): + pytest.raises(nx.NetworkXNotImplemented, nx.is_semiconnected, nx.Graph()) + pytest.raises(nx.NetworkXNotImplemented, nx.is_semiconnected, nx.MultiGraph()) + + def test_empty(self): + pytest.raises(nx.NetworkXPointlessConcept, nx.is_semiconnected, nx.DiGraph()) + pytest.raises( + nx.NetworkXPointlessConcept, nx.is_semiconnected, nx.MultiDiGraph() + ) + + def test_single_node_graph(self): + G = nx.DiGraph() + G.add_node(0) + assert nx.is_semiconnected(G) + + def test_path(self): + G = nx.path_graph(100, create_using=nx.DiGraph()) + assert nx.is_semiconnected(G) + G.add_edge(100, 99) + assert not nx.is_semiconnected(G) + + def test_cycle(self): + G = nx.cycle_graph(100, create_using=nx.DiGraph()) + assert nx.is_semiconnected(G) + G = nx.path_graph(100, create_using=nx.DiGraph()) + G.add_edge(0, 99) + assert nx.is_semiconnected(G) + + def test_tree(self): + G = nx.DiGraph() + G.add_edges_from( + chain.from_iterable([(i, 2 * i + 1), (i, 2 * i + 2)] for i in range(100)) + ) + assert not nx.is_semiconnected(G) + + def test_dumbbell(self): + G = nx.cycle_graph(100, create_using=nx.DiGraph()) + G.add_edges_from((i + 100, (i + 1) % 100 + 100) for i in range(100)) + assert not nx.is_semiconnected(G) # G is disconnected. + G.add_edge(100, 99) + assert nx.is_semiconnected(G) + + def test_alternating_path(self): + G = nx.DiGraph( + chain.from_iterable([(i, i - 1), (i, i + 1)] for i in range(0, 100, 2)) + ) + assert not nx.is_semiconnected(G) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/test_strongly_connected.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/test_strongly_connected.py new file mode 100644 index 0000000000000000000000000000000000000000..27f40988265b61eec9edb2bde64433f7396022f0 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/test_strongly_connected.py @@ -0,0 +1,193 @@ +import pytest + +import networkx as nx +from networkx import NetworkXNotImplemented + + +class TestStronglyConnected: + @classmethod + def setup_class(cls): + cls.gc = [] + G = nx.DiGraph() + G.add_edges_from( + [ + (1, 2), + (2, 3), + (2, 8), + (3, 4), + (3, 7), + (4, 5), + (5, 3), + (5, 6), + (7, 4), + (7, 6), + (8, 1), + (8, 7), + ] + ) + C = {frozenset([3, 4, 5, 7]), frozenset([1, 2, 8]), frozenset([6])} + cls.gc.append((G, C)) + + G = nx.DiGraph() + G.add_edges_from([(1, 2), (1, 3), (1, 4), (4, 2), (3, 4), (2, 3)]) + C = {frozenset([2, 3, 4]), frozenset([1])} + cls.gc.append((G, C)) + + G = nx.DiGraph() + G.add_edges_from([(1, 2), (2, 3), (3, 2), (2, 1)]) + C = {frozenset([1, 2, 3])} + cls.gc.append((G, C)) + + # Eppstein's tests + G = nx.DiGraph({0: [1], 1: [2, 3], 2: [4, 5], 3: [4, 5], 4: [6], 5: [], 6: []}) + C = { + frozenset([0]), + frozenset([1]), + frozenset([2]), + frozenset([3]), + frozenset([4]), + frozenset([5]), + frozenset([6]), + } + cls.gc.append((G, C)) + + G = nx.DiGraph({0: [1], 1: [2, 3, 4], 2: [0, 3], 3: [4], 4: [3]}) + C = {frozenset([0, 1, 2]), frozenset([3, 4])} + cls.gc.append((G, C)) + + def test_tarjan(self): + scc = nx.strongly_connected_components + for G, C in self.gc: + assert {frozenset(g) for g in scc(G)} == C + + def test_kosaraju(self): + scc = nx.kosaraju_strongly_connected_components + for G, C in self.gc: + assert {frozenset(g) for g in scc(G)} == C + + def test_number_strongly_connected_components(self): + ncc = nx.number_strongly_connected_components + for G, C in self.gc: + assert ncc(G) == len(C) + + def test_is_strongly_connected(self): + for G, C in self.gc: + if len(C) == 1: + assert nx.is_strongly_connected(G) + else: + assert not nx.is_strongly_connected(G) + + def test_contract_scc1(self): + G = nx.DiGraph() + G.add_edges_from( + [ + (1, 2), + (2, 3), + (2, 11), + (2, 12), + (3, 4), + (4, 3), + (4, 5), + (5, 6), + (6, 5), + (6, 7), + (7, 8), + (7, 9), + (7, 10), + (8, 9), + (9, 7), + (10, 6), + (11, 2), + (11, 4), + (11, 6), + (12, 6), + (12, 11), + ] + ) + scc = list(nx.strongly_connected_components(G)) + cG = nx.condensation(G, scc) + # DAG + assert nx.is_directed_acyclic_graph(cG) + # nodes + assert sorted(cG.nodes()) == [0, 1, 2, 3] + # edges + mapping = {} + for i, component in enumerate(scc): + for n in component: + mapping[n] = i + edge = (mapping[2], mapping[3]) + assert cG.has_edge(*edge) + edge = (mapping[2], mapping[5]) + assert cG.has_edge(*edge) + edge = (mapping[3], mapping[5]) + assert cG.has_edge(*edge) + + def test_contract_scc_isolate(self): + # Bug found and fixed in [1687]. + G = nx.DiGraph() + G.add_edge(1, 2) + G.add_edge(2, 1) + scc = list(nx.strongly_connected_components(G)) + cG = nx.condensation(G, scc) + assert list(cG.nodes()) == [0] + assert list(cG.edges()) == [] + + def test_contract_scc_edge(self): + G = nx.DiGraph() + G.add_edge(1, 2) + G.add_edge(2, 1) + G.add_edge(2, 3) + G.add_edge(3, 4) + G.add_edge(4, 3) + scc = list(nx.strongly_connected_components(G)) + cG = nx.condensation(G, scc) + assert sorted(cG.nodes()) == [0, 1] + if 1 in scc[0]: + edge = (0, 1) + else: + edge = (1, 0) + assert list(cG.edges()) == [edge] + + def test_condensation_mapping_and_members(self): + G, C = self.gc[1] + C = sorted(C, key=len, reverse=True) + cG = nx.condensation(G) + mapping = cG.graph["mapping"] + assert all(n in G for n in mapping) + assert all(0 == cN for n, cN in mapping.items() if n in C[0]) + assert all(1 == cN for n, cN in mapping.items() if n in C[1]) + for n, d in cG.nodes(data=True): + assert set(C[n]) == cG.nodes[n]["members"] + + def test_null_graph(self): + G = nx.DiGraph() + assert list(nx.strongly_connected_components(G)) == [] + assert list(nx.kosaraju_strongly_connected_components(G)) == [] + assert len(nx.condensation(G)) == 0 + pytest.raises( + nx.NetworkXPointlessConcept, nx.is_strongly_connected, nx.DiGraph() + ) + + def test_connected_raise(self): + G = nx.Graph() + with pytest.raises(NetworkXNotImplemented): + next(nx.strongly_connected_components(G)) + with pytest.raises(NetworkXNotImplemented): + next(nx.kosaraju_strongly_connected_components(G)) + pytest.raises(NetworkXNotImplemented, nx.is_strongly_connected, G) + pytest.raises(NetworkXNotImplemented, nx.condensation, G) + + strong_cc_methods = ( + nx.strongly_connected_components, + nx.kosaraju_strongly_connected_components, + ) + + @pytest.mark.parametrize("get_components", strong_cc_methods) + def test_connected_mutability(self, get_components): + DG = nx.path_graph(5, create_using=nx.DiGraph) + G = nx.disjoint_union(DG, DG) + seen = set() + for component in get_components(G): + assert len(seen & component) == 0 + seen.update(component) + component.clear() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/test_weakly_connected.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/test_weakly_connected.py new file mode 100644 index 0000000000000000000000000000000000000000..f014478930f598b02e6852e3109978288d023dfc --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/components/tests/test_weakly_connected.py @@ -0,0 +1,96 @@ +import pytest + +import networkx as nx +from networkx import NetworkXNotImplemented + + +class TestWeaklyConnected: + @classmethod + def setup_class(cls): + cls.gc = [] + G = nx.DiGraph() + G.add_edges_from( + [ + (1, 2), + (2, 3), + (2, 8), + (3, 4), + (3, 7), + (4, 5), + (5, 3), + (5, 6), + (7, 4), + (7, 6), + (8, 1), + (8, 7), + ] + ) + C = [[3, 4, 5, 7], [1, 2, 8], [6]] + cls.gc.append((G, C)) + + G = nx.DiGraph() + G.add_edges_from([(1, 2), (1, 3), (1, 4), (4, 2), (3, 4), (2, 3)]) + C = [[2, 3, 4], [1]] + cls.gc.append((G, C)) + + G = nx.DiGraph() + G.add_edges_from([(1, 2), (2, 3), (3, 2), (2, 1)]) + C = [[1, 2, 3]] + cls.gc.append((G, C)) + + # Eppstein's tests + G = nx.DiGraph({0: [1], 1: [2, 3], 2: [4, 5], 3: [4, 5], 4: [6], 5: [], 6: []}) + C = [[0], [1], [2], [3], [4], [5], [6]] + cls.gc.append((G, C)) + + G = nx.DiGraph({0: [1], 1: [2, 3, 4], 2: [0, 3], 3: [4], 4: [3]}) + C = [[0, 1, 2], [3, 4]] + cls.gc.append((G, C)) + + def test_weakly_connected_components(self): + for G, C in self.gc: + U = G.to_undirected() + w = {frozenset(g) for g in nx.weakly_connected_components(G)} + c = {frozenset(g) for g in nx.connected_components(U)} + assert w == c + + def test_number_weakly_connected_components(self): + for G, C in self.gc: + U = G.to_undirected() + w = nx.number_weakly_connected_components(G) + c = nx.number_connected_components(U) + assert w == c + + def test_is_weakly_connected(self): + for G, C in self.gc: + U = G.to_undirected() + assert nx.is_weakly_connected(G) == nx.is_connected(U) + + def test_null_graph(self): + G = nx.DiGraph() + assert list(nx.weakly_connected_components(G)) == [] + assert nx.number_weakly_connected_components(G) == 0 + with pytest.raises(nx.NetworkXPointlessConcept): + next(nx.is_weakly_connected(G)) + + def test_connected_raise(self): + G = nx.Graph() + with pytest.raises(NetworkXNotImplemented): + next(nx.weakly_connected_components(G)) + pytest.raises(NetworkXNotImplemented, nx.number_weakly_connected_components, G) + pytest.raises(NetworkXNotImplemented, nx.is_weakly_connected, G) + + def test_connected_mutability(self): + DG = nx.path_graph(5, create_using=nx.DiGraph) + G = nx.disjoint_union(DG, DG) + seen = set() + for component in nx.weakly_connected_components(G): + assert len(seen & component) == 0 + seen.update(component) + component.clear() + + +def test_is_weakly_connected_empty_graph_raises(): + G = nx.DiGraph() + with pytest.raises(nx.NetworkXPointlessConcept, match="Connectivity is undefined"): + nx.is_weakly_connected(G) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..d08a360628d4604bb37d350746e5c9796fe31d06 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__init__.py @@ -0,0 +1,11 @@ +"""Connectivity and cut algorithms""" + +from .connectivity import * +from .cuts import * +from .edge_augmentation import * +from .edge_kcomponents import * +from .disjoint_paths import * +from .kcomponents import * +from .kcutsets import * +from .stoerwagner import * +from .utils import * diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f0d2a5b865e11cbbdcd6deb636b14de2bc9ed520 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/connectivity.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/connectivity.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..815295100add13a577bb970c706c8a9998634b1a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/connectivity.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/cuts.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/cuts.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6b11e259f6228664ae389a1476a6b3187e342f29 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/cuts.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/disjoint_paths.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/disjoint_paths.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8d973d33e0ea2035c85b9bad7acbaea81e270c67 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/disjoint_paths.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/edge_augmentation.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/edge_augmentation.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7dfa1e0f397232c12bd309117df66543cba4bc1e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/edge_augmentation.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/edge_kcomponents.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/edge_kcomponents.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e69e4117effcfdc993782111eddcd070ddd176f1 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/edge_kcomponents.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/kcomponents.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/kcomponents.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..776b7ff7398b70c9f426588857b09921b27eaef6 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/kcomponents.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/kcutsets.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/kcutsets.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0e8aa234ec67a6ef4b59bc14ac511a7bec7f5b34 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/kcutsets.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/stoerwagner.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/stoerwagner.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6a195f928ce7c7b083418461eafaacf76e9c04a6 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/stoerwagner.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/utils.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/utils.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cedaa5d977b5cbe0bc7423c52035380229a2b6d1 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/__pycache__/utils.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/connectivity.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/connectivity.py new file mode 100644 index 0000000000000000000000000000000000000000..210413fb7a5098e76331a04ea1a090f8d555f0b7 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/connectivity.py @@ -0,0 +1,811 @@ +""" +Flow based connectivity algorithms +""" + +import itertools +from operator import itemgetter + +import networkx as nx + +# Define the default maximum flow function to use in all flow based +# connectivity algorithms. +from networkx.algorithms.flow import ( + boykov_kolmogorov, + build_residual_network, + dinitz, + edmonds_karp, + preflow_push, + shortest_augmenting_path, +) + +from .utils import build_auxiliary_edge_connectivity, build_auxiliary_node_connectivity + +default_flow_func = edmonds_karp + +__all__ = [ + "average_node_connectivity", + "local_node_connectivity", + "node_connectivity", + "local_edge_connectivity", + "edge_connectivity", + "all_pairs_node_connectivity", +] + + +@nx._dispatchable(graphs={"G": 0, "auxiliary?": 4}, preserve_graph_attrs={"auxiliary"}) +def local_node_connectivity( + G, s, t, flow_func=None, auxiliary=None, residual=None, cutoff=None +): + r"""Computes local node connectivity for nodes s and t. + + Local node connectivity for two non adjacent nodes s and t is the + minimum number of nodes that must be removed (along with their incident + edges) to disconnect them. + + This is a flow based implementation of node connectivity. We compute the + maximum flow on an auxiliary digraph build from the original input + graph (see below for details). + + Parameters + ---------- + G : NetworkX graph + Undirected graph + + s : node + Source node + + t : node + Target node + + flow_func : function + A function for computing the maximum flow among a pair of nodes. + The function has to accept at least three parameters: a Digraph, + a source node, and a target node. And return a residual network + that follows NetworkX conventions (see :meth:`maximum_flow` for + details). If flow_func is None, the default maximum flow function + (:meth:`edmonds_karp`) is used. See below for details. The choice + of the default function may change from version to version and + should not be relied on. Default value: None. + + auxiliary : NetworkX DiGraph + Auxiliary digraph to compute flow based node connectivity. It has + to have a graph attribute called mapping with a dictionary mapping + node names in G and in the auxiliary digraph. If provided + it will be reused instead of recreated. Default value: None. + + residual : NetworkX DiGraph + Residual network to compute maximum flow. If provided it will be + reused instead of recreated. Default value: None. + + cutoff : integer, float, or None (default: None) + If specified, the maximum flow algorithm will terminate when the + flow value reaches or exceeds the cutoff. This only works for flows + that support the cutoff parameter (most do) and is ignored otherwise. + + Returns + ------- + K : integer + local node connectivity for nodes s and t + + Examples + -------- + This function is not imported in the base NetworkX namespace, so you + have to explicitly import it from the connectivity package: + + >>> from networkx.algorithms.connectivity import local_node_connectivity + + We use in this example the platonic icosahedral graph, which has node + connectivity 5. + + >>> G = nx.icosahedral_graph() + >>> local_node_connectivity(G, 0, 6) + 5 + + If you need to compute local connectivity on several pairs of + nodes in the same graph, it is recommended that you reuse the + data structures that NetworkX uses in the computation: the + auxiliary digraph for node connectivity, and the residual + network for the underlying maximum flow computation. + + Example of how to compute local node connectivity among + all pairs of nodes of the platonic icosahedral graph reusing + the data structures. + + >>> import itertools + >>> # You also have to explicitly import the function for + >>> # building the auxiliary digraph from the connectivity package + >>> from networkx.algorithms.connectivity import build_auxiliary_node_connectivity + >>> H = build_auxiliary_node_connectivity(G) + >>> # And the function for building the residual network from the + >>> # flow package + >>> from networkx.algorithms.flow import build_residual_network + >>> # Note that the auxiliary digraph has an edge attribute named capacity + >>> R = build_residual_network(H, "capacity") + >>> result = dict.fromkeys(G, dict()) + >>> # Reuse the auxiliary digraph and the residual network by passing them + >>> # as parameters + >>> for u, v in itertools.combinations(G, 2): + ... k = local_node_connectivity(G, u, v, auxiliary=H, residual=R) + ... result[u][v] = k + >>> all(result[u][v] == 5 for u, v in itertools.combinations(G, 2)) + True + + You can also use alternative flow algorithms for computing node + connectivity. For instance, in dense networks the algorithm + :meth:`shortest_augmenting_path` will usually perform better than + the default :meth:`edmonds_karp` which is faster for sparse + networks with highly skewed degree distributions. Alternative flow + functions have to be explicitly imported from the flow package. + + >>> from networkx.algorithms.flow import shortest_augmenting_path + >>> local_node_connectivity(G, 0, 6, flow_func=shortest_augmenting_path) + 5 + + Notes + ----- + This is a flow based implementation of node connectivity. We compute the + maximum flow using, by default, the :meth:`edmonds_karp` algorithm (see: + :meth:`maximum_flow`) on an auxiliary digraph build from the original + input graph: + + For an undirected graph G having `n` nodes and `m` edges we derive a + directed graph H with `2n` nodes and `2m+n` arcs by replacing each + original node `v` with two nodes `v_A`, `v_B` linked by an (internal) + arc in H. Then for each edge (`u`, `v`) in G we add two arcs + (`u_B`, `v_A`) and (`v_B`, `u_A`) in H. Finally we set the attribute + capacity = 1 for each arc in H [1]_ . + + For a directed graph G having `n` nodes and `m` arcs we derive a + directed graph H with `2n` nodes and `m+n` arcs by replacing each + original node `v` with two nodes `v_A`, `v_B` linked by an (internal) + arc (`v_A`, `v_B`) in H. Then for each arc (`u`, `v`) in G we add one arc + (`u_B`, `v_A`) in H. Finally we set the attribute capacity = 1 for + each arc in H. + + This is equal to the local node connectivity because the value of + a maximum s-t-flow is equal to the capacity of a minimum s-t-cut. + + See also + -------- + :meth:`local_edge_connectivity` + :meth:`node_connectivity` + :meth:`minimum_node_cut` + :meth:`maximum_flow` + :meth:`edmonds_karp` + :meth:`preflow_push` + :meth:`shortest_augmenting_path` + + References + ---------- + .. [1] Kammer, Frank and Hanjo Taubig. Graph Connectivity. in Brandes and + Erlebach, 'Network Analysis: Methodological Foundations', Lecture + Notes in Computer Science, Volume 3418, Springer-Verlag, 2005. + http://www.informatik.uni-augsburg.de/thi/personen/kammer/Graph_Connectivity.pdf + + """ + if flow_func is None: + flow_func = default_flow_func + + if auxiliary is None: + H = build_auxiliary_node_connectivity(G) + else: + H = auxiliary + + mapping = H.graph.get("mapping", None) + if mapping is None: + raise nx.NetworkXError("Invalid auxiliary digraph.") + + kwargs = {"flow_func": flow_func, "residual": residual} + + if flow_func is not preflow_push: + kwargs["cutoff"] = cutoff + + if flow_func is shortest_augmenting_path: + kwargs["two_phase"] = True + + return nx.maximum_flow_value(H, f"{mapping[s]}B", f"{mapping[t]}A", **kwargs) + + +@nx._dispatchable +def node_connectivity(G, s=None, t=None, flow_func=None): + r"""Returns node connectivity for a graph or digraph G. + + Node connectivity is equal to the minimum number of nodes that + must be removed to disconnect G or render it trivial. If source + and target nodes are provided, this function returns the local node + connectivity: the minimum number of nodes that must be removed to break + all paths from source to target in G. + + Parameters + ---------- + G : NetworkX graph + Undirected graph + + s : node + Source node. Optional. Default value: None. + + t : node + Target node. Optional. Default value: None. + + flow_func : function + A function for computing the maximum flow among a pair of nodes. + The function has to accept at least three parameters: a Digraph, + a source node, and a target node. And return a residual network + that follows NetworkX conventions (see :meth:`maximum_flow` for + details). If flow_func is None, the default maximum flow function + (:meth:`edmonds_karp`) is used. See below for details. The + choice of the default function may change from version + to version and should not be relied on. Default value: None. + + Returns + ------- + K : integer + Node connectivity of G, or local node connectivity if source + and target are provided. + + Examples + -------- + >>> # Platonic icosahedral graph is 5-node-connected + >>> G = nx.icosahedral_graph() + >>> nx.node_connectivity(G) + 5 + + You can use alternative flow algorithms for the underlying maximum + flow computation. In dense networks the algorithm + :meth:`shortest_augmenting_path` will usually perform better + than the default :meth:`edmonds_karp`, which is faster for + sparse networks with highly skewed degree distributions. Alternative + flow functions have to be explicitly imported from the flow package. + + >>> from networkx.algorithms.flow import shortest_augmenting_path + >>> nx.node_connectivity(G, flow_func=shortest_augmenting_path) + 5 + + If you specify a pair of nodes (source and target) as parameters, + this function returns the value of local node connectivity. + + >>> nx.node_connectivity(G, 3, 7) + 5 + + If you need to perform several local computations among different + pairs of nodes on the same graph, it is recommended that you reuse + the data structures used in the maximum flow computations. See + :meth:`local_node_connectivity` for details. + + Notes + ----- + This is a flow based implementation of node connectivity. The + algorithm works by solving $O((n-\delta-1+\delta(\delta-1)/2))$ + maximum flow problems on an auxiliary digraph. Where $\delta$ + is the minimum degree of G. For details about the auxiliary + digraph and the computation of local node connectivity see + :meth:`local_node_connectivity`. This implementation is based + on algorithm 11 in [1]_. + + See also + -------- + :meth:`local_node_connectivity` + :meth:`edge_connectivity` + :meth:`maximum_flow` + :meth:`edmonds_karp` + :meth:`preflow_push` + :meth:`shortest_augmenting_path` + + References + ---------- + .. [1] Abdol-Hossein Esfahanian. Connectivity Algorithms. + http://www.cse.msu.edu/~cse835/Papers/Graph_connectivity_revised.pdf + + """ + if (s is not None and t is None) or (s is None and t is not None): + raise nx.NetworkXError("Both source and target must be specified.") + + # Local node connectivity + if s is not None and t is not None: + if s not in G: + raise nx.NetworkXError(f"node {s} not in graph") + if t not in G: + raise nx.NetworkXError(f"node {t} not in graph") + return local_node_connectivity(G, s, t, flow_func=flow_func) + + # Global node connectivity + if G.is_directed(): + if not nx.is_weakly_connected(G): + return 0 + iter_func = itertools.permutations + # It is necessary to consider both predecessors + # and successors for directed graphs + + def neighbors(v): + return itertools.chain.from_iterable([G.predecessors(v), G.successors(v)]) + + else: + if not nx.is_connected(G): + return 0 + iter_func = itertools.combinations + neighbors = G.neighbors + + # Reuse the auxiliary digraph and the residual network + H = build_auxiliary_node_connectivity(G) + R = build_residual_network(H, "capacity") + kwargs = {"flow_func": flow_func, "auxiliary": H, "residual": R} + + # Pick a node with minimum degree + # Node connectivity is bounded by degree. + v, K = min(G.degree(), key=itemgetter(1)) + # compute local node connectivity with all its non-neighbors nodes + for w in set(G) - set(neighbors(v)) - {v}: + kwargs["cutoff"] = K + K = min(K, local_node_connectivity(G, v, w, **kwargs)) + # Also for non adjacent pairs of neighbors of v + for x, y in iter_func(neighbors(v), 2): + if y in G[x]: + continue + kwargs["cutoff"] = K + K = min(K, local_node_connectivity(G, x, y, **kwargs)) + + return K + + +@nx._dispatchable +def average_node_connectivity(G, flow_func=None): + r"""Returns the average connectivity of a graph G. + + The average connectivity `\bar{\kappa}` of a graph G is the average + of local node connectivity over all pairs of nodes of G [1]_ . + + .. math:: + + \bar{\kappa}(G) = \frac{\sum_{u,v} \kappa_{G}(u,v)}{{n \choose 2}} + + Parameters + ---------- + + G : NetworkX graph + Undirected graph + + flow_func : function + A function for computing the maximum flow among a pair of nodes. + The function has to accept at least three parameters: a Digraph, + a source node, and a target node. And return a residual network + that follows NetworkX conventions (see :meth:`maximum_flow` for + details). If flow_func is None, the default maximum flow function + (:meth:`edmonds_karp`) is used. See :meth:`local_node_connectivity` + for details. The choice of the default function may change from + version to version and should not be relied on. Default value: None. + + Returns + ------- + K : float + Average node connectivity + + See also + -------- + :meth:`local_node_connectivity` + :meth:`node_connectivity` + :meth:`edge_connectivity` + :meth:`maximum_flow` + :meth:`edmonds_karp` + :meth:`preflow_push` + :meth:`shortest_augmenting_path` + + References + ---------- + .. [1] Beineke, L., O. Oellermann, and R. Pippert (2002). The average + connectivity of a graph. Discrete mathematics 252(1-3), 31-45. + http://www.sciencedirect.com/science/article/pii/S0012365X01001807 + + """ + if G.is_directed(): + iter_func = itertools.permutations + else: + iter_func = itertools.combinations + + # Reuse the auxiliary digraph and the residual network + H = build_auxiliary_node_connectivity(G) + R = build_residual_network(H, "capacity") + kwargs = {"flow_func": flow_func, "auxiliary": H, "residual": R} + + num, den = 0, 0 + for u, v in iter_func(G, 2): + num += local_node_connectivity(G, u, v, **kwargs) + den += 1 + + if den == 0: # Null Graph + return 0 + return num / den + + +@nx._dispatchable +def all_pairs_node_connectivity(G, nbunch=None, flow_func=None): + """Compute node connectivity between all pairs of nodes of G. + + Parameters + ---------- + G : NetworkX graph + Undirected graph + + nbunch: container + Container of nodes. If provided node connectivity will be computed + only over pairs of nodes in nbunch. + + flow_func : function + A function for computing the maximum flow among a pair of nodes. + The function has to accept at least three parameters: a Digraph, + a source node, and a target node. And return a residual network + that follows NetworkX conventions (see :meth:`maximum_flow` for + details). If flow_func is None, the default maximum flow function + (:meth:`edmonds_karp`) is used. See below for details. The + choice of the default function may change from version + to version and should not be relied on. Default value: None. + + Returns + ------- + all_pairs : dict + A dictionary with node connectivity between all pairs of nodes + in G, or in nbunch if provided. + + See also + -------- + :meth:`local_node_connectivity` + :meth:`edge_connectivity` + :meth:`local_edge_connectivity` + :meth:`maximum_flow` + :meth:`edmonds_karp` + :meth:`preflow_push` + :meth:`shortest_augmenting_path` + + """ + if nbunch is None: + nbunch = G + else: + nbunch = set(nbunch) + + directed = G.is_directed() + if directed: + iter_func = itertools.permutations + else: + iter_func = itertools.combinations + + all_pairs = {n: {} for n in nbunch} + + # Reuse auxiliary digraph and residual network + H = build_auxiliary_node_connectivity(G) + mapping = H.graph["mapping"] + R = build_residual_network(H, "capacity") + kwargs = {"flow_func": flow_func, "auxiliary": H, "residual": R} + + for u, v in iter_func(nbunch, 2): + K = local_node_connectivity(G, u, v, **kwargs) + all_pairs[u][v] = K + if not directed: + all_pairs[v][u] = K + + return all_pairs + + +@nx._dispatchable(graphs={"G": 0, "auxiliary?": 4}) +def local_edge_connectivity( + G, s, t, flow_func=None, auxiliary=None, residual=None, cutoff=None +): + r"""Returns local edge connectivity for nodes s and t in G. + + Local edge connectivity for two nodes s and t is the minimum number + of edges that must be removed to disconnect them. + + This is a flow based implementation of edge connectivity. We compute the + maximum flow on an auxiliary digraph build from the original + network (see below for details). This is equal to the local edge + connectivity because the value of a maximum s-t-flow is equal to the + capacity of a minimum s-t-cut (Ford and Fulkerson theorem) [1]_ . + + Parameters + ---------- + G : NetworkX graph + Undirected or directed graph + + s : node + Source node + + t : node + Target node + + flow_func : function + A function for computing the maximum flow among a pair of nodes. + The function has to accept at least three parameters: a Digraph, + a source node, and a target node. And return a residual network + that follows NetworkX conventions (see :meth:`maximum_flow` for + details). If flow_func is None, the default maximum flow function + (:meth:`edmonds_karp`) is used. See below for details. The + choice of the default function may change from version + to version and should not be relied on. Default value: None. + + auxiliary : NetworkX DiGraph + Auxiliary digraph for computing flow based edge connectivity. If + provided it will be reused instead of recreated. Default value: None. + + residual : NetworkX DiGraph + Residual network to compute maximum flow. If provided it will be + reused instead of recreated. Default value: None. + + cutoff : integer, float, or None (default: None) + If specified, the maximum flow algorithm will terminate when the + flow value reaches or exceeds the cutoff. This only works for flows + that support the cutoff parameter (most do) and is ignored otherwise. + + Returns + ------- + K : integer + local edge connectivity for nodes s and t. + + Examples + -------- + This function is not imported in the base NetworkX namespace, so you + have to explicitly import it from the connectivity package: + + >>> from networkx.algorithms.connectivity import local_edge_connectivity + + We use in this example the platonic icosahedral graph, which has edge + connectivity 5. + + >>> G = nx.icosahedral_graph() + >>> local_edge_connectivity(G, 0, 6) + 5 + + If you need to compute local connectivity on several pairs of + nodes in the same graph, it is recommended that you reuse the + data structures that NetworkX uses in the computation: the + auxiliary digraph for edge connectivity, and the residual + network for the underlying maximum flow computation. + + Example of how to compute local edge connectivity among + all pairs of nodes of the platonic icosahedral graph reusing + the data structures. + + >>> import itertools + >>> # You also have to explicitly import the function for + >>> # building the auxiliary digraph from the connectivity package + >>> from networkx.algorithms.connectivity import build_auxiliary_edge_connectivity + >>> H = build_auxiliary_edge_connectivity(G) + >>> # And the function for building the residual network from the + >>> # flow package + >>> from networkx.algorithms.flow import build_residual_network + >>> # Note that the auxiliary digraph has an edge attribute named capacity + >>> R = build_residual_network(H, "capacity") + >>> result = dict.fromkeys(G, dict()) + >>> # Reuse the auxiliary digraph and the residual network by passing them + >>> # as parameters + >>> for u, v in itertools.combinations(G, 2): + ... k = local_edge_connectivity(G, u, v, auxiliary=H, residual=R) + ... result[u][v] = k + >>> all(result[u][v] == 5 for u, v in itertools.combinations(G, 2)) + True + + You can also use alternative flow algorithms for computing edge + connectivity. For instance, in dense networks the algorithm + :meth:`shortest_augmenting_path` will usually perform better than + the default :meth:`edmonds_karp` which is faster for sparse + networks with highly skewed degree distributions. Alternative flow + functions have to be explicitly imported from the flow package. + + >>> from networkx.algorithms.flow import shortest_augmenting_path + >>> local_edge_connectivity(G, 0, 6, flow_func=shortest_augmenting_path) + 5 + + Notes + ----- + This is a flow based implementation of edge connectivity. We compute the + maximum flow using, by default, the :meth:`edmonds_karp` algorithm on an + auxiliary digraph build from the original input graph: + + If the input graph is undirected, we replace each edge (`u`,`v`) with + two reciprocal arcs (`u`, `v`) and (`v`, `u`) and then we set the attribute + 'capacity' for each arc to 1. If the input graph is directed we simply + add the 'capacity' attribute. This is an implementation of algorithm 1 + in [1]_. + + The maximum flow in the auxiliary network is equal to the local edge + connectivity because the value of a maximum s-t-flow is equal to the + capacity of a minimum s-t-cut (Ford and Fulkerson theorem). + + See also + -------- + :meth:`edge_connectivity` + :meth:`local_node_connectivity` + :meth:`node_connectivity` + :meth:`maximum_flow` + :meth:`edmonds_karp` + :meth:`preflow_push` + :meth:`shortest_augmenting_path` + + References + ---------- + .. [1] Abdol-Hossein Esfahanian. Connectivity Algorithms. + http://www.cse.msu.edu/~cse835/Papers/Graph_connectivity_revised.pdf + + """ + if flow_func is None: + flow_func = default_flow_func + + if auxiliary is None: + H = build_auxiliary_edge_connectivity(G) + else: + H = auxiliary + + kwargs = {"flow_func": flow_func, "residual": residual} + + if flow_func is not preflow_push: + kwargs["cutoff"] = cutoff + + if flow_func is shortest_augmenting_path: + kwargs["two_phase"] = True + + return nx.maximum_flow_value(H, s, t, **kwargs) + + +@nx._dispatchable +def edge_connectivity(G, s=None, t=None, flow_func=None, cutoff=None): + r"""Returns the edge connectivity of the graph or digraph G. + + The edge connectivity is equal to the minimum number of edges that + must be removed to disconnect G or render it trivial. If source + and target nodes are provided, this function returns the local edge + connectivity: the minimum number of edges that must be removed to + break all paths from source to target in G. + + Parameters + ---------- + G : NetworkX graph + Undirected or directed graph + + s : node + Source node. Optional. Default value: None. + + t : node + Target node. Optional. Default value: None. + + flow_func : function + A function for computing the maximum flow among a pair of nodes. + The function has to accept at least three parameters: a Digraph, + a source node, and a target node. And return a residual network + that follows NetworkX conventions (see :meth:`maximum_flow` for + details). If flow_func is None, the default maximum flow function + (:meth:`edmonds_karp`) is used. See below for details. The + choice of the default function may change from version + to version and should not be relied on. Default value: None. + + cutoff : integer, float, or None (default: None) + If specified, the maximum flow algorithm will terminate when the + flow value reaches or exceeds the cutoff. This only works for flows + that support the cutoff parameter (most do) and is ignored otherwise. + + Returns + ------- + K : integer + Edge connectivity for G, or local edge connectivity if source + and target were provided + + Examples + -------- + >>> # Platonic icosahedral graph is 5-edge-connected + >>> G = nx.icosahedral_graph() + >>> nx.edge_connectivity(G) + 5 + + You can use alternative flow algorithms for the underlying + maximum flow computation. In dense networks the algorithm + :meth:`shortest_augmenting_path` will usually perform better + than the default :meth:`edmonds_karp`, which is faster for + sparse networks with highly skewed degree distributions. + Alternative flow functions have to be explicitly imported + from the flow package. + + >>> from networkx.algorithms.flow import shortest_augmenting_path + >>> nx.edge_connectivity(G, flow_func=shortest_augmenting_path) + 5 + + If you specify a pair of nodes (source and target) as parameters, + this function returns the value of local edge connectivity. + + >>> nx.edge_connectivity(G, 3, 7) + 5 + + If you need to perform several local computations among different + pairs of nodes on the same graph, it is recommended that you reuse + the data structures used in the maximum flow computations. See + :meth:`local_edge_connectivity` for details. + + Notes + ----- + This is a flow based implementation of global edge connectivity. + For undirected graphs the algorithm works by finding a 'small' + dominating set of nodes of G (see algorithm 7 in [1]_ ) and + computing local maximum flow (see :meth:`local_edge_connectivity`) + between an arbitrary node in the dominating set and the rest of + nodes in it. This is an implementation of algorithm 6 in [1]_ . + For directed graphs, the algorithm does n calls to the maximum + flow function. This is an implementation of algorithm 8 in [1]_ . + + See also + -------- + :meth:`local_edge_connectivity` + :meth:`local_node_connectivity` + :meth:`node_connectivity` + :meth:`maximum_flow` + :meth:`edmonds_karp` + :meth:`preflow_push` + :meth:`shortest_augmenting_path` + :meth:`k_edge_components` + :meth:`k_edge_subgraphs` + + References + ---------- + .. [1] Abdol-Hossein Esfahanian. Connectivity Algorithms. + http://www.cse.msu.edu/~cse835/Papers/Graph_connectivity_revised.pdf + + """ + if (s is not None and t is None) or (s is None and t is not None): + raise nx.NetworkXError("Both source and target must be specified.") + + # Local edge connectivity + if s is not None and t is not None: + if s not in G: + raise nx.NetworkXError(f"node {s} not in graph") + if t not in G: + raise nx.NetworkXError(f"node {t} not in graph") + return local_edge_connectivity(G, s, t, flow_func=flow_func, cutoff=cutoff) + + # Global edge connectivity + # reuse auxiliary digraph and residual network + H = build_auxiliary_edge_connectivity(G) + R = build_residual_network(H, "capacity") + kwargs = {"flow_func": flow_func, "auxiliary": H, "residual": R} + + if G.is_directed(): + # Algorithm 8 in [1] + if not nx.is_weakly_connected(G): + return 0 + + # initial value for \lambda is minimum degree + L = min(d for n, d in G.degree()) + nodes = list(G) + n = len(nodes) + + if cutoff is not None: + L = min(cutoff, L) + + for i in range(n): + kwargs["cutoff"] = L + try: + L = min(L, local_edge_connectivity(G, nodes[i], nodes[i + 1], **kwargs)) + except IndexError: # last node! + L = min(L, local_edge_connectivity(G, nodes[i], nodes[0], **kwargs)) + return L + else: # undirected + # Algorithm 6 in [1] + if not nx.is_connected(G): + return 0 + + # initial value for \lambda is minimum degree + L = min(d for n, d in G.degree()) + + if cutoff is not None: + L = min(cutoff, L) + + # A dominating set is \lambda-covering + # We need a dominating set with at least two nodes + for node in G: + D = nx.dominating_set(G, start_with=node) + v = D.pop() + if D: + break + else: + # in complete graphs the dominating sets will always be of one node + # thus we return min degree + return L + + for w in D: + kwargs["cutoff"] = L + L = min(L, local_edge_connectivity(G, v, w, **kwargs)) + + return L diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/cuts.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/cuts.py new file mode 100644 index 0000000000000000000000000000000000000000..e7806e1e89fa2ad4368b44985dfac42a418dc326 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/cuts.py @@ -0,0 +1,616 @@ +""" +Flow based cut algorithms +""" + +import itertools + +import networkx as nx + +# Define the default maximum flow function to use in all flow based +# cut algorithms. +from networkx.algorithms.flow import build_residual_network, edmonds_karp + +from .utils import build_auxiliary_edge_connectivity, build_auxiliary_node_connectivity + +default_flow_func = edmonds_karp + +__all__ = [ + "minimum_st_node_cut", + "minimum_node_cut", + "minimum_st_edge_cut", + "minimum_edge_cut", +] + + +@nx._dispatchable( + graphs={"G": 0, "auxiliary?": 4}, + preserve_edge_attrs={"auxiliary": {"capacity": float("inf")}}, + preserve_graph_attrs={"auxiliary"}, +) +def minimum_st_edge_cut(G, s, t, flow_func=None, auxiliary=None, residual=None): + """Returns the edges of the cut-set of a minimum (s, t)-cut. + + This function returns the set of edges of minimum cardinality that, + if removed, would destroy all paths among source and target in G. + Edge weights are not considered. See :meth:`minimum_cut` for + computing minimum cuts considering edge weights. + + Parameters + ---------- + G : NetworkX graph + + s : node + Source node for the flow. + + t : node + Sink node for the flow. + + auxiliary : NetworkX DiGraph + Auxiliary digraph to compute flow based node connectivity. It has + to have a graph attribute called mapping with a dictionary mapping + node names in G and in the auxiliary digraph. If provided + it will be reused instead of recreated. Default value: None. + + flow_func : function + A function for computing the maximum flow among a pair of nodes. + The function has to accept at least three parameters: a Digraph, + a source node, and a target node. And return a residual network + that follows NetworkX conventions (see :meth:`maximum_flow` for + details). If flow_func is None, the default maximum flow function + (:meth:`edmonds_karp`) is used. See :meth:`node_connectivity` for + details. The choice of the default function may change from version + to version and should not be relied on. Default value: None. + + residual : NetworkX DiGraph + Residual network to compute maximum flow. If provided it will be + reused instead of recreated. Default value: None. + + Returns + ------- + cutset : set + Set of edges that, if removed from the graph, will disconnect it. + + See also + -------- + :meth:`minimum_cut` + :meth:`minimum_node_cut` + :meth:`minimum_edge_cut` + :meth:`stoer_wagner` + :meth:`node_connectivity` + :meth:`edge_connectivity` + :meth:`maximum_flow` + :meth:`edmonds_karp` + :meth:`preflow_push` + :meth:`shortest_augmenting_path` + + Examples + -------- + This function is not imported in the base NetworkX namespace, so you + have to explicitly import it from the connectivity package: + + >>> from networkx.algorithms.connectivity import minimum_st_edge_cut + + We use in this example the platonic icosahedral graph, which has edge + connectivity 5. + + >>> G = nx.icosahedral_graph() + >>> len(minimum_st_edge_cut(G, 0, 6)) + 5 + + If you need to compute local edge cuts on several pairs of + nodes in the same graph, it is recommended that you reuse the + data structures that NetworkX uses in the computation: the + auxiliary digraph for edge connectivity, and the residual + network for the underlying maximum flow computation. + + Example of how to compute local edge cuts among all pairs of + nodes of the platonic icosahedral graph reusing the data + structures. + + >>> import itertools + >>> # You also have to explicitly import the function for + >>> # building the auxiliary digraph from the connectivity package + >>> from networkx.algorithms.connectivity import build_auxiliary_edge_connectivity + >>> H = build_auxiliary_edge_connectivity(G) + >>> # And the function for building the residual network from the + >>> # flow package + >>> from networkx.algorithms.flow import build_residual_network + >>> # Note that the auxiliary digraph has an edge attribute named capacity + >>> R = build_residual_network(H, "capacity") + >>> result = dict.fromkeys(G, dict()) + >>> # Reuse the auxiliary digraph and the residual network by passing them + >>> # as parameters + >>> for u, v in itertools.combinations(G, 2): + ... k = len(minimum_st_edge_cut(G, u, v, auxiliary=H, residual=R)) + ... result[u][v] = k + >>> all(result[u][v] == 5 for u, v in itertools.combinations(G, 2)) + True + + You can also use alternative flow algorithms for computing edge + cuts. For instance, in dense networks the algorithm + :meth:`shortest_augmenting_path` will usually perform better than + the default :meth:`edmonds_karp` which is faster for sparse + networks with highly skewed degree distributions. Alternative flow + functions have to be explicitly imported from the flow package. + + >>> from networkx.algorithms.flow import shortest_augmenting_path + >>> len(minimum_st_edge_cut(G, 0, 6, flow_func=shortest_augmenting_path)) + 5 + + """ + if flow_func is None: + flow_func = default_flow_func + + if auxiliary is None: + H = build_auxiliary_edge_connectivity(G) + else: + H = auxiliary + + kwargs = {"capacity": "capacity", "flow_func": flow_func, "residual": residual} + + cut_value, partition = nx.minimum_cut(H, s, t, **kwargs) + reachable, non_reachable = partition + # Any edge in the original graph linking the two sets in the + # partition is part of the edge cutset + cutset = set() + for u, nbrs in ((n, G[n]) for n in reachable): + cutset.update((u, v) for v in nbrs if v in non_reachable) + + return cutset + + +@nx._dispatchable( + graphs={"G": 0, "auxiliary?": 4}, + preserve_node_attrs={"auxiliary": {"id": None}}, + preserve_graph_attrs={"auxiliary"}, +) +def minimum_st_node_cut(G, s, t, flow_func=None, auxiliary=None, residual=None): + r"""Returns a set of nodes of minimum cardinality that disconnect source + from target in G. + + This function returns the set of nodes of minimum cardinality that, + if removed, would destroy all paths among source and target in G. + + Parameters + ---------- + G : NetworkX graph + + s : node + Source node. + + t : node + Target node. + + flow_func : function + A function for computing the maximum flow among a pair of nodes. + The function has to accept at least three parameters: a Digraph, + a source node, and a target node. And return a residual network + that follows NetworkX conventions (see :meth:`maximum_flow` for + details). If flow_func is None, the default maximum flow function + (:meth:`edmonds_karp`) is used. See below for details. The choice + of the default function may change from version to version and + should not be relied on. Default value: None. + + auxiliary : NetworkX DiGraph + Auxiliary digraph to compute flow based node connectivity. It has + to have a graph attribute called mapping with a dictionary mapping + node names in G and in the auxiliary digraph. If provided + it will be reused instead of recreated. Default value: None. + + residual : NetworkX DiGraph + Residual network to compute maximum flow. If provided it will be + reused instead of recreated. Default value: None. + + Returns + ------- + cutset : set + Set of nodes that, if removed, would destroy all paths between + source and target in G. + + Returns an empty set if source and target are either in different + components or are directly connected by an edge, as no node removal + can destroy the path. + + Examples + -------- + This function is not imported in the base NetworkX namespace, so you + have to explicitly import it from the connectivity package: + + >>> from networkx.algorithms.connectivity import minimum_st_node_cut + + We use in this example the platonic icosahedral graph, which has node + connectivity 5. + + >>> G = nx.icosahedral_graph() + >>> len(minimum_st_node_cut(G, 0, 6)) + 5 + + If you need to compute local st cuts between several pairs of + nodes in the same graph, it is recommended that you reuse the + data structures that NetworkX uses in the computation: the + auxiliary digraph for node connectivity and node cuts, and the + residual network for the underlying maximum flow computation. + + Example of how to compute local st node cuts reusing the data + structures: + + >>> # You also have to explicitly import the function for + >>> # building the auxiliary digraph from the connectivity package + >>> from networkx.algorithms.connectivity import build_auxiliary_node_connectivity + >>> H = build_auxiliary_node_connectivity(G) + >>> # And the function for building the residual network from the + >>> # flow package + >>> from networkx.algorithms.flow import build_residual_network + >>> # Note that the auxiliary digraph has an edge attribute named capacity + >>> R = build_residual_network(H, "capacity") + >>> # Reuse the auxiliary digraph and the residual network by passing them + >>> # as parameters + >>> len(minimum_st_node_cut(G, 0, 6, auxiliary=H, residual=R)) + 5 + + You can also use alternative flow algorithms for computing minimum st + node cuts. For instance, in dense networks the algorithm + :meth:`shortest_augmenting_path` will usually perform better than + the default :meth:`edmonds_karp` which is faster for sparse + networks with highly skewed degree distributions. Alternative flow + functions have to be explicitly imported from the flow package. + + >>> from networkx.algorithms.flow import shortest_augmenting_path + >>> len(minimum_st_node_cut(G, 0, 6, flow_func=shortest_augmenting_path)) + 5 + + Notes + ----- + This is a flow based implementation of minimum node cut. The algorithm + is based in solving a number of maximum flow computations to determine + the capacity of the minimum cut on an auxiliary directed network that + corresponds to the minimum node cut of G. It handles both directed + and undirected graphs. This implementation is based on algorithm 11 + in [1]_. + + See also + -------- + :meth:`minimum_node_cut` + :meth:`minimum_edge_cut` + :meth:`stoer_wagner` + :meth:`node_connectivity` + :meth:`edge_connectivity` + :meth:`maximum_flow` + :meth:`edmonds_karp` + :meth:`preflow_push` + :meth:`shortest_augmenting_path` + + References + ---------- + .. [1] Abdol-Hossein Esfahanian. Connectivity Algorithms. + http://www.cse.msu.edu/~cse835/Papers/Graph_connectivity_revised.pdf + + """ + if auxiliary is None: + H = build_auxiliary_node_connectivity(G) + else: + H = auxiliary + + mapping = H.graph.get("mapping", None) + if mapping is None: + raise nx.NetworkXError("Invalid auxiliary digraph.") + if G.has_edge(s, t) or G.has_edge(t, s): + return set() + kwargs = {"flow_func": flow_func, "residual": residual, "auxiliary": H} + + # The edge cut in the auxiliary digraph corresponds to the node cut in the + # original graph. + edge_cut = minimum_st_edge_cut(H, f"{mapping[s]}B", f"{mapping[t]}A", **kwargs) + # Each node in the original graph maps to two nodes of the auxiliary graph + node_cut = {H.nodes[node]["id"] for edge in edge_cut for node in edge} + return node_cut - {s, t} + + +@nx._dispatchable +def minimum_node_cut(G, s=None, t=None, flow_func=None): + r"""Returns a set of nodes of minimum cardinality that disconnects G. + + If source and target nodes are provided, this function returns the + set of nodes of minimum cardinality that, if removed, would destroy + all paths among source and target in G. If not, it returns a set + of nodes of minimum cardinality that disconnects G. + + Parameters + ---------- + G : NetworkX graph + + s : node + Source node. Optional. Default value: None. + + t : node + Target node. Optional. Default value: None. + + flow_func : function + A function for computing the maximum flow among a pair of nodes. + The function has to accept at least three parameters: a Digraph, + a source node, and a target node. And return a residual network + that follows NetworkX conventions (see :meth:`maximum_flow` for + details). If flow_func is None, the default maximum flow function + (:meth:`edmonds_karp`) is used. See below for details. The + choice of the default function may change from version + to version and should not be relied on. Default value: None. + + Returns + ------- + cutset : set + Set of nodes that, if removed, would disconnect G. If source + and target nodes are provided, the set contains the nodes that + if removed, would destroy all paths between source and target. + + Examples + -------- + >>> # Platonic icosahedral graph has node connectivity 5 + >>> G = nx.icosahedral_graph() + >>> node_cut = nx.minimum_node_cut(G) + >>> len(node_cut) + 5 + + You can use alternative flow algorithms for the underlying maximum + flow computation. In dense networks the algorithm + :meth:`shortest_augmenting_path` will usually perform better + than the default :meth:`edmonds_karp`, which is faster for + sparse networks with highly skewed degree distributions. Alternative + flow functions have to be explicitly imported from the flow package. + + >>> from networkx.algorithms.flow import shortest_augmenting_path + >>> node_cut == nx.minimum_node_cut(G, flow_func=shortest_augmenting_path) + True + + If you specify a pair of nodes (source and target) as parameters, + this function returns a local st node cut. + + >>> len(nx.minimum_node_cut(G, 3, 7)) + 5 + + If you need to perform several local st cuts among different + pairs of nodes on the same graph, it is recommended that you reuse + the data structures used in the maximum flow computations. See + :meth:`minimum_st_node_cut` for details. + + Notes + ----- + This is a flow based implementation of minimum node cut. The algorithm + is based in solving a number of maximum flow computations to determine + the capacity of the minimum cut on an auxiliary directed network that + corresponds to the minimum node cut of G. It handles both directed + and undirected graphs. This implementation is based on algorithm 11 + in [1]_. + + See also + -------- + :meth:`minimum_st_node_cut` + :meth:`minimum_cut` + :meth:`minimum_edge_cut` + :meth:`stoer_wagner` + :meth:`node_connectivity` + :meth:`edge_connectivity` + :meth:`maximum_flow` + :meth:`edmonds_karp` + :meth:`preflow_push` + :meth:`shortest_augmenting_path` + + References + ---------- + .. [1] Abdol-Hossein Esfahanian. Connectivity Algorithms. + http://www.cse.msu.edu/~cse835/Papers/Graph_connectivity_revised.pdf + + """ + if (s is not None and t is None) or (s is None and t is not None): + raise nx.NetworkXError("Both source and target must be specified.") + + # Local minimum node cut. + if s is not None and t is not None: + if s not in G: + raise nx.NetworkXError(f"node {s} not in graph") + if t not in G: + raise nx.NetworkXError(f"node {t} not in graph") + return minimum_st_node_cut(G, s, t, flow_func=flow_func) + + # Global minimum node cut. + # Analog to the algorithm 11 for global node connectivity in [1]. + if G.is_directed(): + if not nx.is_weakly_connected(G): + raise nx.NetworkXError("Input graph is not connected") + iter_func = itertools.permutations + + def neighbors(v): + return itertools.chain.from_iterable([G.predecessors(v), G.successors(v)]) + + else: + if not nx.is_connected(G): + raise nx.NetworkXError("Input graph is not connected") + iter_func = itertools.combinations + neighbors = G.neighbors + + # Reuse the auxiliary digraph and the residual network. + H = build_auxiliary_node_connectivity(G) + R = build_residual_network(H, "capacity") + kwargs = {"flow_func": flow_func, "auxiliary": H, "residual": R} + + # Choose a node with minimum degree. + v = min(G, key=G.degree) + # Initial node cutset is all neighbors of the node with minimum degree. + min_cut = set(G[v]) + # Compute st node cuts between v and all its non-neighbors nodes in G. + for w in set(G) - set(neighbors(v)) - {v}: + this_cut = minimum_st_node_cut(G, v, w, **kwargs) + if len(min_cut) >= len(this_cut): + min_cut = this_cut + # Also for non adjacent pairs of neighbors of v. + for x, y in iter_func(neighbors(v), 2): + if y in G[x]: + continue + this_cut = minimum_st_node_cut(G, x, y, **kwargs) + if len(min_cut) >= len(this_cut): + min_cut = this_cut + + return min_cut + + +@nx._dispatchable +def minimum_edge_cut(G, s=None, t=None, flow_func=None): + r"""Returns a set of edges of minimum cardinality that disconnects G. + + If source and target nodes are provided, this function returns the + set of edges of minimum cardinality that, if removed, would break + all paths among source and target in G. If not, it returns a set of + edges of minimum cardinality that disconnects G. + + Parameters + ---------- + G : NetworkX graph + + s : node + Source node. Optional. Default value: None. + + t : node + Target node. Optional. Default value: None. + + flow_func : function + A function for computing the maximum flow among a pair of nodes. + The function has to accept at least three parameters: a Digraph, + a source node, and a target node. And return a residual network + that follows NetworkX conventions (see :meth:`maximum_flow` for + details). If flow_func is None, the default maximum flow function + (:meth:`edmonds_karp`) is used. See below for details. The + choice of the default function may change from version + to version and should not be relied on. Default value: None. + + Returns + ------- + cutset : set + Set of edges that, if removed, would disconnect G. If source + and target nodes are provided, the set contains the edges that + if removed, would destroy all paths between source and target. + + Examples + -------- + >>> # Platonic icosahedral graph has edge connectivity 5 + >>> G = nx.icosahedral_graph() + >>> len(nx.minimum_edge_cut(G)) + 5 + + You can use alternative flow algorithms for the underlying + maximum flow computation. In dense networks the algorithm + :meth:`shortest_augmenting_path` will usually perform better + than the default :meth:`edmonds_karp`, which is faster for + sparse networks with highly skewed degree distributions. + Alternative flow functions have to be explicitly imported + from the flow package. + + >>> from networkx.algorithms.flow import shortest_augmenting_path + >>> len(nx.minimum_edge_cut(G, flow_func=shortest_augmenting_path)) + 5 + + If you specify a pair of nodes (source and target) as parameters, + this function returns the value of local edge connectivity. + + >>> nx.edge_connectivity(G, 3, 7) + 5 + + If you need to perform several local computations among different + pairs of nodes on the same graph, it is recommended that you reuse + the data structures used in the maximum flow computations. See + :meth:`local_edge_connectivity` for details. + + Notes + ----- + This is a flow based implementation of minimum edge cut. For + undirected graphs the algorithm works by finding a 'small' dominating + set of nodes of G (see algorithm 7 in [1]_) and computing the maximum + flow between an arbitrary node in the dominating set and the rest of + nodes in it. This is an implementation of algorithm 6 in [1]_. For + directed graphs, the algorithm does n calls to the max flow function. + The function raises an error if the directed graph is not weakly + connected and returns an empty set if it is weakly connected. + It is an implementation of algorithm 8 in [1]_. + + See also + -------- + :meth:`minimum_st_edge_cut` + :meth:`minimum_node_cut` + :meth:`stoer_wagner` + :meth:`node_connectivity` + :meth:`edge_connectivity` + :meth:`maximum_flow` + :meth:`edmonds_karp` + :meth:`preflow_push` + :meth:`shortest_augmenting_path` + + References + ---------- + .. [1] Abdol-Hossein Esfahanian. Connectivity Algorithms. + http://www.cse.msu.edu/~cse835/Papers/Graph_connectivity_revised.pdf + + """ + if (s is not None and t is None) or (s is None and t is not None): + raise nx.NetworkXError("Both source and target must be specified.") + + # reuse auxiliary digraph and residual network + H = build_auxiliary_edge_connectivity(G) + R = build_residual_network(H, "capacity") + kwargs = {"flow_func": flow_func, "residual": R, "auxiliary": H} + + # Local minimum edge cut if s and t are not None + if s is not None and t is not None: + if s not in G: + raise nx.NetworkXError(f"node {s} not in graph") + if t not in G: + raise nx.NetworkXError(f"node {t} not in graph") + return minimum_st_edge_cut(H, s, t, **kwargs) + + # Global minimum edge cut + # Analog to the algorithm for global edge connectivity + if G.is_directed(): + # Based on algorithm 8 in [1] + if not nx.is_weakly_connected(G): + raise nx.NetworkXError("Input graph is not connected") + + # Initial cutset is all edges of a node with minimum degree + node = min(G, key=G.degree) + min_cut = set(G.edges(node)) + nodes = list(G) + n = len(nodes) + for i in range(n): + try: + this_cut = minimum_st_edge_cut(H, nodes[i], nodes[i + 1], **kwargs) + if len(this_cut) <= len(min_cut): + min_cut = this_cut + except IndexError: # Last node! + this_cut = minimum_st_edge_cut(H, nodes[i], nodes[0], **kwargs) + if len(this_cut) <= len(min_cut): + min_cut = this_cut + + return min_cut + + else: # undirected + # Based on algorithm 6 in [1] + if not nx.is_connected(G): + raise nx.NetworkXError("Input graph is not connected") + + # Initial cutset is all edges of a node with minimum degree + node = min(G, key=G.degree) + min_cut = set(G.edges(node)) + # A dominating set is \lambda-covering + # We need a dominating set with at least two nodes + for node in G: + D = nx.dominating_set(G, start_with=node) + v = D.pop() + if D: + break + else: + # in complete graphs the dominating set will always be of one node + # thus we return min_cut, which now contains the edges of a node + # with minimum degree + return min_cut + for w in D: + this_cut = minimum_st_edge_cut(H, v, w, **kwargs) + if len(this_cut) <= len(min_cut): + min_cut = this_cut + + return min_cut diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/disjoint_paths.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/disjoint_paths.py new file mode 100644 index 0000000000000000000000000000000000000000..fdd85225fb0818d9ad3ad60f27b0ee8bb6ebb6c2 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/disjoint_paths.py @@ -0,0 +1,408 @@ +"""Flow based node and edge disjoint paths.""" + +from itertools import filterfalse as _filterfalse + +import networkx as nx + +# Define the default maximum flow function to use for the underlying +# maximum flow computations +from networkx.algorithms.flow import ( + edmonds_karp, + preflow_push, + shortest_augmenting_path, +) +from networkx.exception import NetworkXNoPath + +# Functions to build auxiliary data structures. +from .utils import build_auxiliary_edge_connectivity, build_auxiliary_node_connectivity + +__all__ = ["edge_disjoint_paths", "node_disjoint_paths"] +default_flow_func = edmonds_karp + + +@nx._dispatchable( + graphs={"G": 0, "auxiliary?": 5}, + preserve_edge_attrs={"auxiliary": {"capacity": float("inf")}}, +) +def edge_disjoint_paths( + G, s, t, flow_func=None, cutoff=None, auxiliary=None, residual=None +): + """Returns the edges disjoint paths between source and target. + + Edge disjoint paths are paths that do not share any edge. The + number of edge disjoint paths between source and target is equal + to their edge connectivity. + + Parameters + ---------- + G : NetworkX graph + + s : node + Source node for the flow. + + t : node + Sink node for the flow. + + flow_func : function + A function for computing the maximum flow among a pair of nodes. + The function has to accept at least three parameters: a Digraph, + a source node, and a target node. And return a residual network + that follows NetworkX conventions (see :meth:`maximum_flow` for + details). If flow_func is None, the default maximum flow function + (:meth:`edmonds_karp`) is used. The choice of the default function + may change from version to version and should not be relied on. + Default value: None. + + cutoff : integer or None (default: None) + Maximum number of paths to yield. If specified, the maximum flow + algorithm will terminate when the flow value reaches or exceeds the + cutoff. This only works for flows that support the cutoff parameter + (most do) and is ignored otherwise. + + auxiliary : NetworkX DiGraph + Auxiliary digraph to compute flow based edge connectivity. It has + to have a graph attribute called mapping with a dictionary mapping + node names in G and in the auxiliary digraph. If provided + it will be reused instead of recreated. Default value: None. + + residual : NetworkX DiGraph + Residual network to compute maximum flow. If provided it will be + reused instead of recreated. Default value: None. + + Returns + ------- + paths : generator + A generator of edge independent paths. + + Raises + ------ + NetworkXNoPath + If there is no path between source and target. + + NetworkXError + If source or target are not in the graph G. + + See also + -------- + :meth:`node_disjoint_paths` + :meth:`edge_connectivity` + :meth:`maximum_flow` + :meth:`edmonds_karp` + :meth:`preflow_push` + :meth:`shortest_augmenting_path` + + Examples + -------- + We use in this example the platonic icosahedral graph, which has node + edge connectivity 5, thus there are 5 edge disjoint paths between any + pair of nodes. + + >>> G = nx.icosahedral_graph() + >>> len(list(nx.edge_disjoint_paths(G, 0, 6))) + 5 + + + If you need to compute edge disjoint paths on several pairs of + nodes in the same graph, it is recommended that you reuse the + data structures that NetworkX uses in the computation: the + auxiliary digraph for edge connectivity, and the residual + network for the underlying maximum flow computation. + + Example of how to compute edge disjoint paths among all pairs of + nodes of the platonic icosahedral graph reusing the data + structures. + + >>> import itertools + >>> # You also have to explicitly import the function for + >>> # building the auxiliary digraph from the connectivity package + >>> from networkx.algorithms.connectivity import build_auxiliary_edge_connectivity + >>> H = build_auxiliary_edge_connectivity(G) + >>> # And the function for building the residual network from the + >>> # flow package + >>> from networkx.algorithms.flow import build_residual_network + >>> # Note that the auxiliary digraph has an edge attribute named capacity + >>> R = build_residual_network(H, "capacity") + >>> result = {n: {} for n in G} + >>> # Reuse the auxiliary digraph and the residual network by passing them + >>> # as arguments + >>> for u, v in itertools.combinations(G, 2): + ... k = len(list(nx.edge_disjoint_paths(G, u, v, auxiliary=H, residual=R))) + ... result[u][v] = k + >>> all(result[u][v] == 5 for u, v in itertools.combinations(G, 2)) + True + + You can also use alternative flow algorithms for computing edge disjoint + paths. For instance, in dense networks the algorithm + :meth:`shortest_augmenting_path` will usually perform better than + the default :meth:`edmonds_karp` which is faster for sparse + networks with highly skewed degree distributions. Alternative flow + functions have to be explicitly imported from the flow package. + + >>> from networkx.algorithms.flow import shortest_augmenting_path + >>> len(list(nx.edge_disjoint_paths(G, 0, 6, flow_func=shortest_augmenting_path))) + 5 + + Notes + ----- + This is a flow based implementation of edge disjoint paths. We compute + the maximum flow between source and target on an auxiliary directed + network. The saturated edges in the residual network after running the + maximum flow algorithm correspond to edge disjoint paths between source + and target in the original network. This function handles both directed + and undirected graphs, and can use all flow algorithms from NetworkX flow + package. + + """ + if s not in G: + raise nx.NetworkXError(f"node {s} not in graph") + if t not in G: + raise nx.NetworkXError(f"node {t} not in graph") + + if flow_func is None: + flow_func = default_flow_func + + if auxiliary is None: + H = build_auxiliary_edge_connectivity(G) + else: + H = auxiliary + + # Maximum possible edge disjoint paths + possible = min(H.out_degree(s), H.in_degree(t)) + if not possible: + raise NetworkXNoPath + + if cutoff is None: + cutoff = possible + else: + cutoff = min(cutoff, possible) + + # Compute maximum flow between source and target. Flow functions in + # NetworkX return a residual network. + kwargs = { + "capacity": "capacity", + "residual": residual, + "cutoff": cutoff, + "value_only": True, + } + if flow_func is preflow_push: + del kwargs["cutoff"] + if flow_func is shortest_augmenting_path: + kwargs["two_phase"] = True + R = flow_func(H, s, t, **kwargs) + + if R.graph["flow_value"] == 0: + raise NetworkXNoPath + + # Saturated edges in the residual network form the edge disjoint paths + # between source and target + cutset = [ + (u, v) + for u, v, d in R.edges(data=True) + if d["capacity"] == d["flow"] and d["flow"] > 0 + ] + # This is equivalent of what flow.utils.build_flow_dict returns, but + # only for the nodes with saturated edges and without reporting 0 flows. + flow_dict = {n: {} for edge in cutset for n in edge} + for u, v in cutset: + flow_dict[u][v] = 1 + + # Rebuild the edge disjoint paths from the flow dictionary. + paths_found = 0 + for v in list(flow_dict[s]): + if paths_found >= cutoff: + # preflow_push does not support cutoff: we have to + # keep track of the paths founds and stop at cutoff. + break + path = [s] + if v == t: + path.append(v) + yield path + continue + u = v + while u != t: + path.append(u) + try: + u, _ = flow_dict[u].popitem() + except KeyError: + break + else: + path.append(t) + yield path + paths_found += 1 + + +@nx._dispatchable( + graphs={"G": 0, "auxiliary?": 5}, + preserve_node_attrs={"auxiliary": {"id": None}}, + preserve_graph_attrs={"auxiliary"}, +) +def node_disjoint_paths( + G, s, t, flow_func=None, cutoff=None, auxiliary=None, residual=None +): + r"""Computes node disjoint paths between source and target. + + Node disjoint paths are paths that only share their first and last + nodes. The number of node independent paths between two nodes is + equal to their local node connectivity. + + Parameters + ---------- + G : NetworkX graph + + s : node + Source node. + + t : node + Target node. + + flow_func : function + A function for computing the maximum flow among a pair of nodes. + The function has to accept at least three parameters: a Digraph, + a source node, and a target node. And return a residual network + that follows NetworkX conventions (see :meth:`maximum_flow` for + details). If flow_func is None, the default maximum flow function + (:meth:`edmonds_karp`) is used. See below for details. The choice + of the default function may change from version to version and + should not be relied on. Default value: None. + + cutoff : integer or None (default: None) + Maximum number of paths to yield. If specified, the maximum flow + algorithm will terminate when the flow value reaches or exceeds the + cutoff. This only works for flows that support the cutoff parameter + (most do) and is ignored otherwise. + + auxiliary : NetworkX DiGraph + Auxiliary digraph to compute flow based node connectivity. It has + to have a graph attribute called mapping with a dictionary mapping + node names in G and in the auxiliary digraph. If provided + it will be reused instead of recreated. Default value: None. + + residual : NetworkX DiGraph + Residual network to compute maximum flow. If provided it will be + reused instead of recreated. Default value: None. + + Returns + ------- + paths : generator + Generator of node disjoint paths. + + Raises + ------ + NetworkXNoPath + If there is no path between source and target. + + NetworkXError + If source or target are not in the graph G. + + Examples + -------- + We use in this example the platonic icosahedral graph, which has node + connectivity 5, thus there are 5 node disjoint paths between any pair + of non neighbor nodes. + + >>> G = nx.icosahedral_graph() + >>> len(list(nx.node_disjoint_paths(G, 0, 6))) + 5 + + If you need to compute node disjoint paths between several pairs of + nodes in the same graph, it is recommended that you reuse the + data structures that NetworkX uses in the computation: the + auxiliary digraph for node connectivity and node cuts, and the + residual network for the underlying maximum flow computation. + + Example of how to compute node disjoint paths reusing the data + structures: + + >>> # You also have to explicitly import the function for + >>> # building the auxiliary digraph from the connectivity package + >>> from networkx.algorithms.connectivity import build_auxiliary_node_connectivity + >>> H = build_auxiliary_node_connectivity(G) + >>> # And the function for building the residual network from the + >>> # flow package + >>> from networkx.algorithms.flow import build_residual_network + >>> # Note that the auxiliary digraph has an edge attribute named capacity + >>> R = build_residual_network(H, "capacity") + >>> # Reuse the auxiliary digraph and the residual network by passing them + >>> # as arguments + >>> len(list(nx.node_disjoint_paths(G, 0, 6, auxiliary=H, residual=R))) + 5 + + You can also use alternative flow algorithms for computing node disjoint + paths. For instance, in dense networks the algorithm + :meth:`shortest_augmenting_path` will usually perform better than + the default :meth:`edmonds_karp` which is faster for sparse + networks with highly skewed degree distributions. Alternative flow + functions have to be explicitly imported from the flow package. + + >>> from networkx.algorithms.flow import shortest_augmenting_path + >>> len(list(nx.node_disjoint_paths(G, 0, 6, flow_func=shortest_augmenting_path))) + 5 + + Notes + ----- + This is a flow based implementation of node disjoint paths. We compute + the maximum flow between source and target on an auxiliary directed + network. The saturated edges in the residual network after running the + maximum flow algorithm correspond to node disjoint paths between source + and target in the original network. This function handles both directed + and undirected graphs, and can use all flow algorithms from NetworkX flow + package. + + See also + -------- + :meth:`edge_disjoint_paths` + :meth:`node_connectivity` + :meth:`maximum_flow` + :meth:`edmonds_karp` + :meth:`preflow_push` + :meth:`shortest_augmenting_path` + + """ + if s not in G: + raise nx.NetworkXError(f"node {s} not in graph") + if t not in G: + raise nx.NetworkXError(f"node {t} not in graph") + + if auxiliary is None: + H = build_auxiliary_node_connectivity(G) + else: + H = auxiliary + + mapping = H.graph.get("mapping", None) + if mapping is None: + raise nx.NetworkXError("Invalid auxiliary digraph.") + + # Maximum possible edge disjoint paths + possible = min(H.out_degree(f"{mapping[s]}B"), H.in_degree(f"{mapping[t]}A")) + if not possible: + raise NetworkXNoPath + + if cutoff is None: + cutoff = possible + else: + cutoff = min(cutoff, possible) + + kwargs = { + "flow_func": flow_func, + "residual": residual, + "auxiliary": H, + "cutoff": cutoff, + } + + # The edge disjoint paths in the auxiliary digraph correspond to the node + # disjoint paths in the original graph. + paths_edges = edge_disjoint_paths(H, f"{mapping[s]}B", f"{mapping[t]}A", **kwargs) + for path in paths_edges: + # Each node in the original graph maps to two nodes in auxiliary graph + yield list(_unique_everseen(H.nodes[node]["id"] for node in path)) + + +def _unique_everseen(iterable): + # Adapted from https://docs.python.org/3/library/itertools.html examples + "List unique elements, preserving order. Remember all elements ever seen." + # unique_everseen('AAAABBBCCDAABBB') --> A B C D + seen = set() + seen_add = seen.add + for element in _filterfalse(seen.__contains__, iterable): + seen_add(element) + yield element diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/edge_augmentation.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/edge_augmentation.py new file mode 100644 index 0000000000000000000000000000000000000000..6dfe0140268608c183e6d0122fe927dcf164a508 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/edge_augmentation.py @@ -0,0 +1,1270 @@ +""" +Algorithms for finding k-edge-augmentations + +A k-edge-augmentation is a set of edges, that once added to a graph, ensures +that the graph is k-edge-connected; i.e. the graph cannot be disconnected +unless k or more edges are removed. Typically, the goal is to find the +augmentation with minimum weight. In general, it is not guaranteed that a +k-edge-augmentation exists. + +See Also +-------- +:mod:`edge_kcomponents` : algorithms for finding k-edge-connected components +:mod:`connectivity` : algorithms for determining edge connectivity. +""" + +import itertools as it +import math +from collections import defaultdict, namedtuple + +import networkx as nx +from networkx.utils import not_implemented_for, py_random_state + +__all__ = ["k_edge_augmentation", "is_k_edge_connected", "is_locally_k_edge_connected"] + + +@not_implemented_for("directed") +@not_implemented_for("multigraph") +@nx._dispatchable +def is_k_edge_connected(G, k): + """Tests to see if a graph is k-edge-connected. + + Is it impossible to disconnect the graph by removing fewer than k edges? + If so, then G is k-edge-connected. + + Parameters + ---------- + G : NetworkX graph + An undirected graph. + + k : integer + edge connectivity to test for + + Returns + ------- + boolean + True if G is k-edge-connected. + + See Also + -------- + :func:`is_locally_k_edge_connected` + + Examples + -------- + >>> G = nx.barbell_graph(10, 0) + >>> nx.is_k_edge_connected(G, k=1) + True + >>> nx.is_k_edge_connected(G, k=2) + False + """ + if k < 1: + raise ValueError(f"k must be positive, not {k}") + # First try to quickly determine if G is not k-edge-connected + if G.number_of_nodes() < k + 1: + return False + elif any(d < k for n, d in G.degree()): + return False + else: + # Otherwise perform the full check + if k == 1: + return nx.is_connected(G) + elif k == 2: + return nx.is_connected(G) and not nx.has_bridges(G) + else: + return nx.edge_connectivity(G, cutoff=k) >= k + + +@not_implemented_for("directed") +@not_implemented_for("multigraph") +@nx._dispatchable +def is_locally_k_edge_connected(G, s, t, k): + """Tests to see if an edge in a graph is locally k-edge-connected. + + Is it impossible to disconnect s and t by removing fewer than k edges? + If so, then s and t are locally k-edge-connected in G. + + Parameters + ---------- + G : NetworkX graph + An undirected graph. + + s : node + Source node + + t : node + Target node + + k : integer + local edge connectivity for nodes s and t + + Returns + ------- + boolean + True if s and t are locally k-edge-connected in G. + + See Also + -------- + :func:`is_k_edge_connected` + + Examples + -------- + >>> from networkx.algorithms.connectivity import is_locally_k_edge_connected + >>> G = nx.barbell_graph(10, 0) + >>> is_locally_k_edge_connected(G, 5, 15, k=1) + True + >>> is_locally_k_edge_connected(G, 5, 15, k=2) + False + >>> is_locally_k_edge_connected(G, 1, 5, k=2) + True + """ + if k < 1: + raise ValueError(f"k must be positive, not {k}") + + # First try to quickly determine s, t is not k-locally-edge-connected in G + if G.degree(s) < k or G.degree(t) < k: + return False + else: + # Otherwise perform the full check + if k == 1: + return nx.has_path(G, s, t) + else: + localk = nx.connectivity.local_edge_connectivity(G, s, t, cutoff=k) + return localk >= k + + +@not_implemented_for("directed") +@not_implemented_for("multigraph") +@nx._dispatchable +def k_edge_augmentation(G, k, avail=None, weight=None, partial=False): + """Finds set of edges to k-edge-connect G. + + Adding edges from the augmentation to G make it impossible to disconnect G + unless k or more edges are removed. This function uses the most efficient + function available (depending on the value of k and if the problem is + weighted or unweighted) to search for a minimum weight subset of available + edges that k-edge-connects G. In general, finding a k-edge-augmentation is + NP-hard, so solutions are not guaranteed to be minimal. Furthermore, a + k-edge-augmentation may not exist. + + Parameters + ---------- + G : NetworkX graph + An undirected graph. + + k : integer + Desired edge connectivity + + avail : dict or a set of 2 or 3 tuples + The available edges that can be used in the augmentation. + + If unspecified, then all edges in the complement of G are available. + Otherwise, each item is an available edge (with an optional weight). + + In the unweighted case, each item is an edge ``(u, v)``. + + In the weighted case, each item is a 3-tuple ``(u, v, d)`` or a dict + with items ``(u, v): d``. The third item, ``d``, can be a dictionary + or a real number. If ``d`` is a dictionary ``d[weight]`` + correspondings to the weight. + + weight : string + key to use to find weights if ``avail`` is a set of 3-tuples where the + third item in each tuple is a dictionary. + + partial : boolean + If partial is True and no feasible k-edge-augmentation exists, then all + a partial k-edge-augmentation is generated. Adding the edges in a + partial augmentation to G, minimizes the number of k-edge-connected + components and maximizes the edge connectivity between those + components. For details, see :func:`partial_k_edge_augmentation`. + + Yields + ------ + edge : tuple + Edges that, once added to G, would cause G to become k-edge-connected. + If partial is False, an error is raised if this is not possible. + Otherwise, generated edges form a partial augmentation, which + k-edge-connects any part of G where it is possible, and maximally + connects the remaining parts. + + Raises + ------ + NetworkXUnfeasible + If partial is False and no k-edge-augmentation exists. + + NetworkXNotImplemented + If the input graph is directed or a multigraph. + + ValueError: + If k is less than 1 + + Notes + ----- + When k=1 this returns an optimal solution. + + When k=2 and ``avail`` is None, this returns an optimal solution. + Otherwise when k=2, this returns a 2-approximation of the optimal solution. + + For k>3, this problem is NP-hard and this uses a randomized algorithm that + produces a feasible solution, but provides no guarantees on the + solution weight. + + Examples + -------- + >>> # Unweighted cases + >>> G = nx.path_graph((1, 2, 3, 4)) + >>> G.add_node(5) + >>> sorted(nx.k_edge_augmentation(G, k=1)) + [(1, 5)] + >>> sorted(nx.k_edge_augmentation(G, k=2)) + [(1, 5), (5, 4)] + >>> sorted(nx.k_edge_augmentation(G, k=3)) + [(1, 4), (1, 5), (2, 5), (3, 5), (4, 5)] + >>> complement = list(nx.k_edge_augmentation(G, k=5, partial=True)) + >>> G.add_edges_from(complement) + >>> nx.edge_connectivity(G) + 4 + + >>> # Weighted cases + >>> G = nx.path_graph((1, 2, 3, 4)) + >>> G.add_node(5) + >>> # avail can be a tuple with a dict + >>> avail = [(1, 5, {"weight": 11}), (2, 5, {"weight": 10})] + >>> sorted(nx.k_edge_augmentation(G, k=1, avail=avail, weight="weight")) + [(2, 5)] + >>> # or avail can be a 3-tuple with a real number + >>> avail = [(1, 5, 11), (2, 5, 10), (4, 3, 1), (4, 5, 51)] + >>> sorted(nx.k_edge_augmentation(G, k=2, avail=avail)) + [(1, 5), (2, 5), (4, 5)] + >>> # or avail can be a dict + >>> avail = {(1, 5): 11, (2, 5): 10, (4, 3): 1, (4, 5): 51} + >>> sorted(nx.k_edge_augmentation(G, k=2, avail=avail)) + [(1, 5), (2, 5), (4, 5)] + >>> # If augmentation is infeasible, then a partial solution can be found + >>> avail = {(1, 5): 11} + >>> sorted(nx.k_edge_augmentation(G, k=2, avail=avail, partial=True)) + [(1, 5)] + """ + try: + if k <= 0: + raise ValueError(f"k must be a positive integer, not {k}") + elif G.number_of_nodes() < k + 1: + msg = f"impossible to {k} connect in graph with less than {k + 1} nodes" + raise nx.NetworkXUnfeasible(msg) + elif avail is not None and len(avail) == 0: + if not nx.is_k_edge_connected(G, k): + raise nx.NetworkXUnfeasible("no available edges") + aug_edges = [] + elif k == 1: + aug_edges = one_edge_augmentation( + G, avail=avail, weight=weight, partial=partial + ) + elif k == 2: + aug_edges = bridge_augmentation(G, avail=avail, weight=weight) + else: + # raise NotImplementedError(f'not implemented for k>2. k={k}') + aug_edges = greedy_k_edge_augmentation( + G, k=k, avail=avail, weight=weight, seed=0 + ) + # Do eager evaluation so we can catch any exceptions + # Before executing partial code. + yield from list(aug_edges) + except nx.NetworkXUnfeasible: + if partial: + # Return all available edges + if avail is None: + aug_edges = complement_edges(G) + else: + # If we can't k-edge-connect the entire graph, try to + # k-edge-connect as much as possible + aug_edges = partial_k_edge_augmentation( + G, k=k, avail=avail, weight=weight + ) + yield from aug_edges + else: + raise + + +@nx._dispatchable +def partial_k_edge_augmentation(G, k, avail, weight=None): + """Finds augmentation that k-edge-connects as much of the graph as possible. + + When a k-edge-augmentation is not possible, we can still try to find a + small set of edges that partially k-edge-connects as much of the graph as + possible. All possible edges are generated between remaining parts. + This minimizes the number of k-edge-connected subgraphs in the resulting + graph and maximizes the edge connectivity between those subgraphs. + + Parameters + ---------- + G : NetworkX graph + An undirected graph. + + k : integer + Desired edge connectivity + + avail : dict or a set of 2 or 3 tuples + For more details, see :func:`k_edge_augmentation`. + + weight : string + key to use to find weights if ``avail`` is a set of 3-tuples. + For more details, see :func:`k_edge_augmentation`. + + Yields + ------ + edge : tuple + Edges in the partial augmentation of G. These edges k-edge-connect any + part of G where it is possible, and maximally connects the remaining + parts. In other words, all edges from avail are generated except for + those within subgraphs that have already become k-edge-connected. + + Notes + ----- + Construct H that augments G with all edges in avail. + Find the k-edge-subgraphs of H. + For each k-edge-subgraph, if the number of nodes is more than k, then find + the k-edge-augmentation of that graph and add it to the solution. Then add + all edges in avail between k-edge subgraphs to the solution. + + See Also + -------- + :func:`k_edge_augmentation` + + Examples + -------- + >>> G = nx.path_graph((1, 2, 3, 4, 5, 6, 7)) + >>> G.add_node(8) + >>> avail = [(1, 3), (1, 4), (1, 5), (2, 4), (2, 5), (3, 5), (1, 8)] + >>> sorted(partial_k_edge_augmentation(G, k=2, avail=avail)) + [(1, 5), (1, 8)] + """ + + def _edges_between_disjoint(H, only1, only2): + """finds edges between disjoint nodes""" + only1_adj = {u: set(H.adj[u]) for u in only1} + for u, neighbs in only1_adj.items(): + # Find the neighbors of u in only1 that are also in only2 + neighbs12 = neighbs.intersection(only2) + for v in neighbs12: + yield (u, v) + + avail_uv, avail_w = _unpack_available_edges(avail, weight=weight, G=G) + + # Find which parts of the graph can be k-edge-connected + H = G.copy() + H.add_edges_from( + ( + (u, v, {"weight": w, "generator": (u, v)}) + for (u, v), w in zip(avail, avail_w) + ) + ) + k_edge_subgraphs = list(nx.k_edge_subgraphs(H, k=k)) + + # Generate edges to k-edge-connect internal subgraphs + for nodes in k_edge_subgraphs: + if len(nodes) > 1: + # Get the k-edge-connected subgraph + C = H.subgraph(nodes).copy() + # Find the internal edges that were available + sub_avail = { + d["generator"]: d["weight"] + for (u, v, d) in C.edges(data=True) + if "generator" in d + } + # Remove potential augmenting edges + C.remove_edges_from(sub_avail.keys()) + # Find a subset of these edges that makes the component + # k-edge-connected and ignore the rest + yield from nx.k_edge_augmentation(C, k=k, avail=sub_avail) + + # Generate all edges between CCs that could not be k-edge-connected + for cc1, cc2 in it.combinations(k_edge_subgraphs, 2): + for u, v in _edges_between_disjoint(H, cc1, cc2): + d = H.get_edge_data(u, v) + edge = d.get("generator", None) + if edge is not None: + yield edge + + +@not_implemented_for("multigraph") +@not_implemented_for("directed") +@nx._dispatchable +def one_edge_augmentation(G, avail=None, weight=None, partial=False): + """Finds minimum weight set of edges to connect G. + + Equivalent to :func:`k_edge_augmentation` when k=1. Adding the resulting + edges to G will make it 1-edge-connected. The solution is optimal for both + weighted and non-weighted variants. + + Parameters + ---------- + G : NetworkX graph + An undirected graph. + + avail : dict or a set of 2 or 3 tuples + For more details, see :func:`k_edge_augmentation`. + + weight : string + key to use to find weights if ``avail`` is a set of 3-tuples. + For more details, see :func:`k_edge_augmentation`. + + partial : boolean + If partial is True and no feasible k-edge-augmentation exists, then the + augmenting edges minimize the number of connected components. + + Yields + ------ + edge : tuple + Edges in the one-augmentation of G + + Raises + ------ + NetworkXUnfeasible + If partial is False and no one-edge-augmentation exists. + + Notes + ----- + Uses either :func:`unconstrained_one_edge_augmentation` or + :func:`weighted_one_edge_augmentation` depending on whether ``avail`` is + specified. Both algorithms are based on finding a minimum spanning tree. + As such both algorithms find optimal solutions and run in linear time. + + See Also + -------- + :func:`k_edge_augmentation` + """ + if avail is None: + return unconstrained_one_edge_augmentation(G) + else: + return weighted_one_edge_augmentation( + G, avail=avail, weight=weight, partial=partial + ) + + +@not_implemented_for("multigraph") +@not_implemented_for("directed") +@nx._dispatchable +def bridge_augmentation(G, avail=None, weight=None): + """Finds the a set of edges that bridge connects G. + + Equivalent to :func:`k_edge_augmentation` when k=2, and partial=False. + Adding the resulting edges to G will make it 2-edge-connected. If no + constraints are specified the returned set of edges is minimum an optimal, + otherwise the solution is approximated. + + Parameters + ---------- + G : NetworkX graph + An undirected graph. + + avail : dict or a set of 2 or 3 tuples + For more details, see :func:`k_edge_augmentation`. + + weight : string + key to use to find weights if ``avail`` is a set of 3-tuples. + For more details, see :func:`k_edge_augmentation`. + + Yields + ------ + edge : tuple + Edges in the bridge-augmentation of G + + Raises + ------ + NetworkXUnfeasible + If no bridge-augmentation exists. + + Notes + ----- + If there are no constraints the solution can be computed in linear time + using :func:`unconstrained_bridge_augmentation`. Otherwise, the problem + becomes NP-hard and is the solution is approximated by + :func:`weighted_bridge_augmentation`. + + See Also + -------- + :func:`k_edge_augmentation` + """ + if G.number_of_nodes() < 3: + raise nx.NetworkXUnfeasible("impossible to bridge connect less than 3 nodes") + if avail is None: + return unconstrained_bridge_augmentation(G) + else: + return weighted_bridge_augmentation(G, avail, weight=weight) + + +# --- Algorithms and Helpers --- + + +def _ordered(u, v): + """Returns the nodes in an undirected edge in lower-triangular order""" + return (u, v) if u < v else (v, u) + + +def _unpack_available_edges(avail, weight=None, G=None): + """Helper to separate avail into edges and corresponding weights""" + if weight is None: + weight = "weight" + if isinstance(avail, dict): + avail_uv = list(avail.keys()) + avail_w = list(avail.values()) + else: + + def _try_getitem(d): + try: + return d[weight] + except TypeError: + return d + + avail_uv = [tup[0:2] for tup in avail] + avail_w = [1 if len(tup) == 2 else _try_getitem(tup[-1]) for tup in avail] + + if G is not None: + # Edges already in the graph are filtered + flags = [not G.has_edge(u, v) for u, v in avail_uv] + avail_uv = list(it.compress(avail_uv, flags)) + avail_w = list(it.compress(avail_w, flags)) + return avail_uv, avail_w + + +MetaEdge = namedtuple("MetaEdge", ("meta_uv", "uv", "w")) + + +def _lightest_meta_edges(mapping, avail_uv, avail_w): + """Maps available edges in the original graph to edges in the metagraph. + + Parameters + ---------- + mapping : dict + mapping produced by :func:`collapse`, that maps each node in the + original graph to a node in the meta graph + + avail_uv : list + list of edges + + avail_w : list + list of edge weights + + Notes + ----- + Each node in the metagraph is a k-edge-connected component in the original + graph. We don't care about any edge within the same k-edge-connected + component, so we ignore self edges. We also are only interested in the + minimum weight edge bridging each k-edge-connected component so, we group + the edges by meta-edge and take the lightest in each group. + + Examples + -------- + >>> # Each group represents a meta-node + >>> groups = ([1, 2, 3], [4, 5], [6]) + >>> mapping = {n: meta_n for meta_n, ns in enumerate(groups) for n in ns} + >>> avail_uv = [(1, 2), (3, 6), (1, 4), (5, 2), (6, 1), (2, 6), (3, 1)] + >>> avail_w = [20, 99, 20, 15, 50, 99, 20] + >>> sorted(_lightest_meta_edges(mapping, avail_uv, avail_w)) + [MetaEdge(meta_uv=(0, 1), uv=(5, 2), w=15), MetaEdge(meta_uv=(0, 2), uv=(6, 1), w=50)] + """ + grouped_wuv = defaultdict(list) + for w, (u, v) in zip(avail_w, avail_uv): + # Order the meta-edge so it can be used as a dict key + meta_uv = _ordered(mapping[u], mapping[v]) + # Group each available edge using the meta-edge as a key + grouped_wuv[meta_uv].append((w, u, v)) + + # Now that all available edges are grouped, choose one per group + for (mu, mv), choices_wuv in grouped_wuv.items(): + # Ignore available edges within the same meta-node + if mu != mv: + # Choose the lightest available edge belonging to each meta-edge + w, u, v = min(choices_wuv) + yield MetaEdge((mu, mv), (u, v), w) + + +@nx._dispatchable +def unconstrained_one_edge_augmentation(G): + """Finds the smallest set of edges to connect G. + + This is a variant of the unweighted MST problem. + If G is not empty, a feasible solution always exists. + + Parameters + ---------- + G : NetworkX graph + An undirected graph. + + Yields + ------ + edge : tuple + Edges in the one-edge-augmentation of G + + See Also + -------- + :func:`one_edge_augmentation` + :func:`k_edge_augmentation` + + Examples + -------- + >>> G = nx.Graph([(1, 2), (2, 3), (4, 5)]) + >>> G.add_nodes_from([6, 7, 8]) + >>> sorted(unconstrained_one_edge_augmentation(G)) + [(1, 4), (4, 6), (6, 7), (7, 8)] + """ + ccs1 = list(nx.connected_components(G)) + C = collapse(G, ccs1) + # When we are not constrained, we can just make a meta graph tree. + meta_nodes = list(C.nodes()) + # build a path in the metagraph + meta_aug = list(zip(meta_nodes, meta_nodes[1:])) + # map that path to the original graph + inverse = defaultdict(list) + for k, v in C.graph["mapping"].items(): + inverse[v].append(k) + for mu, mv in meta_aug: + yield (inverse[mu][0], inverse[mv][0]) + + +@nx._dispatchable +def weighted_one_edge_augmentation(G, avail, weight=None, partial=False): + """Finds the minimum weight set of edges to connect G if one exists. + + This is a variant of the weighted MST problem. + + Parameters + ---------- + G : NetworkX graph + An undirected graph. + + avail : dict or a set of 2 or 3 tuples + For more details, see :func:`k_edge_augmentation`. + + weight : string + key to use to find weights if ``avail`` is a set of 3-tuples. + For more details, see :func:`k_edge_augmentation`. + + partial : boolean + If partial is True and no feasible k-edge-augmentation exists, then the + augmenting edges minimize the number of connected components. + + Yields + ------ + edge : tuple + Edges in the subset of avail chosen to connect G. + + See Also + -------- + :func:`one_edge_augmentation` + :func:`k_edge_augmentation` + + Examples + -------- + >>> G = nx.Graph([(1, 2), (2, 3), (4, 5)]) + >>> G.add_nodes_from([6, 7, 8]) + >>> # any edge not in avail has an implicit weight of infinity + >>> avail = [(1, 3), (1, 5), (4, 7), (4, 8), (6, 1), (8, 1), (8, 2)] + >>> sorted(weighted_one_edge_augmentation(G, avail)) + [(1, 5), (4, 7), (6, 1), (8, 1)] + >>> # find another solution by giving large weights to edges in the + >>> # previous solution (note some of the old edges must be used) + >>> avail = [(1, 3), (1, 5, 99), (4, 7, 9), (6, 1, 99), (8, 1, 99), (8, 2)] + >>> sorted(weighted_one_edge_augmentation(G, avail)) + [(1, 5), (4, 7), (6, 1), (8, 2)] + """ + avail_uv, avail_w = _unpack_available_edges(avail, weight=weight, G=G) + # Collapse CCs in the original graph into nodes in a metagraph + # Then find an MST of the metagraph instead of the original graph + C = collapse(G, nx.connected_components(G)) + mapping = C.graph["mapping"] + # Assign each available edge to an edge in the metagraph + candidate_mapping = _lightest_meta_edges(mapping, avail_uv, avail_w) + # nx.set_edge_attributes(C, name='weight', values=0) + C.add_edges_from( + (mu, mv, {"weight": w, "generator": uv}) + for (mu, mv), uv, w in candidate_mapping + ) + # Find MST of the meta graph + meta_mst = nx.minimum_spanning_tree(C) + if not partial and not nx.is_connected(meta_mst): + raise nx.NetworkXUnfeasible("Not possible to connect G with available edges") + # Yield the edge that generated the meta-edge + for mu, mv, d in meta_mst.edges(data=True): + if "generator" in d: + edge = d["generator"] + yield edge + + +@nx._dispatchable +def unconstrained_bridge_augmentation(G): + """Finds an optimal 2-edge-augmentation of G using the fewest edges. + + This is an implementation of the algorithm detailed in [1]_. + The basic idea is to construct a meta-graph of bridge-ccs, connect leaf + nodes of the trees to connect the entire graph, and finally connect the + leafs of the tree in dfs-preorder to bridge connect the entire graph. + + Parameters + ---------- + G : NetworkX graph + An undirected graph. + + Yields + ------ + edge : tuple + Edges in the bridge augmentation of G + + Notes + ----- + Input: a graph G. + First find the bridge components of G and collapse each bridge-cc into a + node of a metagraph graph C, which is guaranteed to be a forest of trees. + + C contains p "leafs" --- nodes with exactly one incident edge. + C contains q "isolated nodes" --- nodes with no incident edges. + + Theorem: If p + q > 1, then at least :math:`ceil(p / 2) + q` edges are + needed to bridge connect C. This algorithm achieves this min number. + + The method first adds enough edges to make G into a tree and then pairs + leafs in a simple fashion. + + Let n be the number of trees in C. Let v(i) be an isolated vertex in the + i-th tree if one exists, otherwise it is a pair of distinct leafs nodes + in the i-th tree. Alternating edges from these sets (i.e. adding edges + A1 = [(v(i)[0], v(i + 1)[1]), v(i + 1)[0], v(i + 2)[1])...]) connects C + into a tree T. This tree has p' = p + 2q - 2(n -1) leafs and no isolated + vertices. A1 has n - 1 edges. The next step finds ceil(p' / 2) edges to + biconnect any tree with p' leafs. + + Convert T into an arborescence T' by picking an arbitrary root node with + degree >= 2 and directing all edges away from the root. Note the + implementation implicitly constructs T'. + + The leafs of T are the nodes with no existing edges in T'. + Order the leafs of T' by DFS preorder. Then break this list in half + and add the zipped pairs to A2. + + The set A = A1 + A2 is the minimum augmentation in the metagraph. + + To convert this to edges in the original graph + + References + ---------- + .. [1] Eswaran, Kapali P., and R. Endre Tarjan. (1975) Augmentation problems. + http://epubs.siam.org/doi/abs/10.1137/0205044 + + See Also + -------- + :func:`bridge_augmentation` + :func:`k_edge_augmentation` + + Examples + -------- + >>> G = nx.path_graph((1, 2, 3, 4, 5, 6, 7)) + >>> sorted(unconstrained_bridge_augmentation(G)) + [(1, 7)] + >>> G = nx.path_graph((1, 2, 3, 2, 4, 5, 6, 7)) + >>> sorted(unconstrained_bridge_augmentation(G)) + [(1, 3), (3, 7)] + >>> G = nx.Graph([(0, 1), (0, 2), (1, 2)]) + >>> G.add_node(4) + >>> sorted(unconstrained_bridge_augmentation(G)) + [(1, 4), (4, 0)] + """ + # ----- + # Mapping of terms from (Eswaran and Tarjan): + # G = G_0 - the input graph + # C = G_0' - the bridge condensation of G. (This is a forest of trees) + # A1 = A_1 - the edges to connect the forest into a tree + # leaf = pendant - a node with degree of 1 + + # alpha(v) = maps the node v in G to its meta-node in C + # beta(x) = maps the meta-node x in C to any node in the bridge + # component of G corresponding to x. + + # find the 2-edge-connected components of G + bridge_ccs = list(nx.connectivity.bridge_components(G)) + # condense G into an forest C + C = collapse(G, bridge_ccs) + + # Choose pairs of distinct leaf nodes in each tree. If this is not + # possible then make a pair using the single isolated node in the tree. + vset1 = [ + tuple(cc) * 2 # case1: an isolated node + if len(cc) == 1 + else sorted(cc, key=C.degree)[0:2] # case2: pair of leaf nodes + for cc in nx.connected_components(C) + ] + if len(vset1) > 1: + # Use this set to construct edges that connect C into a tree. + nodes1 = [vs[0] for vs in vset1] + nodes2 = [vs[1] for vs in vset1] + A1 = list(zip(nodes1[1:], nodes2)) + else: + A1 = [] + # Connect each tree in the forest to construct an arborescence + T = C.copy() + T.add_edges_from(A1) + + # If there are only two leaf nodes, we simply connect them. + leafs = [n for n, d in T.degree() if d == 1] + if len(leafs) == 1: + A2 = [] + if len(leafs) == 2: + A2 = [tuple(leafs)] + else: + # Choose an arbitrary non-leaf root + try: + root = next(n for n, d in T.degree() if d > 1) + except StopIteration: # no nodes found with degree > 1 + return + # order the leaves of C by (induced directed) preorder + v2 = [n for n in nx.dfs_preorder_nodes(T, root) if T.degree(n) == 1] + # connecting first half of the leafs in pre-order to the second + # half will bridge connect the tree with the fewest edges. + half = math.ceil(len(v2) / 2) + A2 = list(zip(v2[:half], v2[-half:])) + + # collect the edges used to augment the original forest + aug_tree_edges = A1 + A2 + + # Construct the mapping (beta) from meta-nodes to regular nodes + inverse = defaultdict(list) + for k, v in C.graph["mapping"].items(): + inverse[v].append(k) + # sort so we choose minimum degree nodes first + inverse = { + mu: sorted(mapped, key=lambda u: (G.degree(u), u)) + for mu, mapped in inverse.items() + } + + # For each meta-edge, map back to an arbitrary pair in the original graph + G2 = G.copy() + for mu, mv in aug_tree_edges: + # Find the first available edge that doesn't exist and return it + for u, v in it.product(inverse[mu], inverse[mv]): + if not G2.has_edge(u, v): + G2.add_edge(u, v) + yield u, v + break + + +@nx._dispatchable +def weighted_bridge_augmentation(G, avail, weight=None): + """Finds an approximate min-weight 2-edge-augmentation of G. + + This is an implementation of the approximation algorithm detailed in [1]_. + It chooses a set of edges from avail to add to G that renders it + 2-edge-connected if such a subset exists. This is done by finding a + minimum spanning arborescence of a specially constructed metagraph. + + Parameters + ---------- + G : NetworkX graph + An undirected graph. + + avail : set of 2 or 3 tuples. + candidate edges (with optional weights) to choose from + + weight : string + key to use to find weights if avail is a set of 3-tuples where the + third item in each tuple is a dictionary. + + Yields + ------ + edge : tuple + Edges in the subset of avail chosen to bridge augment G. + + Notes + ----- + Finding a weighted 2-edge-augmentation is NP-hard. + Any edge not in ``avail`` is considered to have a weight of infinity. + The approximation factor is 2 if ``G`` is connected and 3 if it is not. + Runs in :math:`O(m + n log(n))` time + + References + ---------- + .. [1] Khuller, Samir, and Ramakrishna Thurimella. (1993) Approximation + algorithms for graph augmentation. + http://www.sciencedirect.com/science/article/pii/S0196677483710102 + + See Also + -------- + :func:`bridge_augmentation` + :func:`k_edge_augmentation` + + Examples + -------- + >>> G = nx.path_graph((1, 2, 3, 4)) + >>> # When the weights are equal, (1, 4) is the best + >>> avail = [(1, 4, 1), (1, 3, 1), (2, 4, 1)] + >>> sorted(weighted_bridge_augmentation(G, avail)) + [(1, 4)] + >>> # Giving (1, 4) a high weight makes the two edge solution the best. + >>> avail = [(1, 4, 1000), (1, 3, 1), (2, 4, 1)] + >>> sorted(weighted_bridge_augmentation(G, avail)) + [(1, 3), (2, 4)] + >>> # ------ + >>> G = nx.path_graph((1, 2, 3, 4)) + >>> G.add_node(5) + >>> avail = [(1, 5, 11), (2, 5, 10), (4, 3, 1), (4, 5, 1)] + >>> sorted(weighted_bridge_augmentation(G, avail=avail)) + [(1, 5), (4, 5)] + >>> avail = [(1, 5, 11), (2, 5, 10), (4, 3, 1), (4, 5, 51)] + >>> sorted(weighted_bridge_augmentation(G, avail=avail)) + [(1, 5), (2, 5), (4, 5)] + """ + + if weight is None: + weight = "weight" + + # If input G is not connected the approximation factor increases to 3 + if not nx.is_connected(G): + H = G.copy() + connectors = list(one_edge_augmentation(H, avail=avail, weight=weight)) + H.add_edges_from(connectors) + + yield from connectors + else: + connectors = [] + H = G + + if len(avail) == 0: + if nx.has_bridges(H): + raise nx.NetworkXUnfeasible("no augmentation possible") + + avail_uv, avail_w = _unpack_available_edges(avail, weight=weight, G=H) + + # Collapse input into a metagraph. Meta nodes are bridge-ccs + bridge_ccs = nx.connectivity.bridge_components(H) + C = collapse(H, bridge_ccs) + + # Use the meta graph to shrink avail to a small feasible subset + mapping = C.graph["mapping"] + # Choose the minimum weight feasible edge in each group + meta_to_wuv = { + (mu, mv): (w, uv) + for (mu, mv), uv, w in _lightest_meta_edges(mapping, avail_uv, avail_w) + } + + # Mapping of terms from (Khuller and Thurimella): + # C : G_0 = (V, E^0) + # This is the metagraph where each node is a 2-edge-cc in G. + # The edges in C represent bridges in the original graph. + # (mu, mv) : E - E^0 # they group both avail and given edges in E + # T : \Gamma + # D : G^D = (V, E_D) + + # The paper uses ancestor because children point to parents, which is + # contrary to networkx standards. So, we actually need to run + # nx.least_common_ancestor on the reversed Tree. + + # Pick an arbitrary leaf from C as the root + try: + root = next(n for n, d in C.degree() if d == 1) + except StopIteration: # no nodes found with degree == 1 + return + # Root C into a tree TR by directing all edges away from the root + # Note in their paper T directs edges towards the root + TR = nx.dfs_tree(C, root) + + # Add to D the directed edges of T and set their weight to zero + # This indicates that it costs nothing to use edges that were given. + D = nx.reverse(TR).copy() + + nx.set_edge_attributes(D, name="weight", values=0) + + # The LCA of mu and mv in T is the shared ancestor of mu and mv that is + # located farthest from the root. + lca_gen = nx.tree_all_pairs_lowest_common_ancestor( + TR, root=root, pairs=meta_to_wuv.keys() + ) + + for (mu, mv), lca in lca_gen: + w, uv = meta_to_wuv[(mu, mv)] + if lca == mu: + # If u is an ancestor of v in TR, then add edge u->v to D + D.add_edge(lca, mv, weight=w, generator=uv) + elif lca == mv: + # If v is an ancestor of u in TR, then add edge v->u to D + D.add_edge(lca, mu, weight=w, generator=uv) + else: + # If neither u nor v is a ancestor of the other in TR + # let t = lca(TR, u, v) and add edges t->u and t->v + # Track the original edge that GENERATED these edges. + D.add_edge(lca, mu, weight=w, generator=uv) + D.add_edge(lca, mv, weight=w, generator=uv) + + # Then compute a minimum rooted branching + try: + # Note the original edges must be directed towards to root for the + # branching to give us a bridge-augmentation. + A = _minimum_rooted_branching(D, root) + except nx.NetworkXException as err: + # If there is no branching then augmentation is not possible + raise nx.NetworkXUnfeasible("no 2-edge-augmentation possible") from err + + # For each edge e, in the branching that did not belong to the directed + # tree T, add the corresponding edge that **GENERATED** it (this is not + # necessarily e itself!) + + # ensure the third case does not generate edges twice + bridge_connectors = set() + for mu, mv in A.edges(): + data = D.get_edge_data(mu, mv) + if "generator" in data: + # Add the avail edge that generated the branching edge. + edge = data["generator"] + bridge_connectors.add(edge) + + yield from bridge_connectors + + +def _minimum_rooted_branching(D, root): + """Helper function to compute a minimum rooted branching (aka rooted + arborescence) + + Before the branching can be computed, the directed graph must be rooted by + removing the predecessors of root. + + A branching / arborescence of rooted graph G is a subgraph that contains a + directed path from the root to every other vertex. It is the directed + analog of the minimum spanning tree problem. + + References + ---------- + [1] Khuller, Samir (2002) Advanced Algorithms Lecture 24 Notes. + https://web.archive.org/web/20121030033722/https://www.cs.umd.edu/class/spring2011/cmsc651/lec07.pdf + """ + rooted = D.copy() + # root the graph by removing all predecessors to `root`. + rooted.remove_edges_from([(u, root) for u in D.predecessors(root)]) + # Then compute the branching / arborescence. + A = nx.minimum_spanning_arborescence(rooted) + return A + + +@nx._dispatchable(returns_graph=True) +def collapse(G, grouped_nodes): + """Collapses each group of nodes into a single node. + + This is similar to condensation, but works on undirected graphs. + + Parameters + ---------- + G : NetworkX Graph + + grouped_nodes: list or generator + Grouping of nodes to collapse. The grouping must be disjoint. + If grouped_nodes are strongly_connected_components then this is + equivalent to :func:`condensation`. + + Returns + ------- + C : NetworkX Graph + The collapsed graph C of G with respect to the node grouping. The node + labels are integers corresponding to the index of the component in the + list of grouped_nodes. C has a graph attribute named 'mapping' with a + dictionary mapping the original nodes to the nodes in C to which they + belong. Each node in C also has a node attribute 'members' with the set + of original nodes in G that form the group that the node in C + represents. + + Examples + -------- + >>> # Collapses a graph using disjoint groups, but not necessarily connected + >>> G = nx.Graph([(1, 0), (2, 3), (3, 1), (3, 4), (4, 5), (5, 6), (5, 7)]) + >>> G.add_node("A") + >>> grouped_nodes = [{0, 1, 2, 3}, {5, 6, 7}] + >>> C = collapse(G, grouped_nodes) + >>> members = nx.get_node_attributes(C, "members") + >>> sorted(members.keys()) + [0, 1, 2, 3] + >>> member_values = set(map(frozenset, members.values())) + >>> assert {0, 1, 2, 3} in member_values + >>> assert {4} in member_values + >>> assert {5, 6, 7} in member_values + >>> assert {"A"} in member_values + """ + mapping = {} + members = {} + C = G.__class__() + i = 0 # required if G is empty + remaining = set(G.nodes()) + for i, group in enumerate(grouped_nodes): + group = set(group) + assert remaining.issuperset(group), ( + "grouped nodes must exist in G and be disjoint" + ) + remaining.difference_update(group) + members[i] = group + mapping.update((n, i) for n in group) + # remaining nodes are in their own group + for i, node in enumerate(remaining, start=i + 1): + group = {node} + members[i] = group + mapping.update((n, i) for n in group) + number_of_groups = i + 1 + C.add_nodes_from(range(number_of_groups)) + C.add_edges_from( + (mapping[u], mapping[v]) for u, v in G.edges() if mapping[u] != mapping[v] + ) + # Add a list of members (ie original nodes) to each node (ie scc) in C. + nx.set_node_attributes(C, name="members", values=members) + # Add mapping dict as graph attribute + C.graph["mapping"] = mapping + return C + + +@nx._dispatchable +def complement_edges(G): + """Returns only the edges in the complement of G + + Parameters + ---------- + G : NetworkX Graph + + Yields + ------ + edge : tuple + Edges in the complement of G + + Examples + -------- + >>> G = nx.path_graph((1, 2, 3, 4)) + >>> sorted(complement_edges(G)) + [(1, 3), (1, 4), (2, 4)] + >>> G = nx.path_graph((1, 2, 3, 4), nx.DiGraph()) + >>> sorted(complement_edges(G)) + [(1, 3), (1, 4), (2, 1), (2, 4), (3, 1), (3, 2), (4, 1), (4, 2), (4, 3)] + >>> G = nx.complete_graph(1000) + >>> sorted(complement_edges(G)) + [] + """ + G_adj = G._adj # Store as a variable to eliminate attribute lookup + if G.is_directed(): + for u, v in it.combinations(G.nodes(), 2): + if v not in G_adj[u]: + yield (u, v) + if u not in G_adj[v]: + yield (v, u) + else: + for u, v in it.combinations(G.nodes(), 2): + if v not in G_adj[u]: + yield (u, v) + + +def _compat_shuffle(rng, input): + """wrapper around rng.shuffle for python 2 compatibility reasons""" + rng.shuffle(input) + + +@not_implemented_for("multigraph") +@not_implemented_for("directed") +@py_random_state(4) +@nx._dispatchable +def greedy_k_edge_augmentation(G, k, avail=None, weight=None, seed=None): + """Greedy algorithm for finding a k-edge-augmentation + + Parameters + ---------- + G : NetworkX graph + An undirected graph. + + k : integer + Desired edge connectivity + + avail : dict or a set of 2 or 3 tuples + For more details, see :func:`k_edge_augmentation`. + + weight : string + key to use to find weights if ``avail`` is a set of 3-tuples. + For more details, see :func:`k_edge_augmentation`. + + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + + Yields + ------ + edge : tuple + Edges in the greedy augmentation of G + + Notes + ----- + The algorithm is simple. Edges are incrementally added between parts of the + graph that are not yet locally k-edge-connected. Then edges are from the + augmenting set are pruned as long as local-edge-connectivity is not broken. + + This algorithm is greedy and does not provide optimality guarantees. It + exists only to provide :func:`k_edge_augmentation` with the ability to + generate a feasible solution for arbitrary k. + + See Also + -------- + :func:`k_edge_augmentation` + + Examples + -------- + >>> G = nx.path_graph((1, 2, 3, 4, 5, 6, 7)) + >>> sorted(greedy_k_edge_augmentation(G, k=2)) + [(1, 7)] + >>> sorted(greedy_k_edge_augmentation(G, k=1, avail=[])) + [] + >>> G = nx.path_graph((1, 2, 3, 4, 5, 6, 7)) + >>> avail = {(u, v): 1 for (u, v) in complement_edges(G)} + >>> # randomized pruning process can produce different solutions + >>> sorted(greedy_k_edge_augmentation(G, k=4, avail=avail, seed=2)) + [(1, 3), (1, 4), (1, 5), (1, 6), (1, 7), (2, 4), (2, 6), (3, 7), (5, 7)] + >>> sorted(greedy_k_edge_augmentation(G, k=4, avail=avail, seed=3)) + [(1, 3), (1, 5), (1, 6), (2, 4), (2, 6), (3, 7), (4, 7), (5, 7)] + """ + # Result set + aug_edges = [] + + done = is_k_edge_connected(G, k) + if done: + return + if avail is None: + # all edges are available + avail_uv = list(complement_edges(G)) + avail_w = [1] * len(avail_uv) + else: + # Get the unique set of unweighted edges + avail_uv, avail_w = _unpack_available_edges(avail, weight=weight, G=G) + + # Greedy: order lightest edges. Use degree sum to tie-break + tiebreaker = [sum(map(G.degree, uv)) for uv in avail_uv] + avail_wduv = sorted(zip(avail_w, tiebreaker, avail_uv)) + avail_uv = [uv for w, d, uv in avail_wduv] + + # Incrementally add edges in until we are k-connected + H = G.copy() + for u, v in avail_uv: + done = False + if not is_locally_k_edge_connected(H, u, v, k=k): + # Only add edges in parts that are not yet locally k-edge-connected + aug_edges.append((u, v)) + H.add_edge(u, v) + # Did adding this edge help? + if H.degree(u) >= k and H.degree(v) >= k: + done = is_k_edge_connected(H, k) + if done: + break + + # Check for feasibility + if not done: + raise nx.NetworkXUnfeasible("not able to k-edge-connect with available edges") + + # Randomized attempt to reduce the size of the solution + _compat_shuffle(seed, aug_edges) + for u, v in list(aug_edges): + # Don't remove if we know it would break connectivity + if H.degree(u) <= k or H.degree(v) <= k: + continue + H.remove_edge(u, v) + aug_edges.remove((u, v)) + if not is_k_edge_connected(H, k=k): + # If removing this edge breaks feasibility, undo + H.add_edge(u, v) + aug_edges.append((u, v)) + + # Generate results + yield from aug_edges diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/edge_kcomponents.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/edge_kcomponents.py new file mode 100644 index 0000000000000000000000000000000000000000..96886f2ba39db1bb39812440e5d69b6f073b2af5 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/edge_kcomponents.py @@ -0,0 +1,592 @@ +""" +Algorithms for finding k-edge-connected components and subgraphs. + +A k-edge-connected component (k-edge-cc) is a maximal set of nodes in G, such +that all pairs of node have an edge-connectivity of at least k. + +A k-edge-connected subgraph (k-edge-subgraph) is a maximal set of nodes in G, +such that the subgraph of G defined by the nodes has an edge-connectivity at +least k. +""" + +import itertools as it +from functools import partial + +import networkx as nx +from networkx.utils import arbitrary_element, not_implemented_for + +__all__ = [ + "k_edge_components", + "k_edge_subgraphs", + "bridge_components", + "EdgeComponentAuxGraph", +] + + +@not_implemented_for("multigraph") +@nx._dispatchable +def k_edge_components(G, k): + """Generates nodes in each maximal k-edge-connected component in G. + + Parameters + ---------- + G : NetworkX graph + + k : Integer + Desired edge connectivity + + Returns + ------- + k_edge_components : a generator of k-edge-ccs. Each set of returned nodes + will have k-edge-connectivity in the graph G. + + See Also + -------- + :func:`local_edge_connectivity` + :func:`k_edge_subgraphs` : similar to this function, but the subgraph + defined by the nodes must also have k-edge-connectivity. + :func:`k_components` : similar to this function, but uses node-connectivity + instead of edge-connectivity + + Raises + ------ + NetworkXNotImplemented + If the input graph is a multigraph. + + ValueError: + If k is less than 1 + + Notes + ----- + Attempts to use the most efficient implementation available based on k. + If k=1, this is simply connected components for directed graphs and + connected components for undirected graphs. + If k=2 on an efficient bridge connected component algorithm from _[1] is + run based on the chain decomposition. + Otherwise, the algorithm from _[2] is used. + + Examples + -------- + >>> import itertools as it + >>> from networkx.utils import pairwise + >>> paths = [ + ... (1, 2, 4, 3, 1, 4), + ... (5, 6, 7, 8, 5, 7, 8, 6), + ... ] + >>> G = nx.Graph() + >>> G.add_nodes_from(it.chain(*paths)) + >>> G.add_edges_from(it.chain(*[pairwise(path) for path in paths])) + >>> # note this returns {1, 4} unlike k_edge_subgraphs + >>> sorted(map(sorted, nx.k_edge_components(G, k=3))) + [[1, 4], [2], [3], [5, 6, 7, 8]] + + References + ---------- + .. [1] https://en.wikipedia.org/wiki/Bridge_%28graph_theory%29 + .. [2] Wang, Tianhao, et al. (2015) A simple algorithm for finding all + k-edge-connected components. + http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0136264 + """ + # Compute k-edge-ccs using the most efficient algorithms available. + if k < 1: + raise ValueError("k cannot be less than 1") + if G.is_directed(): + if k == 1: + return nx.strongly_connected_components(G) + else: + # TODO: investigate https://arxiv.org/abs/1412.6466 for k=2 + aux_graph = EdgeComponentAuxGraph.construct(G) + return aux_graph.k_edge_components(k) + else: + if k == 1: + return nx.connected_components(G) + elif k == 2: + return bridge_components(G) + else: + aux_graph = EdgeComponentAuxGraph.construct(G) + return aux_graph.k_edge_components(k) + + +@not_implemented_for("multigraph") +@nx._dispatchable +def k_edge_subgraphs(G, k): + """Generates nodes in each maximal k-edge-connected subgraph in G. + + Parameters + ---------- + G : NetworkX graph + + k : Integer + Desired edge connectivity + + Returns + ------- + k_edge_subgraphs : a generator of k-edge-subgraphs + Each k-edge-subgraph is a maximal set of nodes that defines a subgraph + of G that is k-edge-connected. + + See Also + -------- + :func:`edge_connectivity` + :func:`k_edge_components` : similar to this function, but nodes only + need to have k-edge-connectivity within the graph G and the subgraphs + might not be k-edge-connected. + + Raises + ------ + NetworkXNotImplemented + If the input graph is a multigraph. + + ValueError: + If k is less than 1 + + Notes + ----- + Attempts to use the most efficient implementation available based on k. + If k=1, or k=2 and the graph is undirected, then this simply calls + `k_edge_components`. Otherwise the algorithm from _[1] is used. + + Examples + -------- + >>> import itertools as it + >>> from networkx.utils import pairwise + >>> paths = [ + ... (1, 2, 4, 3, 1, 4), + ... (5, 6, 7, 8, 5, 7, 8, 6), + ... ] + >>> G = nx.Graph() + >>> G.add_nodes_from(it.chain(*paths)) + >>> G.add_edges_from(it.chain(*[pairwise(path) for path in paths])) + >>> # note this does not return {1, 4} unlike k_edge_components + >>> sorted(map(sorted, nx.k_edge_subgraphs(G, k=3))) + [[1], [2], [3], [4], [5, 6, 7, 8]] + + References + ---------- + .. [1] Zhou, Liu, et al. (2012) Finding maximal k-edge-connected subgraphs + from a large graph. ACM International Conference on Extending Database + Technology 2012 480-–491. + https://openproceedings.org/2012/conf/edbt/ZhouLYLCL12.pdf + """ + if k < 1: + raise ValueError("k cannot be less than 1") + if G.is_directed(): + if k <= 1: + # For directed graphs , + # When k == 1, k-edge-ccs and k-edge-subgraphs are the same + return k_edge_components(G, k) + else: + return _k_edge_subgraphs_nodes(G, k) + else: + if k <= 2: + # For undirected graphs, + # when k <= 2, k-edge-ccs and k-edge-subgraphs are the same + return k_edge_components(G, k) + else: + return _k_edge_subgraphs_nodes(G, k) + + +def _k_edge_subgraphs_nodes(G, k): + """Helper to get the nodes from the subgraphs. + + This allows k_edge_subgraphs to return a generator. + """ + for C in general_k_edge_subgraphs(G, k): + yield set(C.nodes()) + + +@not_implemented_for("directed") +@not_implemented_for("multigraph") +@nx._dispatchable +def bridge_components(G): + """Finds all bridge-connected components G. + + Parameters + ---------- + G : NetworkX undirected graph + + Returns + ------- + bridge_components : a generator of 2-edge-connected components + + + See Also + -------- + :func:`k_edge_subgraphs` : this function is a special case for an + undirected graph where k=2. + :func:`biconnected_components` : similar to this function, but is defined + using 2-node-connectivity instead of 2-edge-connectivity. + + Raises + ------ + NetworkXNotImplemented + If the input graph is directed or a multigraph. + + Notes + ----- + Bridge-connected components are also known as 2-edge-connected components. + + Examples + -------- + >>> # The barbell graph with parameter zero has a single bridge + >>> G = nx.barbell_graph(5, 0) + >>> from networkx.algorithms.connectivity.edge_kcomponents import bridge_components + >>> sorted(map(sorted, bridge_components(G))) + [[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]] + """ + H = G.copy() + H.remove_edges_from(nx.bridges(G)) + yield from nx.connected_components(H) + + +class EdgeComponentAuxGraph: + r"""A simple algorithm to find all k-edge-connected components in a graph. + + Constructing the auxiliary graph (which may take some time) allows for the + k-edge-ccs to be found in linear time for arbitrary k. + + Notes + ----- + This implementation is based on [1]_. The idea is to construct an auxiliary + graph from which the k-edge-ccs can be extracted in linear time. The + auxiliary graph is constructed in $O(|V|\cdot F)$ operations, where F is the + complexity of max flow. Querying the components takes an additional $O(|V|)$ + operations. This algorithm can be slow for large graphs, but it handles an + arbitrary k and works for both directed and undirected inputs. + + The undirected case for k=1 is exactly connected components. + The undirected case for k=2 is exactly bridge connected components. + The directed case for k=1 is exactly strongly connected components. + + References + ---------- + .. [1] Wang, Tianhao, et al. (2015) A simple algorithm for finding all + k-edge-connected components. + http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0136264 + + Examples + -------- + >>> import itertools as it + >>> from networkx.utils import pairwise + >>> from networkx.algorithms.connectivity import EdgeComponentAuxGraph + >>> # Build an interesting graph with multiple levels of k-edge-ccs + >>> paths = [ + ... (1, 2, 3, 4, 1, 3, 4, 2), # a 3-edge-cc (a 4 clique) + ... (5, 6, 7, 5), # a 2-edge-cc (a 3 clique) + ... (1, 5), # combine first two ccs into a 1-edge-cc + ... (0,), # add an additional disconnected 1-edge-cc + ... ] + >>> G = nx.Graph() + >>> G.add_nodes_from(it.chain(*paths)) + >>> G.add_edges_from(it.chain(*[pairwise(path) for path in paths])) + >>> # Constructing the AuxGraph takes about O(n ** 4) + >>> aux_graph = EdgeComponentAuxGraph.construct(G) + >>> # Once constructed, querying takes O(n) + >>> sorted(map(sorted, aux_graph.k_edge_components(k=1))) + [[0], [1, 2, 3, 4, 5, 6, 7]] + >>> sorted(map(sorted, aux_graph.k_edge_components(k=2))) + [[0], [1, 2, 3, 4], [5, 6, 7]] + >>> sorted(map(sorted, aux_graph.k_edge_components(k=3))) + [[0], [1, 2, 3, 4], [5], [6], [7]] + >>> sorted(map(sorted, aux_graph.k_edge_components(k=4))) + [[0], [1], [2], [3], [4], [5], [6], [7]] + + The auxiliary graph is primarily used for k-edge-ccs but it + can also speed up the queries of k-edge-subgraphs by refining the + search space. + + >>> import itertools as it + >>> from networkx.utils import pairwise + >>> from networkx.algorithms.connectivity import EdgeComponentAuxGraph + >>> paths = [ + ... (1, 2, 4, 3, 1, 4), + ... ] + >>> G = nx.Graph() + >>> G.add_nodes_from(it.chain(*paths)) + >>> G.add_edges_from(it.chain(*[pairwise(path) for path in paths])) + >>> aux_graph = EdgeComponentAuxGraph.construct(G) + >>> sorted(map(sorted, aux_graph.k_edge_subgraphs(k=3))) + [[1], [2], [3], [4]] + >>> sorted(map(sorted, aux_graph.k_edge_components(k=3))) + [[1, 4], [2], [3]] + """ + + # @not_implemented_for('multigraph') # TODO: fix decor for classmethods + @classmethod + def construct(EdgeComponentAuxGraph, G): + """Builds an auxiliary graph encoding edge-connectivity between nodes. + + Notes + ----- + Given G=(V, E), initialize an empty auxiliary graph A. + Choose an arbitrary source node s. Initialize a set N of available + nodes (that can be used as the sink). The algorithm picks an + arbitrary node t from N - {s}, and then computes the minimum st-cut + (S, T) with value w. If G is directed the minimum of the st-cut or + the ts-cut is used instead. Then, the edge (s, t) is added to the + auxiliary graph with weight w. The algorithm is called recursively + first using S as the available nodes and s as the source, and then + using T and t. Recursion stops when the source is the only available + node. + + Parameters + ---------- + G : NetworkX graph + """ + # workaround for classmethod decorator + not_implemented_for("multigraph")(lambda G: G)(G) + + def _recursive_build(H, A, source, avail): + # Terminate once the flow has been compute to every node. + if {source} == avail: + return + # pick an arbitrary node as the sink + sink = arbitrary_element(avail - {source}) + # find the minimum cut and its weight + value, (S, T) = nx.minimum_cut(H, source, sink) + if H.is_directed(): + # check if the reverse direction has a smaller cut + value_, (T_, S_) = nx.minimum_cut(H, sink, source) + if value_ < value: + value, S, T = value_, S_, T_ + # add edge with weight of cut to the aux graph + A.add_edge(source, sink, weight=value) + # recursively call until all but one node is used + _recursive_build(H, A, source, avail.intersection(S)) + _recursive_build(H, A, sink, avail.intersection(T)) + + # Copy input to ensure all edges have unit capacity + H = G.__class__() + H.add_nodes_from(G.nodes()) + H.add_edges_from(G.edges(), capacity=1) + + # A is the auxiliary graph to be constructed + # It is a weighted undirected tree + A = nx.Graph() + + # Pick an arbitrary node as the source + if H.number_of_nodes() > 0: + source = arbitrary_element(H.nodes()) + # Initialize a set of elements that can be chosen as the sink + avail = set(H.nodes()) + + # This constructs A + _recursive_build(H, A, source, avail) + + # This class is a container the holds the auxiliary graph A and + # provides access the k_edge_components function. + self = EdgeComponentAuxGraph() + self.A = A + self.H = H + return self + + def k_edge_components(self, k): + """Queries the auxiliary graph for k-edge-connected components. + + Parameters + ---------- + k : Integer + Desired edge connectivity + + Returns + ------- + k_edge_components : a generator of k-edge-ccs + + Notes + ----- + Given the auxiliary graph, the k-edge-connected components can be + determined in linear time by removing all edges with weights less than + k from the auxiliary graph. The resulting connected components are the + k-edge-ccs in the original graph. + """ + if k < 1: + raise ValueError("k cannot be less than 1") + A = self.A + # "traverse the auxiliary graph A and delete all edges with weights less + # than k" + aux_weights = nx.get_edge_attributes(A, "weight") + # Create a relevant graph with the auxiliary edges with weights >= k + R = nx.Graph() + R.add_nodes_from(A.nodes()) + R.add_edges_from(e for e, w in aux_weights.items() if w >= k) + + # Return the nodes that are k-edge-connected in the original graph + yield from nx.connected_components(R) + + def k_edge_subgraphs(self, k): + """Queries the auxiliary graph for k-edge-connected subgraphs. + + Parameters + ---------- + k : Integer + Desired edge connectivity + + Returns + ------- + k_edge_subgraphs : a generator of k-edge-subgraphs + + Notes + ----- + Refines the k-edge-ccs into k-edge-subgraphs. The running time is more + than $O(|V|)$. + + For single values of k it is faster to use `nx.k_edge_subgraphs`. + But for multiple values of k, it can be faster to build AuxGraph and + then use this method. + """ + if k < 1: + raise ValueError("k cannot be less than 1") + H = self.H + A = self.A + # "traverse the auxiliary graph A and delete all edges with weights less + # than k" + aux_weights = nx.get_edge_attributes(A, "weight") + # Create a relevant graph with the auxiliary edges with weights >= k + R = nx.Graph() + R.add_nodes_from(A.nodes()) + R.add_edges_from(e for e, w in aux_weights.items() if w >= k) + + # Return the components whose subgraphs are k-edge-connected + for cc in nx.connected_components(R): + if len(cc) < k: + # Early return optimization + for node in cc: + yield {node} + else: + # Call subgraph solution to refine the results + C = H.subgraph(cc) + yield from k_edge_subgraphs(C, k) + + +def _low_degree_nodes(G, k, nbunch=None): + """Helper for finding nodes with degree less than k.""" + # Nodes with degree less than k cannot be k-edge-connected. + if G.is_directed(): + # Consider both in and out degree in the directed case + seen = set() + for node, degree in G.out_degree(nbunch): + if degree < k: + seen.add(node) + yield node + for node, degree in G.in_degree(nbunch): + if node not in seen and degree < k: + seen.add(node) + yield node + else: + # Only the degree matters in the undirected case + for node, degree in G.degree(nbunch): + if degree < k: + yield node + + +def _high_degree_components(G, k): + """Helper for filtering components that can't be k-edge-connected. + + Removes and generates each node with degree less than k. Then generates + remaining components where all nodes have degree at least k. + """ + # Iteratively remove parts of the graph that are not k-edge-connected + H = G.copy() + singletons = set(_low_degree_nodes(H, k)) + while singletons: + # Only search neighbors of removed nodes + nbunch = set(it.chain.from_iterable(map(H.neighbors, singletons))) + nbunch.difference_update(singletons) + H.remove_nodes_from(singletons) + for node in singletons: + yield {node} + singletons = set(_low_degree_nodes(H, k, nbunch)) + + # Note: remaining connected components may not be k-edge-connected + if G.is_directed(): + yield from nx.strongly_connected_components(H) + else: + yield from nx.connected_components(H) + + +@nx._dispatchable(returns_graph=True) +def general_k_edge_subgraphs(G, k): + """General algorithm to find all maximal k-edge-connected subgraphs in `G`. + + Parameters + ---------- + G : nx.Graph + Graph in which all maximal k-edge-connected subgraphs will be found. + + k : int + + Yields + ------ + k_edge_subgraphs : Graph instances that are k-edge-subgraphs + Each k-edge-subgraph contains a maximal set of nodes that defines a + subgraph of `G` that is k-edge-connected. + + Notes + ----- + Implementation of the basic algorithm from [1]_. The basic idea is to find + a global minimum cut of the graph. If the cut value is at least k, then the + graph is a k-edge-connected subgraph and can be added to the results. + Otherwise, the cut is used to split the graph in two and the procedure is + applied recursively. If the graph is just a single node, then it is also + added to the results. At the end, each result is either guaranteed to be + a single node or a subgraph of G that is k-edge-connected. + + This implementation contains optimizations for reducing the number of calls + to max-flow, but there are other optimizations in [1]_ that could be + implemented. + + References + ---------- + .. [1] Zhou, Liu, et al. (2012) Finding maximal k-edge-connected subgraphs + from a large graph. ACM International Conference on Extending Database + Technology 2012 480-–491. + https://openproceedings.org/2012/conf/edbt/ZhouLYLCL12.pdf + + Examples + -------- + >>> from networkx.utils import pairwise + >>> paths = [ + ... (11, 12, 13, 14, 11, 13, 14, 12), # a 4-clique + ... (21, 22, 23, 24, 21, 23, 24, 22), # another 4-clique + ... # connect the cliques with high degree but low connectivity + ... (50, 13), + ... (12, 50, 22), + ... (13, 102, 23), + ... (14, 101, 24), + ... ] + >>> G = nx.Graph(it.chain(*[pairwise(path) for path in paths])) + >>> sorted(len(k_sg) for k_sg in k_edge_subgraphs(G, k=3)) + [1, 1, 1, 4, 4] + """ + if k < 1: + raise ValueError("k cannot be less than 1") + + # Node pruning optimization (incorporates early return) + # find_ccs is either connected_components/strongly_connected_components + find_ccs = partial(_high_degree_components, k=k) + + # Quick return optimization + if G.number_of_nodes() < k: + for node in G.nodes(): + yield G.subgraph([node]).copy() + return + + # Intermediate results + R0 = {G.subgraph(cc).copy() for cc in find_ccs(G)} + # Subdivide CCs in the intermediate results until they are k-conn + while R0: + G1 = R0.pop() + if G1.number_of_nodes() == 1: + yield G1 + else: + # Find a global minimum cut + cut_edges = nx.minimum_edge_cut(G1) + cut_value = len(cut_edges) + if cut_value < k: + # G1 is not k-edge-connected, so subdivide it + G1.remove_edges_from(cut_edges) + for cc in find_ccs(G1): + R0.add(G1.subgraph(cc).copy()) + else: + # Otherwise we found a k-edge-connected subgraph + yield G1 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/kcomponents.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/kcomponents.py new file mode 100644 index 0000000000000000000000000000000000000000..8380467623a53d2bdf73d1c544db658d2ba1eba4 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/kcomponents.py @@ -0,0 +1,220 @@ +""" +Moody and White algorithm for k-components +""" + +from collections import defaultdict +from itertools import combinations +from operator import itemgetter + +import networkx as nx + +# Define the default maximum flow function. +from networkx.algorithms.flow import edmonds_karp +from networkx.utils import not_implemented_for + +default_flow_func = edmonds_karp + +__all__ = ["k_components"] + + +@not_implemented_for("directed") +@nx._dispatchable +def k_components(G, flow_func=None): + r"""Returns the k-component structure of a graph G. + + A `k`-component is a maximal subgraph of a graph G that has, at least, + node connectivity `k`: we need to remove at least `k` nodes to break it + into more components. `k`-components have an inherent hierarchical + structure because they are nested in terms of connectivity: a connected + graph can contain several 2-components, each of which can contain + one or more 3-components, and so forth. + + Parameters + ---------- + G : NetworkX graph + + flow_func : function + Function to perform the underlying flow computations. Default value + :meth:`edmonds_karp`. This function performs better in sparse graphs with + right tailed degree distributions. :meth:`shortest_augmenting_path` will + perform better in denser graphs. + + Returns + ------- + k_components : dict + Dictionary with all connectivity levels `k` in the input Graph as keys + and a list of sets of nodes that form a k-component of level `k` as + values. + + Raises + ------ + NetworkXNotImplemented + If the input graph is directed. + + Examples + -------- + >>> # Petersen graph has 10 nodes and it is triconnected, thus all + >>> # nodes are in a single component on all three connectivity levels + >>> G = nx.petersen_graph() + >>> k_components = nx.k_components(G) + + Notes + ----- + Moody and White [1]_ (appendix A) provide an algorithm for identifying + k-components in a graph, which is based on Kanevsky's algorithm [2]_ + for finding all minimum-size node cut-sets of a graph (implemented in + :meth:`all_node_cuts` function): + + 1. Compute node connectivity, k, of the input graph G. + + 2. Identify all k-cutsets at the current level of connectivity using + Kanevsky's algorithm. + + 3. Generate new graph components based on the removal of + these cutsets. Nodes in a cutset belong to both sides + of the induced cut. + + 4. If the graph is neither complete nor trivial, return to 1; + else end. + + This implementation also uses some heuristics (see [3]_ for details) + to speed up the computation. + + See also + -------- + node_connectivity + all_node_cuts + biconnected_components : special case of this function when k=2 + k_edge_components : similar to this function, but uses edge-connectivity + instead of node-connectivity + + References + ---------- + .. [1] Moody, J. and D. White (2003). Social cohesion and embeddedness: + A hierarchical conception of social groups. + American Sociological Review 68(1), 103--28. + http://www2.asanet.org/journals/ASRFeb03MoodyWhite.pdf + + .. [2] Kanevsky, A. (1993). Finding all minimum-size separating vertex + sets in a graph. Networks 23(6), 533--541. + http://onlinelibrary.wiley.com/doi/10.1002/net.3230230604/abstract + + .. [3] Torrents, J. and F. Ferraro (2015). Structural Cohesion: + Visualization and Heuristics for Fast Computation. + https://arxiv.org/pdf/1503.04476v1 + + """ + # Dictionary with connectivity level (k) as keys and a list of + # sets of nodes that form a k-component as values. Note that + # k-components can overlap (but only k - 1 nodes). + k_components = defaultdict(list) + # Define default flow function + if flow_func is None: + flow_func = default_flow_func + # Bicomponents as a base to check for higher order k-components + for component in nx.connected_components(G): + # isolated nodes have connectivity 0 + comp = set(component) + if len(comp) > 1: + k_components[1].append(comp) + bicomponents = [G.subgraph(c) for c in nx.biconnected_components(G)] + for bicomponent in bicomponents: + bicomp = set(bicomponent) + # avoid considering dyads as bicomponents + if len(bicomp) > 2: + k_components[2].append(bicomp) + for B in bicomponents: + if len(B) <= 2: + continue + k = nx.node_connectivity(B, flow_func=flow_func) + if k > 2: + k_components[k].append(set(B)) + # Perform cuts in a DFS like order. + cuts = list(nx.all_node_cuts(B, k=k, flow_func=flow_func)) + stack = [(k, _generate_partition(B, cuts, k))] + while stack: + (parent_k, partition) = stack[-1] + try: + nodes = next(partition) + C = B.subgraph(nodes) + this_k = nx.node_connectivity(C, flow_func=flow_func) + if this_k > parent_k and this_k > 2: + k_components[this_k].append(set(C)) + cuts = list(nx.all_node_cuts(C, k=this_k, flow_func=flow_func)) + if cuts: + stack.append((this_k, _generate_partition(C, cuts, this_k))) + except StopIteration: + stack.pop() + + # This is necessary because k-components may only be reported at their + # maximum k level. But we want to return a dictionary in which keys are + # connectivity levels and values list of sets of components, without + # skipping any connectivity level. Also, it's possible that subsets of + # an already detected k-component appear at a level k. Checking for this + # in the while loop above penalizes the common case. Thus we also have to + # _consolidate all connectivity levels in _reconstruct_k_components. + return _reconstruct_k_components(k_components) + + +def _consolidate(sets, k): + """Merge sets that share k or more elements. + + See: http://rosettacode.org/wiki/Set_consolidation + + The iterative python implementation posted there is + faster than this because of the overhead of building a + Graph and calling nx.connected_components, but it's not + clear for us if we can use it in NetworkX because there + is no licence for the code. + + """ + G = nx.Graph() + nodes = dict(enumerate(sets)) + G.add_nodes_from(nodes) + G.add_edges_from( + (u, v) for u, v in combinations(nodes, 2) if len(nodes[u] & nodes[v]) >= k + ) + for component in nx.connected_components(G): + yield set.union(*[nodes[n] for n in component]) + + +def _generate_partition(G, cuts, k): + def has_nbrs_in_partition(G, node, partition): + return any(n in partition for n in G[node]) + + components = [] + n_in_cuts = {n for cut in cuts for n in cut} + nodes = {n for n, d in G.degree() if d > k} - n_in_cuts + H = G.subgraph(nodes) + for cc in map(set, nx.connected_components(H)): + component = cc | {n for n in n_in_cuts if has_nbrs_in_partition(G, n, cc)} + if len(component) < G.order(): + components.append(component) + yield from _consolidate(components, k + 1) + + +def _reconstruct_k_components(k_comps): + result = {} + max_k = max(k_comps) if k_comps else 0 + for k in range(max_k, 0, -1): + if k == max_k: + result[k] = list(_consolidate(k_comps[k], k)) + elif k not in k_comps: + result[k] = list(_consolidate(result[k + 1], k)) + else: + nodes_at_k = set.union(*k_comps[k]) + to_add = [c for c in result[k + 1] if any(n not in nodes_at_k for n in c)] + if to_add: + result[k] = list(_consolidate(k_comps[k] + to_add, k)) + else: + result[k] = list(_consolidate(k_comps[k], k)) + return result + + +def build_k_number_dict(kcomps): + return { + node: k + for k, comps in sorted(kcomps.items(), key=itemgetter(0)) + for comp in comps + for node in comp + } diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/kcutsets.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/kcutsets.py new file mode 100644 index 0000000000000000000000000000000000000000..de26f4c5d85f42312a811509b7a9b92cd5db952c --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/kcutsets.py @@ -0,0 +1,235 @@ +""" +Kanevsky all minimum node k cutsets algorithm. +""" + +import copy +from collections import defaultdict +from itertools import combinations +from operator import itemgetter + +import networkx as nx +from networkx.algorithms.flow import ( + build_residual_network, + edmonds_karp, + shortest_augmenting_path, +) + +from .utils import build_auxiliary_node_connectivity + +default_flow_func = edmonds_karp + + +__all__ = ["all_node_cuts"] + + +@nx._dispatchable +def all_node_cuts(G, k=None, flow_func=None): + r"""Returns all minimum k cutsets of an undirected graph G. + + This implementation is based on Kanevsky's algorithm [1]_ for finding all + minimum-size node cut-sets of an undirected graph G; ie the set (or sets) + of nodes of cardinality equal to the node connectivity of G. Thus if + removed, would break G into two or more connected components. + + Parameters + ---------- + G : NetworkX graph + Undirected graph + + k : Integer + Node connectivity of the input graph. If k is None, then it is + computed. Default value: None. + + flow_func : function + Function to perform the underlying flow computations. Default value is + :func:`~networkx.algorithms.flow.edmonds_karp`. This function performs + better in sparse graphs with right tailed degree distributions. + :func:`~networkx.algorithms.flow.shortest_augmenting_path` will + perform better in denser graphs. + + + Returns + ------- + cuts : a generator of node cutsets + Each node cutset has cardinality equal to the node connectivity of + the input graph. + + Examples + -------- + >>> # A two-dimensional grid graph has 4 cutsets of cardinality 2 + >>> G = nx.grid_2d_graph(5, 5) + >>> cutsets = list(nx.all_node_cuts(G)) + >>> len(cutsets) + 4 + >>> all(2 == len(cutset) for cutset in cutsets) + True + >>> nx.node_connectivity(G) + 2 + + Notes + ----- + This implementation is based on the sequential algorithm for finding all + minimum-size separating vertex sets in a graph [1]_. The main idea is to + compute minimum cuts using local maximum flow computations among a set + of nodes of highest degree and all other non-adjacent nodes in the Graph. + Once we find a minimum cut, we add an edge between the high degree + node and the target node of the local maximum flow computation to make + sure that we will not find that minimum cut again. + + See also + -------- + node_connectivity + edmonds_karp + shortest_augmenting_path + + References + ---------- + .. [1] Kanevsky, A. (1993). Finding all minimum-size separating vertex + sets in a graph. Networks 23(6), 533--541. + http://onlinelibrary.wiley.com/doi/10.1002/net.3230230604/abstract + + """ + if not nx.is_connected(G): + raise nx.NetworkXError("Input graph is disconnected.") + + # Address some corner cases first. + # For complete Graphs + + if nx.density(G) == 1: + yield from () + return + + # Initialize data structures. + # Keep track of the cuts already computed so we do not repeat them. + seen = [] + # Even-Tarjan reduction is what we call auxiliary digraph + # for node connectivity. + H = build_auxiliary_node_connectivity(G) + H_nodes = H.nodes # for speed + mapping = H.graph["mapping"] + # Keep a copy of original predecessors, H will be modified later. + # Shallow copy is enough. + original_H_pred = copy.copy(H._pred) + R = build_residual_network(H, "capacity") + kwargs = {"capacity": "capacity", "residual": R} + # Define default flow function + if flow_func is None: + flow_func = default_flow_func + if flow_func is shortest_augmenting_path: + kwargs["two_phase"] = True + # Begin the actual algorithm + # step 1: Find node connectivity k of G + if k is None: + k = nx.node_connectivity(G, flow_func=flow_func) + # step 2: + # Find k nodes with top degree, call it X: + X = {n for n, d in sorted(G.degree(), key=itemgetter(1), reverse=True)[:k]} + # Check if X is a k-node-cutset + if _is_separating_set(G, X): + seen.append(X) + yield X + + for x in X: + # step 3: Compute local connectivity flow of x with all other + # non adjacent nodes in G + non_adjacent = set(G) - {x} - set(G[x]) + for v in non_adjacent: + # step 4: compute maximum flow in an Even-Tarjan reduction H of G + # and step 5: build the associated residual network R + R = flow_func(H, f"{mapping[x]}B", f"{mapping[v]}A", **kwargs) + flow_value = R.graph["flow_value"] + + if flow_value == k: + # Find the nodes incident to the flow. + E1 = flowed_edges = [ + (u, w) for (u, w, d) in R.edges(data=True) if d["flow"] != 0 + ] + VE1 = incident_nodes = {n for edge in E1 for n in edge} + # Remove saturated edges form the residual network. + # Note that reversed edges are introduced with capacity 0 + # in the residual graph and they need to be removed too. + saturated_edges = [ + (u, w, d) + for (u, w, d) in R.edges(data=True) + if d["capacity"] == d["flow"] or d["capacity"] == 0 + ] + R.remove_edges_from(saturated_edges) + R_closure = nx.transitive_closure(R) + # step 6: shrink the strongly connected components of + # residual flow network R and call it L. + L = nx.condensation(R) + cmap = L.graph["mapping"] + inv_cmap = defaultdict(list) + for n, scc in cmap.items(): + inv_cmap[scc].append(n) + # Find the incident nodes in the condensed graph. + VE1 = {cmap[n] for n in VE1} + # step 7: Compute all antichains of L; + # they map to closed sets in H. + # Any edge in H that links a closed set is part of a cutset. + for antichain in nx.antichains(L): + # Only antichains that are subsets of incident nodes counts. + # Lemma 8 in reference. + if not set(antichain).issubset(VE1): + continue + # Nodes in an antichain of the condensation graph of + # the residual network map to a closed set of nodes that + # define a node partition of the auxiliary digraph H + # through taking all of antichain's predecessors in the + # transitive closure. + S = set() + for scc in antichain: + S.update(inv_cmap[scc]) + S_ancestors = set() + for n in S: + S_ancestors.update(R_closure._pred[n]) + S.update(S_ancestors) + if f"{mapping[x]}B" not in S or f"{mapping[v]}A" in S: + continue + # Find the cutset that links the node partition (S,~S) in H + cutset = set() + for u in S: + cutset.update((u, w) for w in original_H_pred[u] if w not in S) + # The edges in H that form the cutset are internal edges + # (ie edges that represent a node of the original graph G) + if any(H_nodes[u]["id"] != H_nodes[w]["id"] for u, w in cutset): + continue + node_cut = {H_nodes[u]["id"] for u, _ in cutset} + + if len(node_cut) == k: + # The cut is invalid if it includes internal edges of + # end nodes. The other half of Lemma 8 in ref. + if x in node_cut or v in node_cut: + continue + if node_cut not in seen: + yield node_cut + seen.append(node_cut) + + # Add an edge (x, v) to make sure that we do not + # find this cutset again. This is equivalent + # of adding the edge in the input graph + # G.add_edge(x, v) and then regenerate H and R: + # Add edges to the auxiliary digraph. + # See build_residual_network for convention we used + # in residual graphs. + H.add_edge(f"{mapping[x]}B", f"{mapping[v]}A", capacity=1) + H.add_edge(f"{mapping[v]}B", f"{mapping[x]}A", capacity=1) + # Add edges to the residual network. + R.add_edge(f"{mapping[x]}B", f"{mapping[v]}A", capacity=1) + R.add_edge(f"{mapping[v]}A", f"{mapping[x]}B", capacity=0) + R.add_edge(f"{mapping[v]}B", f"{mapping[x]}A", capacity=1) + R.add_edge(f"{mapping[x]}A", f"{mapping[v]}B", capacity=0) + + # Add again the saturated edges to reuse the residual network + R.add_edges_from(saturated_edges) + + +def _is_separating_set(G, cut): + """Assumes that the input graph is connected""" + if len(cut) == len(G) - 1: + return True + + H = nx.restricted_view(G, cut, []) + if nx.is_connected(H): + return False + return True diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/stoerwagner.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/stoerwagner.py new file mode 100644 index 0000000000000000000000000000000000000000..29604b148303703c73ad37baffec043abd4333e9 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/stoerwagner.py @@ -0,0 +1,152 @@ +""" +Stoer-Wagner minimum cut algorithm. +""" + +from itertools import islice + +import networkx as nx + +from ...utils import BinaryHeap, arbitrary_element, not_implemented_for + +__all__ = ["stoer_wagner"] + + +@not_implemented_for("directed") +@not_implemented_for("multigraph") +@nx._dispatchable(edge_attrs="weight") +def stoer_wagner(G, weight="weight", heap=BinaryHeap): + r"""Returns the weighted minimum edge cut using the Stoer-Wagner algorithm. + + Determine the minimum edge cut of a connected graph using the + Stoer-Wagner algorithm. In weighted cases, all weights must be + nonnegative. + + The running time of the algorithm depends on the type of heaps used: + + ============== ============================================= + Type of heap Running time + ============== ============================================= + Binary heap $O(n (m + n) \log n)$ + Fibonacci heap $O(nm + n^2 \log n)$ + Pairing heap $O(2^{2 \sqrt{\log \log n}} nm + n^2 \log n)$ + ============== ============================================= + + Parameters + ---------- + G : NetworkX graph + Edges of the graph are expected to have an attribute named by the + weight parameter below. If this attribute is not present, the edge is + considered to have unit weight. + + weight : string + Name of the weight attribute of the edges. If the attribute is not + present, unit weight is assumed. Default value: 'weight'. + + heap : class + Type of heap to be used in the algorithm. It should be a subclass of + :class:`MinHeap` or implement a compatible interface. + + If a stock heap implementation is to be used, :class:`BinaryHeap` is + recommended over :class:`PairingHeap` for Python implementations without + optimized attribute accesses (e.g., CPython) despite a slower + asymptotic running time. For Python implementations with optimized + attribute accesses (e.g., PyPy), :class:`PairingHeap` provides better + performance. Default value: :class:`BinaryHeap`. + + Returns + ------- + cut_value : integer or float + The sum of weights of edges in a minimum cut. + + partition : pair of node lists + A partitioning of the nodes that defines a minimum cut. + + Raises + ------ + NetworkXNotImplemented + If the graph is directed or a multigraph. + + NetworkXError + If the graph has less than two nodes, is not connected or has a + negative-weighted edge. + + Examples + -------- + >>> G = nx.Graph() + >>> G.add_edge("x", "a", weight=3) + >>> G.add_edge("x", "b", weight=1) + >>> G.add_edge("a", "c", weight=3) + >>> G.add_edge("b", "c", weight=5) + >>> G.add_edge("b", "d", weight=4) + >>> G.add_edge("d", "e", weight=2) + >>> G.add_edge("c", "y", weight=2) + >>> G.add_edge("e", "y", weight=3) + >>> cut_value, partition = nx.stoer_wagner(G) + >>> cut_value + 4 + """ + n = len(G) + if n < 2: + raise nx.NetworkXError("graph has less than two nodes.") + if not nx.is_connected(G): + raise nx.NetworkXError("graph is not connected.") + + # Make a copy of the graph for internal use. + G = nx.Graph( + (u, v, {"weight": e.get(weight, 1)}) for u, v, e in G.edges(data=True) if u != v + ) + G.__networkx_cache__ = None # Disable caching + + for u, v, e in G.edges(data=True): + if e["weight"] < 0: + raise nx.NetworkXError("graph has a negative-weighted edge.") + + cut_value = float("inf") + nodes = set(G) + contractions = [] # contracted node pairs + + # Repeatedly pick a pair of nodes to contract until only one node is left. + for i in range(n - 1): + # Pick an arbitrary node u and create a set A = {u}. + u = arbitrary_element(G) + A = {u} + # Repeatedly pick the node "most tightly connected" to A and add it to + # A. The tightness of connectivity of a node not in A is defined by the + # of edges connecting it to nodes in A. + h = heap() # min-heap emulating a max-heap + for v, e in G[u].items(): + h.insert(v, -e["weight"]) + # Repeat until all but one node has been added to A. + for j in range(n - i - 2): + u = h.pop()[0] + A.add(u) + for v, e in G[u].items(): + if v not in A: + h.insert(v, h.get(v, 0) - e["weight"]) + # A and the remaining node v define a "cut of the phase". There is a + # minimum cut of the original graph that is also a cut of the phase. + # Due to contractions in earlier phases, v may in fact represent + # multiple nodes in the original graph. + v, w = h.min() + w = -w + if w < cut_value: + cut_value = w + best_phase = i + # Contract v and the last node added to A. + contractions.append((u, v)) + for w, e in G[v].items(): + if w != u: + if w not in G[u]: + G.add_edge(u, w, weight=e["weight"]) + else: + G[u][w]["weight"] += e["weight"] + G.remove_node(v) + + # Recover the optimal partitioning from the contractions. + G = nx.Graph(islice(contractions, best_phase)) + v = contractions[best_phase][1] + G.add_node(v) + reachable = set(nx.single_source_shortest_path_length(G, v)) + partition = (list(reachable), list(nodes - reachable)) + + return cut_value, partition diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ad6fba7e30d2a504c983771450500242299942cd Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_connectivity.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_connectivity.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..add3c51301f8d734f4b047fcfced1491f7f29c84 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_connectivity.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_cuts.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_cuts.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4428568b5d796d444537a9255b8825f6781732cc Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_cuts.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_disjoint_paths.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_disjoint_paths.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d9ed5d223be380e891e6f96fab73afc41c98751f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_disjoint_paths.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_edge_augmentation.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_edge_augmentation.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..708c3f2f3e7b2e2b5dd74087c1f420843dc1040f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_edge_augmentation.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_edge_kcomponents.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_edge_kcomponents.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2edf7cb0741b0611e8238c576a889c58019b91da Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_edge_kcomponents.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_kcomponents.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_kcomponents.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..679723bbfbbb91080fdace336fe8c3f476c0807f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_kcomponents.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_kcutsets.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_kcutsets.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f625d6b00a815fb89e283d569297f4f8a0d40fe6 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_kcutsets.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_stoer_wagner.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_stoer_wagner.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a6c35757742d932fb7a864ece1e33fdb18dc4e47 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/__pycache__/test_stoer_wagner.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_connectivity.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_connectivity.py new file mode 100644 index 0000000000000000000000000000000000000000..7aef2477d1331bcefc7e5dfdacd415b27ffcd3c8 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_connectivity.py @@ -0,0 +1,421 @@ +import itertools + +import pytest + +import networkx as nx +from networkx.algorithms import flow +from networkx.algorithms.connectivity import ( + local_edge_connectivity, + local_node_connectivity, +) + +flow_funcs = [ + flow.boykov_kolmogorov, + flow.dinitz, + flow.edmonds_karp, + flow.preflow_push, + flow.shortest_augmenting_path, +] + + +# helper functions for tests + + +def _generate_no_biconnected(max_attempts=50): + attempts = 0 + while True: + G = nx.fast_gnp_random_graph(100, 0.0575, seed=42) + if nx.is_connected(G) and not nx.is_biconnected(G): + attempts = 0 + yield G + else: + if attempts >= max_attempts: + msg = f"Tried {max_attempts} times: no suitable Graph." + raise Exception(msg) + else: + attempts += 1 + + +def test_average_connectivity(): + # figure 1 from: + # Beineke, L., O. Oellermann, and R. Pippert (2002). The average + # connectivity of a graph. Discrete mathematics 252(1-3), 31-45 + # http://www.sciencedirect.com/science/article/pii/S0012365X01001807 + G1 = nx.path_graph(3) + G1.add_edges_from([(1, 3), (1, 4)]) + G2 = nx.path_graph(3) + G2.add_edges_from([(1, 3), (1, 4), (0, 3), (0, 4), (3, 4)]) + G3 = nx.Graph() + for flow_func in flow_funcs: + kwargs = {"flow_func": flow_func} + errmsg = f"Assertion failed in function: {flow_func.__name__}" + assert nx.average_node_connectivity(G1, **kwargs) == 1, errmsg + assert nx.average_node_connectivity(G2, **kwargs) == 2.2, errmsg + assert nx.average_node_connectivity(G3, **kwargs) == 0, errmsg + + +def test_average_connectivity_directed(): + G = nx.DiGraph([(1, 3), (1, 4), (1, 5)]) + for flow_func in flow_funcs: + errmsg = f"Assertion failed in function: {flow_func.__name__}" + assert nx.average_node_connectivity(G) == 0.25, errmsg + + +def test_articulation_points(): + Ggen = _generate_no_biconnected() + for flow_func in flow_funcs: + for i in range(3): + G = next(Ggen) + errmsg = f"Assertion failed in function: {flow_func.__name__}" + assert nx.node_connectivity(G, flow_func=flow_func) == 1, errmsg + + +def test_brandes_erlebach(): + # Figure 1 chapter 7: Connectivity + # http://www.informatik.uni-augsburg.de/thi/personen/kammer/Graph_Connectivity.pdf + G = nx.Graph() + G.add_edges_from( + [ + (1, 2), + (1, 3), + (1, 4), + (1, 5), + (2, 3), + (2, 6), + (3, 4), + (3, 6), + (4, 6), + (4, 7), + (5, 7), + (6, 8), + (6, 9), + (7, 8), + (7, 10), + (8, 11), + (9, 10), + (9, 11), + (10, 11), + ] + ) + for flow_func in flow_funcs: + kwargs = {"flow_func": flow_func} + errmsg = f"Assertion failed in function: {flow_func.__name__}" + assert 3 == local_edge_connectivity(G, 1, 11, **kwargs), errmsg + assert 3 == nx.edge_connectivity(G, 1, 11, **kwargs), errmsg + assert 2 == local_node_connectivity(G, 1, 11, **kwargs), errmsg + assert 2 == nx.node_connectivity(G, 1, 11, **kwargs), errmsg + assert 2 == nx.edge_connectivity(G, **kwargs), errmsg + assert 2 == nx.node_connectivity(G, **kwargs), errmsg + if flow_func is flow.preflow_push: + assert 3 == nx.edge_connectivity(G, 1, 11, cutoff=2, **kwargs), errmsg + else: + assert 2 == nx.edge_connectivity(G, 1, 11, cutoff=2, **kwargs), errmsg + + +def test_white_harary_1(): + # Figure 1b white and harary (2001) + # https://doi.org/10.1111/0081-1750.00098 + # A graph with high adhesion (edge connectivity) and low cohesion + # (vertex connectivity) + G = nx.disjoint_union(nx.complete_graph(4), nx.complete_graph(4)) + G.remove_node(7) + for i in range(4, 7): + G.add_edge(0, i) + G = nx.disjoint_union(G, nx.complete_graph(4)) + G.remove_node(G.order() - 1) + for i in range(7, 10): + G.add_edge(0, i) + for flow_func in flow_funcs: + errmsg = f"Assertion failed in function: {flow_func.__name__}" + assert 1 == nx.node_connectivity(G, flow_func=flow_func), errmsg + assert 3 == nx.edge_connectivity(G, flow_func=flow_func), errmsg + + +def test_white_harary_2(): + # Figure 8 white and harary (2001) + # https://doi.org/10.1111/0081-1750.00098 + G = nx.disjoint_union(nx.complete_graph(4), nx.complete_graph(4)) + G.add_edge(0, 4) + # kappa <= lambda <= delta + assert 3 == min(nx.core_number(G).values()) + for flow_func in flow_funcs: + errmsg = f"Assertion failed in function: {flow_func.__name__}" + assert 1 == nx.node_connectivity(G, flow_func=flow_func), errmsg + assert 1 == nx.edge_connectivity(G, flow_func=flow_func), errmsg + + +def test_complete_graphs(): + for n in range(5, 20, 5): + for flow_func in flow_funcs: + G = nx.complete_graph(n) + errmsg = f"Assertion failed in function: {flow_func.__name__}" + assert n - 1 == nx.node_connectivity(G, flow_func=flow_func), errmsg + assert n - 1 == nx.node_connectivity( + G.to_directed(), flow_func=flow_func + ), errmsg + assert n - 1 == nx.edge_connectivity(G, flow_func=flow_func), errmsg + assert n - 1 == nx.edge_connectivity( + G.to_directed(), flow_func=flow_func + ), errmsg + + +def test_empty_graphs(): + for k in range(5, 25, 5): + G = nx.empty_graph(k) + for flow_func in flow_funcs: + errmsg = f"Assertion failed in function: {flow_func.__name__}" + assert 0 == nx.node_connectivity(G, flow_func=flow_func), errmsg + assert 0 == nx.edge_connectivity(G, flow_func=flow_func), errmsg + + +def test_petersen(): + G = nx.petersen_graph() + for flow_func in flow_funcs: + errmsg = f"Assertion failed in function: {flow_func.__name__}" + assert 3 == nx.node_connectivity(G, flow_func=flow_func), errmsg + assert 3 == nx.edge_connectivity(G, flow_func=flow_func), errmsg + + +def test_tutte(): + G = nx.tutte_graph() + for flow_func in flow_funcs: + errmsg = f"Assertion failed in function: {flow_func.__name__}" + assert 3 == nx.node_connectivity(G, flow_func=flow_func), errmsg + assert 3 == nx.edge_connectivity(G, flow_func=flow_func), errmsg + + +def test_dodecahedral(): + G = nx.dodecahedral_graph() + for flow_func in flow_funcs: + errmsg = f"Assertion failed in function: {flow_func.__name__}" + assert 3 == nx.node_connectivity(G, flow_func=flow_func), errmsg + assert 3 == nx.edge_connectivity(G, flow_func=flow_func), errmsg + + +def test_octahedral(): + G = nx.octahedral_graph() + for flow_func in flow_funcs: + errmsg = f"Assertion failed in function: {flow_func.__name__}" + assert 4 == nx.node_connectivity(G, flow_func=flow_func), errmsg + assert 4 == nx.edge_connectivity(G, flow_func=flow_func), errmsg + + +def test_icosahedral(): + G = nx.icosahedral_graph() + for flow_func in flow_funcs: + errmsg = f"Assertion failed in function: {flow_func.__name__}" + assert 5 == nx.node_connectivity(G, flow_func=flow_func), errmsg + assert 5 == nx.edge_connectivity(G, flow_func=flow_func), errmsg + + +def test_missing_source(): + G = nx.path_graph(4) + for flow_func in flow_funcs: + pytest.raises( + nx.NetworkXError, nx.node_connectivity, G, 10, 1, flow_func=flow_func + ) + + +def test_missing_target(): + G = nx.path_graph(4) + for flow_func in flow_funcs: + pytest.raises( + nx.NetworkXError, nx.node_connectivity, G, 1, 10, flow_func=flow_func + ) + + +def test_edge_missing_source(): + G = nx.path_graph(4) + for flow_func in flow_funcs: + pytest.raises( + nx.NetworkXError, nx.edge_connectivity, G, 10, 1, flow_func=flow_func + ) + + +def test_edge_missing_target(): + G = nx.path_graph(4) + for flow_func in flow_funcs: + pytest.raises( + nx.NetworkXError, nx.edge_connectivity, G, 1, 10, flow_func=flow_func + ) + + +def test_not_weakly_connected(): + G = nx.DiGraph() + nx.add_path(G, [1, 2, 3]) + nx.add_path(G, [4, 5]) + for flow_func in flow_funcs: + errmsg = f"Assertion failed in function: {flow_func.__name__}" + assert nx.node_connectivity(G) == 0, errmsg + assert nx.edge_connectivity(G) == 0, errmsg + + +def test_not_connected(): + G = nx.Graph() + nx.add_path(G, [1, 2, 3]) + nx.add_path(G, [4, 5]) + for flow_func in flow_funcs: + errmsg = f"Assertion failed in function: {flow_func.__name__}" + assert nx.node_connectivity(G) == 0, errmsg + assert nx.edge_connectivity(G) == 0, errmsg + + +def test_directed_edge_connectivity(): + G = nx.cycle_graph(10, create_using=nx.DiGraph()) # only one direction + D = nx.cycle_graph(10).to_directed() # 2 reciprocal edges + for flow_func in flow_funcs: + errmsg = f"Assertion failed in function: {flow_func.__name__}" + assert 1 == nx.edge_connectivity(G, flow_func=flow_func), errmsg + assert 1 == local_edge_connectivity(G, 1, 4, flow_func=flow_func), errmsg + assert 1 == nx.edge_connectivity(G, 1, 4, flow_func=flow_func), errmsg + assert 2 == nx.edge_connectivity(D, flow_func=flow_func), errmsg + assert 2 == local_edge_connectivity(D, 1, 4, flow_func=flow_func), errmsg + assert 2 == nx.edge_connectivity(D, 1, 4, flow_func=flow_func), errmsg + + +def test_cutoff(): + G = nx.complete_graph(5) + for local_func in [local_edge_connectivity, local_node_connectivity]: + for flow_func in flow_funcs: + if flow_func is flow.preflow_push: + # cutoff is not supported by preflow_push + continue + for cutoff in [3, 2, 1]: + result = local_func(G, 0, 4, flow_func=flow_func, cutoff=cutoff) + assert cutoff == result, f"cutoff error in {flow_func.__name__}" + + +def test_invalid_auxiliary(): + G = nx.complete_graph(5) + pytest.raises(nx.NetworkXError, local_node_connectivity, G, 0, 3, auxiliary=G) + + +def test_interface_only_source(): + G = nx.complete_graph(5) + for interface_func in [nx.node_connectivity, nx.edge_connectivity]: + pytest.raises(nx.NetworkXError, interface_func, G, s=0) + + +def test_interface_only_target(): + G = nx.complete_graph(5) + for interface_func in [nx.node_connectivity, nx.edge_connectivity]: + pytest.raises(nx.NetworkXError, interface_func, G, t=3) + + +def test_edge_connectivity_flow_vs_stoer_wagner(): + graph_funcs = [nx.icosahedral_graph, nx.octahedral_graph, nx.dodecahedral_graph] + for graph_func in graph_funcs: + G = graph_func() + assert nx.stoer_wagner(G)[0] == nx.edge_connectivity(G) + + +class TestAllPairsNodeConnectivity: + @classmethod + def setup_class(cls): + cls.path = nx.path_graph(7) + cls.directed_path = nx.path_graph(7, create_using=nx.DiGraph()) + cls.cycle = nx.cycle_graph(7) + cls.directed_cycle = nx.cycle_graph(7, create_using=nx.DiGraph()) + cls.gnp = nx.gnp_random_graph(30, 0.1, seed=42) + cls.directed_gnp = nx.gnp_random_graph(30, 0.1, directed=True, seed=42) + cls.K20 = nx.complete_graph(20) + cls.K10 = nx.complete_graph(10) + cls.K5 = nx.complete_graph(5) + cls.G_list = [ + cls.path, + cls.directed_path, + cls.cycle, + cls.directed_cycle, + cls.gnp, + cls.directed_gnp, + cls.K10, + cls.K5, + cls.K20, + ] + + def test_cycles(self): + K_undir = nx.all_pairs_node_connectivity(self.cycle) + for source in K_undir: + for target, k in K_undir[source].items(): + assert k == 2 + K_dir = nx.all_pairs_node_connectivity(self.directed_cycle) + for source in K_dir: + for target, k in K_dir[source].items(): + assert k == 1 + + def test_complete(self): + for G in [self.K10, self.K5, self.K20]: + K = nx.all_pairs_node_connectivity(G) + for source in K: + for target, k in K[source].items(): + assert k == len(G) - 1 + + def test_paths(self): + K_undir = nx.all_pairs_node_connectivity(self.path) + for source in K_undir: + for target, k in K_undir[source].items(): + assert k == 1 + K_dir = nx.all_pairs_node_connectivity(self.directed_path) + for source in K_dir: + for target, k in K_dir[source].items(): + if source < target: + assert k == 1 + else: + assert k == 0 + + def test_all_pairs_connectivity_nbunch(self): + G = nx.complete_graph(5) + nbunch = [0, 2, 3] + C = nx.all_pairs_node_connectivity(G, nbunch=nbunch) + assert len(C) == len(nbunch) + + def test_all_pairs_connectivity_icosahedral(self): + G = nx.icosahedral_graph() + C = nx.all_pairs_node_connectivity(G) + assert all(5 == C[u][v] for u, v in itertools.combinations(G, 2)) + + def test_all_pairs_connectivity(self): + G = nx.Graph() + nodes = [0, 1, 2, 3] + nx.add_path(G, nodes) + A = {n: {} for n in G} + for u, v in itertools.combinations(nodes, 2): + A[u][v] = A[v][u] = nx.node_connectivity(G, u, v) + C = nx.all_pairs_node_connectivity(G) + assert sorted((k, sorted(v)) for k, v in A.items()) == sorted( + (k, sorted(v)) for k, v in C.items() + ) + + def test_all_pairs_connectivity_directed(self): + G = nx.DiGraph() + nodes = [0, 1, 2, 3] + nx.add_path(G, nodes) + A = {n: {} for n in G} + for u, v in itertools.permutations(nodes, 2): + A[u][v] = nx.node_connectivity(G, u, v) + C = nx.all_pairs_node_connectivity(G) + assert sorted((k, sorted(v)) for k, v in A.items()) == sorted( + (k, sorted(v)) for k, v in C.items() + ) + + def test_all_pairs_connectivity_nbunch_combinations(self): + G = nx.complete_graph(5) + nbunch = [0, 2, 3] + A = {n: {} for n in nbunch} + for u, v in itertools.combinations(nbunch, 2): + A[u][v] = A[v][u] = nx.node_connectivity(G, u, v) + C = nx.all_pairs_node_connectivity(G, nbunch=nbunch) + assert sorted((k, sorted(v)) for k, v in A.items()) == sorted( + (k, sorted(v)) for k, v in C.items() + ) + + def test_all_pairs_connectivity_nbunch_iter(self): + G = nx.complete_graph(5) + nbunch = [0, 2, 3] + A = {n: {} for n in nbunch} + for u, v in itertools.combinations(nbunch, 2): + A[u][v] = A[v][u] = nx.node_connectivity(G, u, v) + C = nx.all_pairs_node_connectivity(G, nbunch=iter(nbunch)) + assert sorted((k, sorted(v)) for k, v in A.items()) == sorted( + (k, sorted(v)) for k, v in C.items() + ) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_cuts.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_cuts.py new file mode 100644 index 0000000000000000000000000000000000000000..964aff9c5632eb81fe5e5a8f22b1a88de73326e5 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_cuts.py @@ -0,0 +1,309 @@ +import pytest + +import networkx as nx +from networkx.algorithms import flow +from networkx.algorithms.connectivity import minimum_st_edge_cut, minimum_st_node_cut +from networkx.utils import arbitrary_element + +flow_funcs = [ + flow.boykov_kolmogorov, + flow.dinitz, + flow.edmonds_karp, + flow.preflow_push, + flow.shortest_augmenting_path, +] + +# Tests for node and edge cutsets + + +def _generate_no_biconnected(max_attempts=50): + attempts = 0 + while True: + G = nx.fast_gnp_random_graph(100, 0.0575, seed=42) + if nx.is_connected(G) and not nx.is_biconnected(G): + attempts = 0 + yield G + else: + if attempts >= max_attempts: + msg = f"Tried {attempts} times: no suitable Graph." + raise Exception(msg) + else: + attempts += 1 + + +def test_articulation_points(): + Ggen = _generate_no_biconnected() + for flow_func in flow_funcs: + errmsg = f"Assertion failed in function: {flow_func.__name__}" + for i in range(1): # change 1 to 3 or more for more realizations. + G = next(Ggen) + cut = nx.minimum_node_cut(G, flow_func=flow_func) + assert len(cut) == 1, errmsg + assert cut.pop() in set(nx.articulation_points(G)), errmsg + + +def test_brandes_erlebach_book(): + # Figure 1 chapter 7: Connectivity + # http://www.informatik.uni-augsburg.de/thi/personen/kammer/Graph_Connectivity.pdf + G = nx.Graph() + G.add_edges_from( + [ + (1, 2), + (1, 3), + (1, 4), + (1, 5), + (2, 3), + (2, 6), + (3, 4), + (3, 6), + (4, 6), + (4, 7), + (5, 7), + (6, 8), + (6, 9), + (7, 8), + (7, 10), + (8, 11), + (9, 10), + (9, 11), + (10, 11), + ] + ) + for flow_func in flow_funcs: + kwargs = {"flow_func": flow_func} + errmsg = f"Assertion failed in function: {flow_func.__name__}" + # edge cutsets + assert 3 == len(nx.minimum_edge_cut(G, 1, 11, **kwargs)), errmsg + edge_cut = nx.minimum_edge_cut(G, **kwargs) + # Node 5 has only two edges + assert 2 == len(edge_cut), errmsg + H = G.copy() + H.remove_edges_from(edge_cut) + assert not nx.is_connected(H), errmsg + # node cuts + assert {6, 7} == minimum_st_node_cut(G, 1, 11, **kwargs), errmsg + assert {6, 7} == nx.minimum_node_cut(G, 1, 11, **kwargs), errmsg + node_cut = nx.minimum_node_cut(G, **kwargs) + assert 2 == len(node_cut), errmsg + H = G.copy() + H.remove_nodes_from(node_cut) + assert not nx.is_connected(H), errmsg + + +def test_white_harary_paper(): + # Figure 1b white and harary (2001) + # https://doi.org/10.1111/0081-1750.00098 + # A graph with high adhesion (edge connectivity) and low cohesion + # (node connectivity) + G = nx.disjoint_union(nx.complete_graph(4), nx.complete_graph(4)) + G.remove_node(7) + for i in range(4, 7): + G.add_edge(0, i) + G = nx.disjoint_union(G, nx.complete_graph(4)) + G.remove_node(G.order() - 1) + for i in range(7, 10): + G.add_edge(0, i) + for flow_func in flow_funcs: + kwargs = {"flow_func": flow_func} + errmsg = f"Assertion failed in function: {flow_func.__name__}" + # edge cuts + edge_cut = nx.minimum_edge_cut(G, **kwargs) + assert 3 == len(edge_cut), errmsg + H = G.copy() + H.remove_edges_from(edge_cut) + assert not nx.is_connected(H), errmsg + # node cuts + node_cut = nx.minimum_node_cut(G, **kwargs) + assert {0} == node_cut, errmsg + H = G.copy() + H.remove_nodes_from(node_cut) + assert not nx.is_connected(H), errmsg + + +def test_petersen_cutset(): + G = nx.petersen_graph() + for flow_func in flow_funcs: + kwargs = {"flow_func": flow_func} + errmsg = f"Assertion failed in function: {flow_func.__name__}" + # edge cuts + edge_cut = nx.minimum_edge_cut(G, **kwargs) + assert 3 == len(edge_cut), errmsg + H = G.copy() + H.remove_edges_from(edge_cut) + assert not nx.is_connected(H), errmsg + # node cuts + node_cut = nx.minimum_node_cut(G, **kwargs) + assert 3 == len(node_cut), errmsg + H = G.copy() + H.remove_nodes_from(node_cut) + assert not nx.is_connected(H), errmsg + + +def test_octahedral_cutset(): + G = nx.octahedral_graph() + for flow_func in flow_funcs: + kwargs = {"flow_func": flow_func} + errmsg = f"Assertion failed in function: {flow_func.__name__}" + # edge cuts + edge_cut = nx.minimum_edge_cut(G, **kwargs) + assert 4 == len(edge_cut), errmsg + H = G.copy() + H.remove_edges_from(edge_cut) + assert not nx.is_connected(H), errmsg + # node cuts + node_cut = nx.minimum_node_cut(G, **kwargs) + assert 4 == len(node_cut), errmsg + H = G.copy() + H.remove_nodes_from(node_cut) + assert not nx.is_connected(H), errmsg + + +def test_icosahedral_cutset(): + G = nx.icosahedral_graph() + for flow_func in flow_funcs: + kwargs = {"flow_func": flow_func} + errmsg = f"Assertion failed in function: {flow_func.__name__}" + # edge cuts + edge_cut = nx.minimum_edge_cut(G, **kwargs) + assert 5 == len(edge_cut), errmsg + H = G.copy() + H.remove_edges_from(edge_cut) + assert not nx.is_connected(H), errmsg + # node cuts + node_cut = nx.minimum_node_cut(G, **kwargs) + assert 5 == len(node_cut), errmsg + H = G.copy() + H.remove_nodes_from(node_cut) + assert not nx.is_connected(H), errmsg + + +def test_node_cutset_exception(): + G = nx.Graph() + G.add_edges_from([(1, 2), (3, 4)]) + for flow_func in flow_funcs: + pytest.raises(nx.NetworkXError, nx.minimum_node_cut, G, flow_func=flow_func) + + +def test_node_cutset_random_graphs(): + for flow_func in flow_funcs: + errmsg = f"Assertion failed in function: {flow_func.__name__}" + for i in range(3): + G = nx.fast_gnp_random_graph(50, 0.25, seed=42) + if not nx.is_connected(G): + ccs = iter(nx.connected_components(G)) + start = arbitrary_element(next(ccs)) + G.add_edges_from((start, arbitrary_element(c)) for c in ccs) + cutset = nx.minimum_node_cut(G, flow_func=flow_func) + assert nx.node_connectivity(G) == len(cutset), errmsg + G.remove_nodes_from(cutset) + assert not nx.is_connected(G), errmsg + + +def test_edge_cutset_random_graphs(): + for flow_func in flow_funcs: + errmsg = f"Assertion failed in function: {flow_func.__name__}" + for i in range(3): + G = nx.fast_gnp_random_graph(50, 0.25, seed=42) + if not nx.is_connected(G): + ccs = iter(nx.connected_components(G)) + start = arbitrary_element(next(ccs)) + G.add_edges_from((start, arbitrary_element(c)) for c in ccs) + cutset = nx.minimum_edge_cut(G, flow_func=flow_func) + assert nx.edge_connectivity(G) == len(cutset), errmsg + G.remove_edges_from(cutset) + assert not nx.is_connected(G), errmsg + + +def test_empty_graphs(): + G = nx.Graph() + D = nx.DiGraph() + for interface_func in [nx.minimum_node_cut, nx.minimum_edge_cut]: + for flow_func in flow_funcs: + pytest.raises( + nx.NetworkXPointlessConcept, interface_func, G, flow_func=flow_func + ) + pytest.raises( + nx.NetworkXPointlessConcept, interface_func, D, flow_func=flow_func + ) + + +def test_unbounded(): + G = nx.complete_graph(5) + for flow_func in flow_funcs: + assert 4 == len(minimum_st_edge_cut(G, 1, 4, flow_func=flow_func)) + + +def test_missing_source(): + G = nx.path_graph(4) + for interface_func in [nx.minimum_edge_cut, nx.minimum_node_cut]: + for flow_func in flow_funcs: + pytest.raises( + nx.NetworkXError, interface_func, G, 10, 1, flow_func=flow_func + ) + + +def test_missing_target(): + G = nx.path_graph(4) + for interface_func in [nx.minimum_edge_cut, nx.minimum_node_cut]: + for flow_func in flow_funcs: + pytest.raises( + nx.NetworkXError, interface_func, G, 1, 10, flow_func=flow_func + ) + + +def test_not_weakly_connected(): + G = nx.DiGraph() + nx.add_path(G, [1, 2, 3]) + nx.add_path(G, [4, 5]) + for interface_func in [nx.minimum_edge_cut, nx.minimum_node_cut]: + for flow_func in flow_funcs: + pytest.raises(nx.NetworkXError, interface_func, G, flow_func=flow_func) + + +def test_not_connected(): + G = nx.Graph() + nx.add_path(G, [1, 2, 3]) + nx.add_path(G, [4, 5]) + for interface_func in [nx.minimum_edge_cut, nx.minimum_node_cut]: + for flow_func in flow_funcs: + pytest.raises(nx.NetworkXError, interface_func, G, flow_func=flow_func) + + +def tests_min_cut_complete(): + G = nx.complete_graph(5) + for interface_func in [nx.minimum_edge_cut, nx.minimum_node_cut]: + for flow_func in flow_funcs: + assert 4 == len(interface_func(G, flow_func=flow_func)) + + +def tests_min_cut_complete_directed(): + G = nx.complete_graph(5) + G = G.to_directed() + for interface_func in [nx.minimum_edge_cut, nx.minimum_node_cut]: + for flow_func in flow_funcs: + assert 4 == len(interface_func(G, flow_func=flow_func)) + + +def tests_minimum_st_node_cut(): + G = nx.Graph() + G.add_nodes_from([0, 1, 2, 3, 7, 8, 11, 12]) + G.add_edges_from([(7, 11), (1, 11), (1, 12), (12, 8), (0, 1)]) + nodelist = minimum_st_node_cut(G, 7, 11) + assert nodelist == set() + + +def test_invalid_auxiliary(): + G = nx.complete_graph(5) + pytest.raises(nx.NetworkXError, minimum_st_node_cut, G, 0, 3, auxiliary=G) + + +def test_interface_only_source(): + G = nx.complete_graph(5) + for interface_func in [nx.minimum_node_cut, nx.minimum_edge_cut]: + pytest.raises(nx.NetworkXError, interface_func, G, s=0) + + +def test_interface_only_target(): + G = nx.complete_graph(5) + for interface_func in [nx.minimum_node_cut, nx.minimum_edge_cut]: + pytest.raises(nx.NetworkXError, interface_func, G, t=3) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_disjoint_paths.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_disjoint_paths.py new file mode 100644 index 0000000000000000000000000000000000000000..0c0fad9f5ca474a6b547a399f8f284f7ff6e33a4 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_disjoint_paths.py @@ -0,0 +1,249 @@ +import pytest + +import networkx as nx +from networkx.algorithms import flow +from networkx.utils import pairwise + +flow_funcs = [ + flow.boykov_kolmogorov, + flow.edmonds_karp, + flow.dinitz, + flow.preflow_push, + flow.shortest_augmenting_path, +] + + +def is_path(G, path): + return all(v in G[u] for u, v in pairwise(path)) + + +def are_edge_disjoint_paths(G, paths): + if not paths: + return False + for path in paths: + assert is_path(G, path) + paths_edges = [list(pairwise(p)) for p in paths] + num_of_edges = sum(len(e) for e in paths_edges) + num_unique_edges = len(set.union(*[set(es) for es in paths_edges])) + if num_of_edges == num_unique_edges: + return True + return False + + +def are_node_disjoint_paths(G, paths): + if not paths: + return False + for path in paths: + assert is_path(G, path) + # first and last nodes are source and target + st = {paths[0][0], paths[0][-1]} + num_of_nodes = len([n for path in paths for n in path if n not in st]) + num_unique_nodes = len({n for path in paths for n in path if n not in st}) + if num_of_nodes == num_unique_nodes: + return True + return False + + +def test_graph_from_pr_2053(): + G = nx.Graph() + G.add_edges_from( + [ + ("A", "B"), + ("A", "D"), + ("A", "F"), + ("A", "G"), + ("B", "C"), + ("B", "D"), + ("B", "G"), + ("C", "D"), + ("C", "E"), + ("C", "Z"), + ("D", "E"), + ("D", "F"), + ("E", "F"), + ("E", "Z"), + ("F", "Z"), + ("G", "Z"), + ] + ) + for flow_func in flow_funcs: + kwargs = {"flow_func": flow_func} + errmsg = f"Assertion failed in function: {flow_func.__name__}" + # edge disjoint paths + edge_paths = list(nx.edge_disjoint_paths(G, "A", "Z", **kwargs)) + assert are_edge_disjoint_paths(G, edge_paths), errmsg + assert nx.edge_connectivity(G, "A", "Z") == len(edge_paths), errmsg + # node disjoint paths + node_paths = list(nx.node_disjoint_paths(G, "A", "Z", **kwargs)) + assert are_node_disjoint_paths(G, node_paths), errmsg + assert nx.node_connectivity(G, "A", "Z") == len(node_paths), errmsg + + +def test_florentine_families(): + G = nx.florentine_families_graph() + for flow_func in flow_funcs: + kwargs = {"flow_func": flow_func} + errmsg = f"Assertion failed in function: {flow_func.__name__}" + # edge disjoint paths + edge_dpaths = list(nx.edge_disjoint_paths(G, "Medici", "Strozzi", **kwargs)) + assert are_edge_disjoint_paths(G, edge_dpaths), errmsg + assert nx.edge_connectivity(G, "Medici", "Strozzi") == len(edge_dpaths), errmsg + # node disjoint paths + node_dpaths = list(nx.node_disjoint_paths(G, "Medici", "Strozzi", **kwargs)) + assert are_node_disjoint_paths(G, node_dpaths), errmsg + assert nx.node_connectivity(G, "Medici", "Strozzi") == len(node_dpaths), errmsg + + +def test_karate(): + G = nx.karate_club_graph() + for flow_func in flow_funcs: + kwargs = {"flow_func": flow_func} + errmsg = f"Assertion failed in function: {flow_func.__name__}" + # edge disjoint paths + edge_dpaths = list(nx.edge_disjoint_paths(G, 0, 33, **kwargs)) + assert are_edge_disjoint_paths(G, edge_dpaths), errmsg + assert nx.edge_connectivity(G, 0, 33) == len(edge_dpaths), errmsg + # node disjoint paths + node_dpaths = list(nx.node_disjoint_paths(G, 0, 33, **kwargs)) + assert are_node_disjoint_paths(G, node_dpaths), errmsg + assert nx.node_connectivity(G, 0, 33) == len(node_dpaths), errmsg + + +def test_petersen_disjoint_paths(): + G = nx.petersen_graph() + for flow_func in flow_funcs: + kwargs = {"flow_func": flow_func} + errmsg = f"Assertion failed in function: {flow_func.__name__}" + # edge disjoint paths + edge_dpaths = list(nx.edge_disjoint_paths(G, 0, 6, **kwargs)) + assert are_edge_disjoint_paths(G, edge_dpaths), errmsg + assert 3 == len(edge_dpaths), errmsg + # node disjoint paths + node_dpaths = list(nx.node_disjoint_paths(G, 0, 6, **kwargs)) + assert are_node_disjoint_paths(G, node_dpaths), errmsg + assert 3 == len(node_dpaths), errmsg + + +def test_octahedral_disjoint_paths(): + G = nx.octahedral_graph() + for flow_func in flow_funcs: + kwargs = {"flow_func": flow_func} + errmsg = f"Assertion failed in function: {flow_func.__name__}" + # edge disjoint paths + edge_dpaths = list(nx.edge_disjoint_paths(G, 0, 5, **kwargs)) + assert are_edge_disjoint_paths(G, edge_dpaths), errmsg + assert 4 == len(edge_dpaths), errmsg + # node disjoint paths + node_dpaths = list(nx.node_disjoint_paths(G, 0, 5, **kwargs)) + assert are_node_disjoint_paths(G, node_dpaths), errmsg + assert 4 == len(node_dpaths), errmsg + + +def test_icosahedral_disjoint_paths(): + G = nx.icosahedral_graph() + for flow_func in flow_funcs: + kwargs = {"flow_func": flow_func} + errmsg = f"Assertion failed in function: {flow_func.__name__}" + # edge disjoint paths + edge_dpaths = list(nx.edge_disjoint_paths(G, 0, 6, **kwargs)) + assert are_edge_disjoint_paths(G, edge_dpaths), errmsg + assert 5 == len(edge_dpaths), errmsg + # node disjoint paths + node_dpaths = list(nx.node_disjoint_paths(G, 0, 6, **kwargs)) + assert are_node_disjoint_paths(G, node_dpaths), errmsg + assert 5 == len(node_dpaths), errmsg + + +def test_cutoff_disjoint_paths(): + G = nx.icosahedral_graph() + for flow_func in flow_funcs: + kwargs = {"flow_func": flow_func} + errmsg = f"Assertion failed in function: {flow_func.__name__}" + for cutoff in [2, 4]: + kwargs["cutoff"] = cutoff + # edge disjoint paths + edge_dpaths = list(nx.edge_disjoint_paths(G, 0, 6, **kwargs)) + assert are_edge_disjoint_paths(G, edge_dpaths), errmsg + assert cutoff == len(edge_dpaths), errmsg + # node disjoint paths + node_dpaths = list(nx.node_disjoint_paths(G, 0, 6, **kwargs)) + assert are_node_disjoint_paths(G, node_dpaths), errmsg + assert cutoff == len(node_dpaths), errmsg + + +def test_missing_source_edge_paths(): + with pytest.raises(nx.NetworkXError): + G = nx.path_graph(4) + list(nx.edge_disjoint_paths(G, 10, 1)) + + +def test_missing_source_node_paths(): + with pytest.raises(nx.NetworkXError): + G = nx.path_graph(4) + list(nx.node_disjoint_paths(G, 10, 1)) + + +def test_missing_target_edge_paths(): + with pytest.raises(nx.NetworkXError): + G = nx.path_graph(4) + list(nx.edge_disjoint_paths(G, 1, 10)) + + +def test_missing_target_node_paths(): + with pytest.raises(nx.NetworkXError): + G = nx.path_graph(4) + list(nx.node_disjoint_paths(G, 1, 10)) + + +def test_not_weakly_connected_edges(): + with pytest.raises(nx.NetworkXNoPath): + G = nx.DiGraph() + nx.add_path(G, [1, 2, 3]) + nx.add_path(G, [4, 5]) + list(nx.edge_disjoint_paths(G, 1, 5)) + + +def test_not_weakly_connected_nodes(): + with pytest.raises(nx.NetworkXNoPath): + G = nx.DiGraph() + nx.add_path(G, [1, 2, 3]) + nx.add_path(G, [4, 5]) + list(nx.node_disjoint_paths(G, 1, 5)) + + +def test_not_connected_edges(): + with pytest.raises(nx.NetworkXNoPath): + G = nx.Graph() + nx.add_path(G, [1, 2, 3]) + nx.add_path(G, [4, 5]) + list(nx.edge_disjoint_paths(G, 1, 5)) + + +def test_not_connected_nodes(): + with pytest.raises(nx.NetworkXNoPath): + G = nx.Graph() + nx.add_path(G, [1, 2, 3]) + nx.add_path(G, [4, 5]) + list(nx.node_disjoint_paths(G, 1, 5)) + + +def test_isolated_edges(): + with pytest.raises(nx.NetworkXNoPath): + G = nx.Graph() + G.add_node(1) + nx.add_path(G, [4, 5]) + list(nx.edge_disjoint_paths(G, 1, 5)) + + +def test_isolated_nodes(): + with pytest.raises(nx.NetworkXNoPath): + G = nx.Graph() + G.add_node(1) + nx.add_path(G, [4, 5]) + list(nx.node_disjoint_paths(G, 1, 5)) + + +def test_invalid_auxiliary(): + with pytest.raises(nx.NetworkXError): + G = nx.complete_graph(5) + list(nx.node_disjoint_paths(G, 0, 3, auxiliary=G)) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_edge_augmentation.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_edge_augmentation.py new file mode 100644 index 0000000000000000000000000000000000000000..03e7c92441f516d7ac001707cbf4f23bf89f8f1d --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_edge_augmentation.py @@ -0,0 +1,502 @@ +import itertools as it +import random + +import pytest + +import networkx as nx +from networkx.algorithms.connectivity import k_edge_augmentation +from networkx.algorithms.connectivity.edge_augmentation import ( + _unpack_available_edges, + collapse, + complement_edges, + is_k_edge_connected, + is_locally_k_edge_connected, +) +from networkx.utils import pairwise + +# This should be set to the largest k for which an efficient algorithm is +# explicitly defined. +MAX_EFFICIENT_K = 2 + + +def tarjan_bridge_graph(): + # graph from tarjan paper + # RE Tarjan - "A note on finding the bridges of a graph" + # Information Processing Letters, 1974 - Elsevier + # doi:10.1016/0020-0190(74)90003-9. + # define 2-connected components and bridges + ccs = [ + (1, 2, 4, 3, 1, 4), + (5, 6, 7, 5), + (8, 9, 10, 8), + (17, 18, 16, 15, 17), + (11, 12, 14, 13, 11, 14), + ] + bridges = [(4, 8), (3, 5), (3, 17)] + G = nx.Graph(it.chain(*(pairwise(path) for path in ccs + bridges))) + return G + + +def test_weight_key(): + G = nx.Graph() + G.add_nodes_from([1, 2, 3, 4, 5, 6, 7, 8, 9]) + G.add_edges_from([(3, 8), (1, 2), (2, 3)]) + impossible = {(3, 6), (3, 9)} + rng = random.Random(0) + avail_uv = list(set(complement_edges(G)) - impossible) + avail = [(u, v, {"cost": rng.random()}) for u, v in avail_uv] + + _augment_and_check(G, k=1) + _augment_and_check(G, k=1, avail=avail_uv) + _augment_and_check(G, k=1, avail=avail, weight="cost") + + _check_augmentations(G, avail, weight="cost") + + +def test_is_locally_k_edge_connected_exceptions(): + pytest.raises(nx.NetworkXNotImplemented, is_k_edge_connected, nx.DiGraph(), k=0) + pytest.raises(nx.NetworkXNotImplemented, is_k_edge_connected, nx.MultiGraph(), k=0) + pytest.raises(ValueError, is_k_edge_connected, nx.Graph(), k=0) + + +def test_is_k_edge_connected(): + G = nx.barbell_graph(10, 0) + assert is_k_edge_connected(G, k=1) + assert not is_k_edge_connected(G, k=2) + + G = nx.Graph() + G.add_nodes_from([5, 15]) + assert not is_k_edge_connected(G, k=1) + assert not is_k_edge_connected(G, k=2) + + G = nx.complete_graph(5) + assert is_k_edge_connected(G, k=1) + assert is_k_edge_connected(G, k=2) + assert is_k_edge_connected(G, k=3) + assert is_k_edge_connected(G, k=4) + + G = nx.compose(nx.complete_graph([0, 1, 2]), nx.complete_graph([3, 4, 5])) + assert not is_k_edge_connected(G, k=1) + assert not is_k_edge_connected(G, k=2) + assert not is_k_edge_connected(G, k=3) + + +def test_is_k_edge_connected_exceptions(): + pytest.raises( + nx.NetworkXNotImplemented, is_locally_k_edge_connected, nx.DiGraph(), 1, 2, k=0 + ) + pytest.raises( + nx.NetworkXNotImplemented, + is_locally_k_edge_connected, + nx.MultiGraph(), + 1, + 2, + k=0, + ) + pytest.raises(ValueError, is_locally_k_edge_connected, nx.Graph(), 1, 2, k=0) + + +def test_is_locally_k_edge_connected(): + G = nx.barbell_graph(10, 0) + assert is_locally_k_edge_connected(G, 5, 15, k=1) + assert not is_locally_k_edge_connected(G, 5, 15, k=2) + + G = nx.Graph() + G.add_nodes_from([5, 15]) + assert not is_locally_k_edge_connected(G, 5, 15, k=2) + + +def test_null_graph(): + G = nx.Graph() + _check_augmentations(G, max_k=MAX_EFFICIENT_K + 2) + + +def test_cliques(): + for n in range(1, 10): + G = nx.complete_graph(n) + _check_augmentations(G, max_k=MAX_EFFICIENT_K + 2) + + +def test_clique_and_node(): + for n in range(1, 10): + G = nx.complete_graph(n) + G.add_node(n + 1) + _check_augmentations(G, max_k=MAX_EFFICIENT_K + 2) + + +def test_point_graph(): + G = nx.Graph() + G.add_node(1) + _check_augmentations(G, max_k=MAX_EFFICIENT_K + 2) + + +def test_edgeless_graph(): + G = nx.Graph() + G.add_nodes_from([1, 2, 3, 4]) + _check_augmentations(G) + + +def test_invalid_k(): + G = nx.Graph() + pytest.raises(ValueError, list, k_edge_augmentation(G, k=-1)) + pytest.raises(ValueError, list, k_edge_augmentation(G, k=0)) + + +def test_unfeasible(): + G = tarjan_bridge_graph() + pytest.raises(nx.NetworkXUnfeasible, list, k_edge_augmentation(G, k=1, avail=[])) + + pytest.raises(nx.NetworkXUnfeasible, list, k_edge_augmentation(G, k=2, avail=[])) + + pytest.raises( + nx.NetworkXUnfeasible, list, k_edge_augmentation(G, k=2, avail=[(7, 9)]) + ) + + # partial solutions should not error if real solutions are infeasible + aug_edges = list(k_edge_augmentation(G, k=2, avail=[(7, 9)], partial=True)) + assert aug_edges == [(7, 9)] + + _check_augmentations(G, avail=[], max_k=MAX_EFFICIENT_K + 2) + + _check_augmentations(G, avail=[(7, 9)], max_k=MAX_EFFICIENT_K + 2) + + +def test_tarjan(): + G = tarjan_bridge_graph() + + aug_edges = set(_augment_and_check(G, k=2)[0]) + print(f"aug_edges = {aug_edges!r}") + # can't assert edge exactly equality due to non-determinant edge order + # but we do know the size of the solution must be 3 + assert len(aug_edges) == 3 + + avail = [ + (9, 7), + (8, 5), + (2, 10), + (6, 13), + (11, 18), + (1, 17), + (2, 3), + (16, 17), + (18, 14), + (15, 14), + ] + aug_edges = set(_augment_and_check(G, avail=avail, k=2)[0]) + + # Can't assert exact length since approximation depends on the order of a + # dict traversal. + assert len(aug_edges) <= 3 * 2 + + _check_augmentations(G, avail) + + +def test_configuration(): + # seeds = [2718183590, 2470619828, 1694705158, 3001036531, 2401251497] + seeds = [1001, 1002, 1003, 1004] + for seed in seeds: + deg_seq = nx.random_powerlaw_tree_sequence(20, seed=seed, tries=5000) + G = nx.Graph(nx.configuration_model(deg_seq, seed=seed)) + G.remove_edges_from(nx.selfloop_edges(G)) + _check_augmentations(G) + + +def test_shell(): + # seeds = [2057382236, 3331169846, 1840105863, 476020778, 2247498425] + seeds = [18] + for seed in seeds: + constructor = [(12, 70, 0.8), (15, 40, 0.6)] + G = nx.random_shell_graph(constructor, seed=seed) + _check_augmentations(G) + + +def test_karate(): + G = nx.karate_club_graph() + _check_augmentations(G) + + +def test_star(): + G = nx.star_graph(3) + _check_augmentations(G) + + G = nx.star_graph(5) + _check_augmentations(G) + + G = nx.star_graph(10) + _check_augmentations(G) + + +def test_barbell(): + G = nx.barbell_graph(5, 0) + _check_augmentations(G) + + G = nx.barbell_graph(5, 2) + _check_augmentations(G) + + G = nx.barbell_graph(5, 3) + _check_augmentations(G) + + G = nx.barbell_graph(5, 4) + _check_augmentations(G) + + +def test_bridge(): + G = nx.Graph([(2393, 2257), (2393, 2685), (2685, 2257), (1758, 2257)]) + _check_augmentations(G) + + +def test_gnp_augmentation(): + rng = random.Random(0) + G = nx.gnp_random_graph(30, 0.005, seed=0) + # Randomly make edges available + avail = { + (u, v): 1 + rng.random() for u, v in complement_edges(G) if rng.random() < 0.25 + } + _check_augmentations(G, avail) + + +def _assert_solution_properties(G, aug_edges, avail_dict=None): + """Checks that aug_edges are consistently formatted""" + if avail_dict is not None: + assert all(e in avail_dict for e in aug_edges), ( + "when avail is specified aug-edges should be in avail" + ) + + unique_aug = set(map(tuple, map(sorted, aug_edges))) + unique_aug = list(map(tuple, map(sorted, aug_edges))) + assert len(aug_edges) == len(unique_aug), "edges should be unique" + + assert not any(u == v for u, v in unique_aug), "should be no self-edges" + + assert not any(G.has_edge(u, v) for u, v in unique_aug), ( + "aug edges and G.edges should be disjoint" + ) + + +def _augment_and_check( + G, k, avail=None, weight=None, verbose=False, orig_k=None, max_aug_k=None +): + """ + Does one specific augmentation and checks for properties of the result + """ + if orig_k is None: + try: + orig_k = nx.edge_connectivity(G) + except nx.NetworkXPointlessConcept: + orig_k = 0 + info = {} + try: + if avail is not None: + # ensure avail is in dict form + avail_dict = dict(zip(*_unpack_available_edges(avail, weight=weight))) + else: + avail_dict = None + try: + # Find the augmentation if possible + generator = nx.k_edge_augmentation(G, k=k, weight=weight, avail=avail) + assert not isinstance(generator, list), "should always return an iter" + aug_edges = [] + for edge in generator: + aug_edges.append(edge) + except nx.NetworkXUnfeasible: + infeasible = True + info["infeasible"] = True + assert len(aug_edges) == 0, "should not generate anything if unfeasible" + + if avail is None: + n_nodes = G.number_of_nodes() + assert n_nodes <= k, ( + "unconstrained cases are only unfeasible if |V| <= k. " + f"Got |V|={n_nodes} and k={k}" + ) + else: + if max_aug_k is None: + G_aug_all = G.copy() + G_aug_all.add_edges_from(avail_dict.keys()) + try: + max_aug_k = nx.edge_connectivity(G_aug_all) + except nx.NetworkXPointlessConcept: + max_aug_k = 0 + + assert max_aug_k < k, ( + "avail should only be unfeasible if using all edges " + "does not achieve k-edge-connectivity" + ) + + # Test for a partial solution + partial_edges = list( + nx.k_edge_augmentation(G, k=k, weight=weight, partial=True, avail=avail) + ) + + info["n_partial_edges"] = len(partial_edges) + + if avail_dict is None: + assert set(partial_edges) == set(complement_edges(G)), ( + "unweighted partial solutions should be the complement" + ) + elif len(avail_dict) > 0: + H = G.copy() + + # Find the partial / full augmented connectivity + H.add_edges_from(partial_edges) + partial_conn = nx.edge_connectivity(H) + + H.add_edges_from(set(avail_dict.keys())) + full_conn = nx.edge_connectivity(H) + + # Full connectivity should be no better than our partial + # solution. + assert partial_conn == full_conn, ( + "adding more edges should not increase k-conn" + ) + + # Find the new edge-connectivity after adding the augmenting edges + aug_edges = partial_edges + else: + infeasible = False + + # Find the weight of the augmentation + num_edges = len(aug_edges) + if avail is not None: + total_weight = sum(avail_dict[e] for e in aug_edges) + else: + total_weight = num_edges + + info["total_weight"] = total_weight + info["num_edges"] = num_edges + + # Find the new edge-connectivity after adding the augmenting edges + G_aug = G.copy() + G_aug.add_edges_from(aug_edges) + try: + aug_k = nx.edge_connectivity(G_aug) + except nx.NetworkXPointlessConcept: + aug_k = 0 + info["aug_k"] = aug_k + + # Do checks + if not infeasible and orig_k < k: + assert info["aug_k"] >= k, f"connectivity should increase to k={k} or more" + + assert info["aug_k"] >= orig_k, "augmenting should never reduce connectivity" + + _assert_solution_properties(G, aug_edges, avail_dict) + + except Exception: + info["failed"] = True + print(f"edges = {list(G.edges())}") + print(f"nodes = {list(G.nodes())}") + print(f"aug_edges = {list(aug_edges)}") + print(f"info = {info}") + raise + else: + if verbose: + print(f"info = {info}") + + if infeasible: + aug_edges = None + return aug_edges, info + + +def _check_augmentations(G, avail=None, max_k=None, weight=None, verbose=False): + """Helper to check weighted/unweighted cases with multiple values of k""" + # Using all available edges, find the maximum edge-connectivity + try: + orig_k = nx.edge_connectivity(G) + except nx.NetworkXPointlessConcept: + orig_k = 0 + + if avail is not None: + all_aug_edges = _unpack_available_edges(avail, weight=weight)[0] + G_aug_all = G.copy() + G_aug_all.add_edges_from(all_aug_edges) + try: + max_aug_k = nx.edge_connectivity(G_aug_all) + except nx.NetworkXPointlessConcept: + max_aug_k = 0 + else: + max_aug_k = G.number_of_nodes() - 1 + + if max_k is None: + max_k = min(4, max_aug_k) + + avail_uniform = {e: 1 for e in complement_edges(G)} + + if verbose: + print("\n=== CHECK_AUGMENTATION ===") + print(f"G.number_of_nodes = {G.number_of_nodes()!r}") + print(f"G.number_of_edges = {G.number_of_edges()!r}") + print(f"max_k = {max_k!r}") + print(f"max_aug_k = {max_aug_k!r}") + print(f"orig_k = {orig_k!r}") + + # check augmentation for multiple values of k + for k in range(1, max_k + 1): + if verbose: + print("---------------") + print(f"Checking k = {k}") + + # Check the unweighted version + if verbose: + print("unweighted case") + aug_edges1, info1 = _augment_and_check(G, k=k, verbose=verbose, orig_k=orig_k) + + # Check that the weighted version with all available edges and uniform + # weights gives a similar solution to the unweighted case. + if verbose: + print("weighted uniform case") + aug_edges2, info2 = _augment_and_check( + G, + k=k, + avail=avail_uniform, + verbose=verbose, + orig_k=orig_k, + max_aug_k=G.number_of_nodes() - 1, + ) + + # Check the weighted version + if avail is not None: + if verbose: + print("weighted case") + aug_edges3, info3 = _augment_and_check( + G, + k=k, + avail=avail, + weight=weight, + verbose=verbose, + max_aug_k=max_aug_k, + orig_k=orig_k, + ) + + if aug_edges1 is not None: + # Check approximation ratios + if k == 1: + # when k=1, both solutions should be optimal + assert info2["total_weight"] == info1["total_weight"] + if k == 2: + # when k=2, the weighted version is an approximation + if orig_k == 0: + # the approximation ratio is 3 if G is not connected + assert info2["total_weight"] <= info1["total_weight"] * 3 + else: + # the approximation ratio is 2 if G is was connected + assert info2["total_weight"] <= info1["total_weight"] * 2 + _check_unconstrained_bridge_property(G, info1) + + +def _check_unconstrained_bridge_property(G, info1): + # Check Theorem 5 from Eswaran and Tarjan. (1975) Augmentation problems + import math + + bridge_ccs = list(nx.connectivity.bridge_components(G)) + # condense G into an forest C + C = collapse(G, bridge_ccs) + + p = len([n for n, d in C.degree() if d == 1]) # leafs + q = len([n for n, d in C.degree() if d == 0]) # isolated + if p + q > 1: + size_target = math.ceil(p / 2) + q + size_aug = info1["num_edges"] + assert size_aug == size_target, ( + "augmentation size is different from what theory predicts" + ) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_edge_kcomponents.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_edge_kcomponents.py new file mode 100644 index 0000000000000000000000000000000000000000..f14ed6466fad54e730ee593eb7b6ed4f99dc0fa8 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_edge_kcomponents.py @@ -0,0 +1,488 @@ +import itertools as it + +import pytest + +import networkx as nx +from networkx.algorithms.connectivity import EdgeComponentAuxGraph, bridge_components +from networkx.algorithms.connectivity.edge_kcomponents import general_k_edge_subgraphs +from networkx.utils import pairwise + +# ---------------- +# Helper functions +# ---------------- + + +def fset(list_of_sets): + """allows == to be used for list of sets""" + return set(map(frozenset, list_of_sets)) + + +def _assert_subgraph_edge_connectivity(G, ccs_subgraph, k): + """ + tests properties of k-edge-connected subgraphs + + the actual edge connectivity should be no less than k unless the cc is a + single node. + """ + for cc in ccs_subgraph: + C = G.subgraph(cc) + if len(cc) > 1: + connectivity = nx.edge_connectivity(C) + assert connectivity >= k + + +def _memo_connectivity(G, u, v, memo): + edge = (u, v) + if edge in memo: + return memo[edge] + if not G.is_directed(): + redge = (v, u) + if redge in memo: + return memo[redge] + memo[edge] = nx.edge_connectivity(G, *edge) + return memo[edge] + + +def _all_pairs_connectivity(G, cc, k, memo): + # Brute force check + for u, v in it.combinations(cc, 2): + # Use a memoization dict to save on computation + connectivity = _memo_connectivity(G, u, v, memo) + if G.is_directed(): + connectivity = min(connectivity, _memo_connectivity(G, v, u, memo)) + assert connectivity >= k + + +def _assert_local_cc_edge_connectivity(G, ccs_local, k, memo): + """ + tests properties of k-edge-connected components + + the local edge connectivity between each pair of nodes in the original + graph should be no less than k unless the cc is a single node. + """ + for cc in ccs_local: + if len(cc) > 1: + # Strategy for testing a bit faster: If the subgraph has high edge + # connectivity then it must have local connectivity + C = G.subgraph(cc) + connectivity = nx.edge_connectivity(C) + if connectivity < k: + # Otherwise do the brute force (with memoization) check + _all_pairs_connectivity(G, cc, k, memo) + + +# Helper function +def _check_edge_connectivity(G): + """ + Helper - generates all k-edge-components using the aux graph. Checks the + both local and subgraph edge connectivity of each cc. Also checks that + alternate methods of computing the k-edge-ccs generate the same result. + """ + # Construct the auxiliary graph that can be used to make each k-cc or k-sub + aux_graph = EdgeComponentAuxGraph.construct(G) + + # memoize the local connectivity in this graph + memo = {} + + for k in it.count(1): + # Test "local" k-edge-components and k-edge-subgraphs + ccs_local = fset(aux_graph.k_edge_components(k)) + ccs_subgraph = fset(aux_graph.k_edge_subgraphs(k)) + + # Check connectivity properties that should be guaranteed by the + # algorithms. + _assert_local_cc_edge_connectivity(G, ccs_local, k, memo) + _assert_subgraph_edge_connectivity(G, ccs_subgraph, k) + + if k == 1 or k == 2 and not G.is_directed(): + assert ccs_local == ccs_subgraph, ( + "Subgraphs and components should be the same when k == 1 or (k == 2 and not G.directed())" + ) + + if G.is_directed(): + # Test special case methods are the same as the aux graph + if k == 1: + alt_sccs = fset(nx.strongly_connected_components(G)) + assert alt_sccs == ccs_local, "k=1 failed alt" + assert alt_sccs == ccs_subgraph, "k=1 failed alt" + else: + # Test special case methods are the same as the aux graph + if k == 1: + alt_ccs = fset(nx.connected_components(G)) + assert alt_ccs == ccs_local, "k=1 failed alt" + assert alt_ccs == ccs_subgraph, "k=1 failed alt" + elif k == 2: + alt_bridge_ccs = fset(bridge_components(G)) + assert alt_bridge_ccs == ccs_local, "k=2 failed alt" + assert alt_bridge_ccs == ccs_subgraph, "k=2 failed alt" + # if new methods for k == 3 or k == 4 are implemented add them here + + # Check the general subgraph method works by itself + alt_subgraph_ccs = fset( + [set(C.nodes()) for C in general_k_edge_subgraphs(G, k=k)] + ) + assert alt_subgraph_ccs == ccs_subgraph, "alt subgraph method failed" + + # Stop once k is larger than all special case methods + # and we cannot break down ccs any further. + if k > 2 and all(len(cc) == 1 for cc in ccs_local): + break + + +# ---------------- +# Misc tests +# ---------------- + + +def test_zero_k_exception(): + G = nx.Graph() + # functions that return generators error immediately + pytest.raises(ValueError, nx.k_edge_components, G, k=0) + pytest.raises(ValueError, nx.k_edge_subgraphs, G, k=0) + + # actual generators only error when you get the first item + aux_graph = EdgeComponentAuxGraph.construct(G) + pytest.raises(ValueError, list, aux_graph.k_edge_components(k=0)) + pytest.raises(ValueError, list, aux_graph.k_edge_subgraphs(k=0)) + + pytest.raises(ValueError, list, general_k_edge_subgraphs(G, k=0)) + + +def test_empty_input(): + G = nx.Graph() + assert [] == list(nx.k_edge_components(G, k=5)) + assert [] == list(nx.k_edge_subgraphs(G, k=5)) + + G = nx.DiGraph() + assert [] == list(nx.k_edge_components(G, k=5)) + assert [] == list(nx.k_edge_subgraphs(G, k=5)) + + +def test_not_implemented(): + G = nx.MultiGraph() + pytest.raises(nx.NetworkXNotImplemented, EdgeComponentAuxGraph.construct, G) + pytest.raises(nx.NetworkXNotImplemented, nx.k_edge_components, G, k=2) + pytest.raises(nx.NetworkXNotImplemented, nx.k_edge_subgraphs, G, k=2) + with pytest.raises(nx.NetworkXNotImplemented): + next(bridge_components(G)) + with pytest.raises(nx.NetworkXNotImplemented): + next(bridge_components(nx.DiGraph())) + + +def test_general_k_edge_subgraph_quick_return(): + # tests quick return optimization + G = nx.Graph() + G.add_node(0) + subgraphs = list(general_k_edge_subgraphs(G, k=1)) + assert len(subgraphs) == 1 + for subgraph in subgraphs: + assert subgraph.number_of_nodes() == 1 + + G.add_node(1) + subgraphs = list(general_k_edge_subgraphs(G, k=1)) + assert len(subgraphs) == 2 + for subgraph in subgraphs: + assert subgraph.number_of_nodes() == 1 + + +# ---------------- +# Undirected tests +# ---------------- + + +def test_random_gnp(): + # seeds = [1550709854, 1309423156, 4208992358, 2785630813, 1915069929] + seeds = [12, 13] + + for seed in seeds: + G = nx.gnp_random_graph(20, 0.2, seed=seed) + _check_edge_connectivity(G) + + +def test_configuration(): + # seeds = [2718183590, 2470619828, 1694705158, 3001036531, 2401251497] + seeds = [14, 15] + for seed in seeds: + deg_seq = nx.random_powerlaw_tree_sequence(20, seed=seed, tries=5000) + G = nx.Graph(nx.configuration_model(deg_seq, seed=seed)) + G.remove_edges_from(nx.selfloop_edges(G)) + _check_edge_connectivity(G) + + +def test_shell(): + # seeds = [2057382236, 3331169846, 1840105863, 476020778, 2247498425] + seeds = [20] + for seed in seeds: + constructor = [(12, 70, 0.8), (15, 40, 0.6)] + G = nx.random_shell_graph(constructor, seed=seed) + _check_edge_connectivity(G) + + +def test_karate(): + G = nx.karate_club_graph() + _check_edge_connectivity(G) + + +def test_tarjan_bridge(): + # graph from tarjan paper + # RE Tarjan - "A note on finding the bridges of a graph" + # Information Processing Letters, 1974 - Elsevier + # doi:10.1016/0020-0190(74)90003-9. + # define 2-connected components and bridges + ccs = [ + (1, 2, 4, 3, 1, 4), + (5, 6, 7, 5), + (8, 9, 10, 8), + (17, 18, 16, 15, 17), + (11, 12, 14, 13, 11, 14), + ] + bridges = [(4, 8), (3, 5), (3, 17)] + G = nx.Graph(it.chain(*(pairwise(path) for path in ccs + bridges))) + _check_edge_connectivity(G) + + +def test_bridge_cc(): + # define 2-connected components and bridges + cc2 = [(1, 2, 4, 3, 1, 4), (8, 9, 10, 8), (11, 12, 13, 11)] + bridges = [(4, 8), (3, 5), (20, 21), (22, 23, 24)] + G = nx.Graph(it.chain(*(pairwise(path) for path in cc2 + bridges))) + bridge_ccs = fset(bridge_components(G)) + target_ccs = fset( + [{1, 2, 3, 4}, {5}, {8, 9, 10}, {11, 12, 13}, {20}, {21}, {22}, {23}, {24}] + ) + assert bridge_ccs == target_ccs + _check_edge_connectivity(G) + + +def test_undirected_aux_graph(): + # Graph similar to the one in + # http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0136264 + a, b, c, d, e, f, g, h, i = "abcdefghi" + paths = [ + (a, d, b, f, c), + (a, e, b), + (a, e, b, c, g, b, a), + (c, b), + (f, g, f), + (h, i), + ] + G = nx.Graph(it.chain(*[pairwise(path) for path in paths])) + aux_graph = EdgeComponentAuxGraph.construct(G) + + components_1 = fset(aux_graph.k_edge_subgraphs(k=1)) + target_1 = fset([{a, b, c, d, e, f, g}, {h, i}]) + assert target_1 == components_1 + + # Check that the undirected case for k=1 agrees with CCs + alt_1 = fset(nx.k_edge_subgraphs(G, k=1)) + assert alt_1 == components_1 + + components_2 = fset(aux_graph.k_edge_subgraphs(k=2)) + target_2 = fset([{a, b, c, d, e, f, g}, {h}, {i}]) + assert target_2 == components_2 + + # Check that the undirected case for k=2 agrees with bridge components + alt_2 = fset(nx.k_edge_subgraphs(G, k=2)) + assert alt_2 == components_2 + + components_3 = fset(aux_graph.k_edge_subgraphs(k=3)) + target_3 = fset([{a}, {b, c, f, g}, {d}, {e}, {h}, {i}]) + assert target_3 == components_3 + + components_4 = fset(aux_graph.k_edge_subgraphs(k=4)) + target_4 = fset([{a}, {b}, {c}, {d}, {e}, {f}, {g}, {h}, {i}]) + assert target_4 == components_4 + + _check_edge_connectivity(G) + + +def test_local_subgraph_difference(): + paths = [ + (11, 12, 13, 14, 11, 13, 14, 12), # first 4-clique + (21, 22, 23, 24, 21, 23, 24, 22), # second 4-clique + # paths connecting each node of the 4 cliques + (11, 101, 21), + (12, 102, 22), + (13, 103, 23), + (14, 104, 24), + ] + G = nx.Graph(it.chain(*[pairwise(path) for path in paths])) + aux_graph = EdgeComponentAuxGraph.construct(G) + + # Each clique is returned separately in k-edge-subgraphs + subgraph_ccs = fset(aux_graph.k_edge_subgraphs(3)) + subgraph_target = fset( + [{101}, {102}, {103}, {104}, {21, 22, 23, 24}, {11, 12, 13, 14}] + ) + assert subgraph_ccs == subgraph_target + + # But in k-edge-ccs they are returned together + # because they are locally 3-edge-connected + local_ccs = fset(aux_graph.k_edge_components(3)) + local_target = fset([{101}, {102}, {103}, {104}, {11, 12, 13, 14, 21, 22, 23, 24}]) + assert local_ccs == local_target + + +def test_local_subgraph_difference_directed(): + dipaths = [(1, 2, 3, 4, 1), (1, 3, 1)] + G = nx.DiGraph(it.chain(*[pairwise(path) for path in dipaths])) + + assert fset(nx.k_edge_components(G, k=1)) == fset(nx.k_edge_subgraphs(G, k=1)) + + # Unlike undirected graphs, when k=2, for directed graphs there is a case + # where the k-edge-ccs are not the same as the k-edge-subgraphs. + # (in directed graphs ccs and subgraphs are the same when k=2) + assert fset(nx.k_edge_components(G, k=2)) != fset(nx.k_edge_subgraphs(G, k=2)) + + assert fset(nx.k_edge_components(G, k=3)) == fset(nx.k_edge_subgraphs(G, k=3)) + + _check_edge_connectivity(G) + + +def test_triangles(): + paths = [ + (11, 12, 13, 11), # first 3-clique + (21, 22, 23, 21), # second 3-clique + (11, 21), # connected by an edge + ] + G = nx.Graph(it.chain(*[pairwise(path) for path in paths])) + + # subgraph and ccs are the same in all cases here + assert fset(nx.k_edge_components(G, k=1)) == fset(nx.k_edge_subgraphs(G, k=1)) + + assert fset(nx.k_edge_components(G, k=2)) == fset(nx.k_edge_subgraphs(G, k=2)) + + assert fset(nx.k_edge_components(G, k=3)) == fset(nx.k_edge_subgraphs(G, k=3)) + + _check_edge_connectivity(G) + + +def test_four_clique(): + paths = [ + (11, 12, 13, 14, 11, 13, 14, 12), # first 4-clique + (21, 22, 23, 24, 21, 23, 24, 22), # second 4-clique + # paths connecting the 4 cliques such that they are + # 3-connected in G, but not in the subgraph. + # Case where the nodes bridging them do not have degree less than 3. + (100, 13), + (12, 100, 22), + (13, 200, 23), + (14, 300, 24), + ] + G = nx.Graph(it.chain(*[pairwise(path) for path in paths])) + + # The subgraphs and ccs are different for k=3 + local_ccs = fset(nx.k_edge_components(G, k=3)) + subgraphs = fset(nx.k_edge_subgraphs(G, k=3)) + assert local_ccs != subgraphs + + # The cliques ares in the same cc + clique1 = frozenset(paths[0]) + clique2 = frozenset(paths[1]) + assert clique1.union(clique2).union({100}) in local_ccs + + # but different subgraphs + assert clique1 in subgraphs + assert clique2 in subgraphs + + assert G.degree(100) == 3 + + _check_edge_connectivity(G) + + +def test_five_clique(): + # Make a graph that can be disconnected less than 4 edges, but no node has + # degree less than 4. + G = nx.disjoint_union(nx.complete_graph(5), nx.complete_graph(5)) + paths = [ + # add aux-connections + (1, 100, 6), + (2, 100, 7), + (3, 200, 8), + (4, 200, 100), + ] + G.add_edges_from(it.chain(*[pairwise(path) for path in paths])) + assert min(dict(nx.degree(G)).values()) == 4 + + # For k=3 they are the same + assert fset(nx.k_edge_components(G, k=3)) == fset(nx.k_edge_subgraphs(G, k=3)) + + # For k=4 they are the different + # the aux nodes are in the same CC as clique 1 but no the same subgraph + assert fset(nx.k_edge_components(G, k=4)) != fset(nx.k_edge_subgraphs(G, k=4)) + + # For k=5 they are not the same + assert fset(nx.k_edge_components(G, k=5)) != fset(nx.k_edge_subgraphs(G, k=5)) + + # For k=6 they are the same + assert fset(nx.k_edge_components(G, k=6)) == fset(nx.k_edge_subgraphs(G, k=6)) + _check_edge_connectivity(G) + + +# ---------------- +# Undirected tests +# ---------------- + + +def test_directed_aux_graph(): + # Graph similar to the one in + # http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0136264 + a, b, c, d, e, f, g, h, i = "abcdefghi" + dipaths = [ + (a, d, b, f, c), + (a, e, b), + (a, e, b, c, g, b, a), + (c, b), + (f, g, f), + (h, i), + ] + G = nx.DiGraph(it.chain(*[pairwise(path) for path in dipaths])) + aux_graph = EdgeComponentAuxGraph.construct(G) + + components_1 = fset(aux_graph.k_edge_subgraphs(k=1)) + target_1 = fset([{a, b, c, d, e, f, g}, {h}, {i}]) + assert target_1 == components_1 + + # Check that the directed case for k=1 agrees with SCCs + alt_1 = fset(nx.strongly_connected_components(G)) + assert alt_1 == components_1 + + components_2 = fset(aux_graph.k_edge_subgraphs(k=2)) + target_2 = fset([{i}, {e}, {d}, {b, c, f, g}, {h}, {a}]) + assert target_2 == components_2 + + components_3 = fset(aux_graph.k_edge_subgraphs(k=3)) + target_3 = fset([{a}, {b}, {c}, {d}, {e}, {f}, {g}, {h}, {i}]) + assert target_3 == components_3 + + +def test_random_gnp_directed(): + # seeds = [3894723670, 500186844, 267231174, 2181982262, 1116750056] + seeds = [21] + for seed in seeds: + G = nx.gnp_random_graph(20, 0.2, directed=True, seed=seed) + _check_edge_connectivity(G) + + +def test_configuration_directed(): + # seeds = [671221681, 2403749451, 124433910, 672335939, 1193127215] + seeds = [67] + for seed in seeds: + deg_seq = nx.random_powerlaw_tree_sequence(20, seed=seed, tries=5000) + G = nx.DiGraph(nx.configuration_model(deg_seq, seed=seed)) + G.remove_edges_from(nx.selfloop_edges(G)) + _check_edge_connectivity(G) + + +def test_shell_directed(): + # seeds = [3134027055, 4079264063, 1350769518, 1405643020, 530038094] + seeds = [31] + for seed in seeds: + constructor = [(12, 70, 0.8), (15, 40, 0.6)] + G = nx.random_shell_graph(constructor, seed=seed).to_directed() + _check_edge_connectivity(G) + + +def test_karate_directed(): + G = nx.karate_club_graph().to_directed() + _check_edge_connectivity(G) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_kcomponents.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_kcomponents.py new file mode 100644 index 0000000000000000000000000000000000000000..8839bbaca2e64057525e0edc027a932d15635965 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_kcomponents.py @@ -0,0 +1,323 @@ +# Test for Moody and White k-components algorithm +import pytest + +import networkx as nx +from networkx.algorithms import flow +from networkx.algorithms.connectivity.kcomponents import ( + _consolidate, + build_k_number_dict, +) + +FLOW_FUNCS = ( + flow.boykov_kolmogorov, + flow.dinitz, + flow.edmonds_karp, + flow.preflow_push, + flow.shortest_augmenting_path, +) + + +## +# A nice synthetic graph +## +def torrents_and_ferraro_graph(): + # Graph from https://arxiv.org/pdf/1503.04476v1 p.26 + G = nx.convert_node_labels_to_integers( + nx.grid_graph([5, 5]), label_attribute="labels" + ) + rlabels = nx.get_node_attributes(G, "labels") + labels = {v: k for k, v in rlabels.items()} + + for nodes in [(labels[(0, 4)], labels[(1, 4)]), (labels[(3, 4)], labels[(4, 4)])]: + new_node = G.order() + 1 + # Petersen graph is triconnected + P = nx.petersen_graph() + G = nx.disjoint_union(G, P) + # Add two edges between the grid and P + G.add_edge(new_node + 1, nodes[0]) + G.add_edge(new_node, nodes[1]) + # K5 is 4-connected + K = nx.complete_graph(5) + G = nx.disjoint_union(G, K) + # Add three edges between P and K5 + G.add_edge(new_node + 2, new_node + 11) + G.add_edge(new_node + 3, new_node + 12) + G.add_edge(new_node + 4, new_node + 13) + # Add another K5 sharing a node + G = nx.disjoint_union(G, K) + nbrs = G[new_node + 10] + G.remove_node(new_node + 10) + for nbr in nbrs: + G.add_edge(new_node + 17, nbr) + # This edge makes the graph biconnected; it's + # needed because K5s share only one node. + G.add_edge(new_node + 16, new_node + 8) + + for nodes in [(labels[(0, 0)], labels[(1, 0)]), (labels[(3, 0)], labels[(4, 0)])]: + new_node = G.order() + 1 + # Petersen graph is triconnected + P = nx.petersen_graph() + G = nx.disjoint_union(G, P) + # Add two edges between the grid and P + G.add_edge(new_node + 1, nodes[0]) + G.add_edge(new_node, nodes[1]) + # K5 is 4-connected + K = nx.complete_graph(5) + G = nx.disjoint_union(G, K) + # Add three edges between P and K5 + G.add_edge(new_node + 2, new_node + 11) + G.add_edge(new_node + 3, new_node + 12) + G.add_edge(new_node + 4, new_node + 13) + # Add another K5 sharing two nodes + G = nx.disjoint_union(G, K) + nbrs = G[new_node + 10] + G.remove_node(new_node + 10) + for nbr in nbrs: + G.add_edge(new_node + 17, nbr) + nbrs2 = G[new_node + 9] + G.remove_node(new_node + 9) + for nbr in nbrs2: + G.add_edge(new_node + 18, nbr) + return G + + +def test_directed(): + with pytest.raises(nx.NetworkXNotImplemented): + G = nx.gnp_random_graph(10, 0.2, directed=True, seed=42) + nx.k_components(G) + + +def test_empty_k_components(): + G = nx.empty_graph(5) + assert nx.k_components(G) == {} + + +@pytest.mark.parametrize("flow_func", FLOW_FUNCS) +def test_k_components_alternative_flow_func(flow_func): + G = nx.lollipop_graph(5, 5) + result = nx.k_components(G, flow_func=flow_func) + _check_connectivity(G, result) + + +# Helper function +def _check_connectivity(G, k_components): + for k, components in k_components.items(): + if k < 3: + continue + # check that k-components have node connectivity >= k. + for component in components: + C = G.subgraph(component) + K = nx.node_connectivity(C) + assert K >= k + + +@pytest.mark.slow +def test_torrents_and_ferraro_graph(): + G = torrents_and_ferraro_graph() + result = nx.k_components(G) + _check_connectivity(G, result) + + # In this example graph there are 8 3-components, 4 with 15 nodes + # and 4 with 5 nodes. + assert len(result[3]) == 8 + assert len([c for c in result[3] if len(c) == 15]) == 4 + assert len([c for c in result[3] if len(c) == 5]) == 4 + # There are also 8 4-components all with 5 nodes. + assert len(result[4]) == 8 + assert all(len(c) == 5 for c in result[4]) + + +@pytest.mark.parametrize( + ("n", "p"), [(10, 0.6), pytest.param(50, 0.2, marks=pytest.mark.slow)] +) +def test_random_gnp(n, p): + G = nx.gnp_random_graph(n, p, seed=42) + result = nx.k_components(G) + _check_connectivity(G, result) + + +@pytest.mark.parametrize( + "constructor", + [ + [(5, 8, 0.8), (8, 15, 0.6), (5, 24, 0.2)], + pytest.param([(20, 80, 0.8), (80, 180, 0.6)], marks=pytest.mark.slow), + ], +) +def test_shell(constructor): + G = nx.random_shell_graph(constructor, seed=42) + result = nx.k_components(G) + _check_connectivity(G, result) + + +def test_configuration(): + deg_seq = nx.random_powerlaw_tree_sequence(100, tries=5, seed=72) + G = nx.Graph(nx.configuration_model(deg_seq)) + G.remove_edges_from(nx.selfloop_edges(G)) + result = nx.k_components(G) + _check_connectivity(G, result) + + +def test_karate(): + G = nx.karate_club_graph() + result = nx.k_components(G) + _check_connectivity(G, result) + + +def test_karate_component_number(): + karate_k_num = { + 0: 4, + 1: 4, + 2: 4, + 3: 4, + 4: 3, + 5: 3, + 6: 3, + 7: 4, + 8: 4, + 9: 2, + 10: 3, + 11: 1, + 12: 2, + 13: 4, + 14: 2, + 15: 2, + 16: 2, + 17: 2, + 18: 2, + 19: 3, + 20: 2, + 21: 2, + 22: 2, + 23: 3, + 24: 3, + 25: 3, + 26: 2, + 27: 3, + 28: 3, + 29: 3, + 30: 4, + 31: 3, + 32: 4, + 33: 4, + } + G = nx.karate_club_graph() + k_components = nx.k_components(G) + k_num = build_k_number_dict(k_components) + assert karate_k_num == k_num + + +def test_davis_southern_women(): + G = nx.davis_southern_women_graph() + result = nx.k_components(G) + _check_connectivity(G, result) + + +def test_davis_southern_women_detail_3_and_4(): + solution = { + 3: [ + { + "Nora Fayette", + "E10", + "Myra Liddel", + "E12", + "E14", + "Frances Anderson", + "Evelyn Jefferson", + "Ruth DeSand", + "Helen Lloyd", + "Eleanor Nye", + "E9", + "E8", + "E5", + "E4", + "E7", + "E6", + "E1", + "Verne Sanderson", + "E3", + "E2", + "Theresa Anderson", + "Pearl Oglethorpe", + "Katherina Rogers", + "Brenda Rogers", + "E13", + "Charlotte McDowd", + "Sylvia Avondale", + "Laura Mandeville", + } + ], + 4: [ + { + "Nora Fayette", + "E10", + "Verne Sanderson", + "E12", + "Frances Anderson", + "Evelyn Jefferson", + "Ruth DeSand", + "Helen Lloyd", + "Eleanor Nye", + "E9", + "E8", + "E5", + "E4", + "E7", + "E6", + "Myra Liddel", + "E3", + "Theresa Anderson", + "Katherina Rogers", + "Brenda Rogers", + "Charlotte McDowd", + "Sylvia Avondale", + "Laura Mandeville", + } + ], + } + G = nx.davis_southern_women_graph() + result = nx.k_components(G) + for k, components in result.items(): + if k < 3: + continue + assert len(components) == len(solution[k]) + for component in components: + assert component in solution[k] + + +def test_set_consolidation_rosettacode(): + # Tests from http://rosettacode.org/wiki/Set_consolidation + def list_of_sets_equal(result, solution): + assert {frozenset(s) for s in result} == {frozenset(s) for s in solution} + + question = [{"A", "B"}, {"C", "D"}] + solution = [{"A", "B"}, {"C", "D"}] + list_of_sets_equal(_consolidate(question, 1), solution) + question = [{"A", "B"}, {"B", "C"}] + solution = [{"A", "B", "C"}] + list_of_sets_equal(_consolidate(question, 1), solution) + question = [{"A", "B"}, {"C", "D"}, {"D", "B"}] + solution = [{"A", "C", "B", "D"}] + list_of_sets_equal(_consolidate(question, 1), solution) + question = [{"H", "I", "K"}, {"A", "B"}, {"C", "D"}, {"D", "B"}, {"F", "G", "H"}] + solution = [{"A", "C", "B", "D"}, {"G", "F", "I", "H", "K"}] + list_of_sets_equal(_consolidate(question, 1), solution) + question = [ + {"A", "H"}, + {"H", "I", "K"}, + {"A", "B"}, + {"C", "D"}, + {"D", "B"}, + {"F", "G", "H"}, + ] + solution = [{"A", "C", "B", "D", "G", "F", "I", "H", "K"}] + list_of_sets_equal(_consolidate(question, 1), solution) + question = [ + {"H", "I", "K"}, + {"A", "B"}, + {"C", "D"}, + {"D", "B"}, + {"F", "G", "H"}, + {"A", "H"}, + ] + solution = [{"A", "C", "B", "D", "G", "F", "I", "H", "K"}] + list_of_sets_equal(_consolidate(question, 1), solution) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_kcutsets.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_kcutsets.py new file mode 100644 index 0000000000000000000000000000000000000000..644b378cd70179703292955b6e7414c695a6939e --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_kcutsets.py @@ -0,0 +1,280 @@ +# Jordi Torrents +# Test for k-cutsets +import itertools + +import pytest + +import networkx as nx +from networkx.algorithms import flow +from networkx.algorithms.connectivity.kcutsets import _is_separating_set + +MAX_CUTSETS_TO_TEST = 4 # originally 100. cut to decrease testing time + +flow_funcs = [ + flow.boykov_kolmogorov, + flow.dinitz, + flow.edmonds_karp, + flow.preflow_push, + flow.shortest_augmenting_path, +] + + +## +# Some nice synthetic graphs +## +def graph_example_1(): + G = nx.convert_node_labels_to_integers( + nx.grid_graph([5, 5]), label_attribute="labels" + ) + rlabels = nx.get_node_attributes(G, "labels") + labels = {v: k for k, v in rlabels.items()} + + for nodes in [ + (labels[(0, 0)], labels[(1, 0)]), + (labels[(0, 4)], labels[(1, 4)]), + (labels[(3, 0)], labels[(4, 0)]), + (labels[(3, 4)], labels[(4, 4)]), + ]: + new_node = G.order() + 1 + # Petersen graph is triconnected + P = nx.petersen_graph() + G = nx.disjoint_union(G, P) + # Add two edges between the grid and P + G.add_edge(new_node + 1, nodes[0]) + G.add_edge(new_node, nodes[1]) + # K5 is 4-connected + K = nx.complete_graph(5) + G = nx.disjoint_union(G, K) + # Add three edges between P and K5 + G.add_edge(new_node + 2, new_node + 11) + G.add_edge(new_node + 3, new_node + 12) + G.add_edge(new_node + 4, new_node + 13) + # Add another K5 sharing a node + G = nx.disjoint_union(G, K) + nbrs = G[new_node + 10] + G.remove_node(new_node + 10) + for nbr in nbrs: + G.add_edge(new_node + 17, nbr) + G.add_edge(new_node + 16, new_node + 5) + return G + + +def torrents_and_ferraro_graph(): + G = nx.convert_node_labels_to_integers( + nx.grid_graph([5, 5]), label_attribute="labels" + ) + rlabels = nx.get_node_attributes(G, "labels") + labels = {v: k for k, v in rlabels.items()} + + for nodes in [(labels[(0, 4)], labels[(1, 4)]), (labels[(3, 4)], labels[(4, 4)])]: + new_node = G.order() + 1 + # Petersen graph is triconnected + P = nx.petersen_graph() + G = nx.disjoint_union(G, P) + # Add two edges between the grid and P + G.add_edge(new_node + 1, nodes[0]) + G.add_edge(new_node, nodes[1]) + # K5 is 4-connected + K = nx.complete_graph(5) + G = nx.disjoint_union(G, K) + # Add three edges between P and K5 + G.add_edge(new_node + 2, new_node + 11) + G.add_edge(new_node + 3, new_node + 12) + G.add_edge(new_node + 4, new_node + 13) + # Add another K5 sharing a node + G = nx.disjoint_union(G, K) + nbrs = G[new_node + 10] + G.remove_node(new_node + 10) + for nbr in nbrs: + G.add_edge(new_node + 17, nbr) + # Commenting this makes the graph not biconnected !! + # This stupid mistake make one reviewer very angry :P + G.add_edge(new_node + 16, new_node + 8) + + for nodes in [(labels[(0, 0)], labels[(1, 0)]), (labels[(3, 0)], labels[(4, 0)])]: + new_node = G.order() + 1 + # Petersen graph is triconnected + P = nx.petersen_graph() + G = nx.disjoint_union(G, P) + # Add two edges between the grid and P + G.add_edge(new_node + 1, nodes[0]) + G.add_edge(new_node, nodes[1]) + # K5 is 4-connected + K = nx.complete_graph(5) + G = nx.disjoint_union(G, K) + # Add three edges between P and K5 + G.add_edge(new_node + 2, new_node + 11) + G.add_edge(new_node + 3, new_node + 12) + G.add_edge(new_node + 4, new_node + 13) + # Add another K5 sharing two nodes + G = nx.disjoint_union(G, K) + nbrs = G[new_node + 10] + G.remove_node(new_node + 10) + for nbr in nbrs: + G.add_edge(new_node + 17, nbr) + nbrs2 = G[new_node + 9] + G.remove_node(new_node + 9) + for nbr in nbrs2: + G.add_edge(new_node + 18, nbr) + return G + + +# Helper function +def _check_separating_sets(G): + for cc in nx.connected_components(G): + if len(cc) < 3: + continue + Gc = G.subgraph(cc) + node_conn = nx.node_connectivity(Gc) + all_cuts = nx.all_node_cuts(Gc) + # Only test a limited number of cut sets to reduce test time. + for cut in itertools.islice(all_cuts, MAX_CUTSETS_TO_TEST): + assert node_conn == len(cut) + assert not nx.is_connected(nx.restricted_view(G, cut, [])) + + +@pytest.mark.slow +def test_torrents_and_ferraro_graph(): + G = torrents_and_ferraro_graph() + _check_separating_sets(G) + + +def test_example_1(): + G = graph_example_1() + _check_separating_sets(G) + + +def test_random_gnp(): + G = nx.gnp_random_graph(100, 0.1, seed=42) + _check_separating_sets(G) + + +def test_shell(): + constructor = [(20, 80, 0.8), (80, 180, 0.6)] + G = nx.random_shell_graph(constructor, seed=42) + _check_separating_sets(G) + + +def test_configuration(): + deg_seq = nx.random_powerlaw_tree_sequence(100, tries=5, seed=72) + G = nx.Graph(nx.configuration_model(deg_seq)) + G.remove_edges_from(nx.selfloop_edges(G)) + _check_separating_sets(G) + + +def test_karate(): + G = nx.karate_club_graph() + _check_separating_sets(G) + + +def _generate_no_biconnected(max_attempts=50): + attempts = 0 + while True: + G = nx.fast_gnp_random_graph(100, 0.0575, seed=42) + if nx.is_connected(G) and not nx.is_biconnected(G): + attempts = 0 + yield G + else: + if attempts >= max_attempts: + msg = f"Tried {attempts} times: no suitable Graph." + raise Exception(msg) + else: + attempts += 1 + + +def test_articulation_points(): + Ggen = _generate_no_biconnected() + for i in range(1): # change 1 to 3 or more for more realizations. + G = next(Ggen) + articulation_points = [{a} for a in nx.articulation_points(G)] + for cut in nx.all_node_cuts(G): + assert cut in articulation_points + + +def test_grid_2d_graph(): + # All minimum node cuts of a 2d grid + # are the four pairs of nodes that are + # neighbors of the four corner nodes. + G = nx.grid_2d_graph(5, 5) + solution = [{(0, 1), (1, 0)}, {(3, 0), (4, 1)}, {(3, 4), (4, 3)}, {(0, 3), (1, 4)}] + for cut in nx.all_node_cuts(G): + assert cut in solution + + +def test_disconnected_graph(): + G = nx.fast_gnp_random_graph(100, 0.01, seed=42) + cuts = nx.all_node_cuts(G) + pytest.raises(nx.NetworkXError, next, cuts) + + +@pytest.mark.slow +@pytest.mark.parametrize("G", [nx.grid_2d_graph(4, 4), nx.cycle_graph(5)]) +@pytest.mark.parametrize("flow_func", flow_funcs) +def test_alternative_flow_functions(G, flow_func): + node_conn = nx.node_connectivity(G) + all_cuts = nx.all_node_cuts(G, flow_func=flow_func) + # Only test a limited number of cut sets to reduce test time. + for cut in itertools.islice(all_cuts, MAX_CUTSETS_TO_TEST): + assert node_conn == len(cut) + assert not nx.is_connected(nx.restricted_view(G, cut, [])) + + +def test_is_separating_set_complete_graph(): + G = nx.complete_graph(5) + assert _is_separating_set(G, {0, 1, 2, 3}) + + +def test_is_separating_set(): + for i in [5, 10, 15]: + G = nx.star_graph(i) + max_degree_node = max(G, key=G.degree) + assert _is_separating_set(G, {max_degree_node}) + + +def test_non_repeated_cuts(): + # The algorithm was repeating the cut {0, 1} for the giant biconnected + # component of the Karate club graph. + K = nx.karate_club_graph() + bcc = max(list(nx.biconnected_components(K)), key=len) + G = K.subgraph(bcc) + solution = [{32, 33}, {2, 33}, {0, 3}, {0, 1}, {29, 33}] + cuts = list(nx.all_node_cuts(G)) + assert len(solution) == len(cuts) + for cut in cuts: + assert cut in solution + + +def test_cycle_graph(): + G = nx.cycle_graph(5) + solution = [{0, 2}, {0, 3}, {1, 3}, {1, 4}, {2, 4}] + cuts = list(nx.all_node_cuts(G)) + assert len(solution) == len(cuts) + for cut in cuts: + assert cut in solution + + +def test_complete_graph(): + G = nx.complete_graph(5) + assert nx.node_connectivity(G) == 4 + assert list(nx.all_node_cuts(G)) == [] + + +def test_all_node_cuts_simple_case(): + G = nx.complete_graph(5) + G.remove_edges_from([(0, 1), (3, 4)]) + expected = [{0, 1, 2}, {2, 3, 4}] + actual = list(nx.all_node_cuts(G)) + assert len(actual) == len(expected) + for cut in actual: + assert cut in expected + + +def test_all_node_cuts_sap(): + """Non-slow test for `all_node_cuts` using the shortest augmenting path flow.""" + G = nx.cycle_graph(5) + node_conn = nx.node_connectivity(G) + all_cuts = nx.all_node_cuts(G, flow_func=flow.shortest_augmenting_path) + # Only test a limited number of cut sets to reduce test time. + for cut in itertools.islice(all_cuts, MAX_CUTSETS_TO_TEST): + assert node_conn == len(cut) + assert not nx.is_connected(nx.restricted_view(G, cut, [])) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_stoer_wagner.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_stoer_wagner.py new file mode 100644 index 0000000000000000000000000000000000000000..2b9e2bab41eb29067166b6faa331e022d4074ce3 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/tests/test_stoer_wagner.py @@ -0,0 +1,102 @@ +from itertools import chain + +import pytest + +import networkx as nx + + +def _check_partition(G, cut_value, partition, weight): + assert isinstance(partition, tuple) + assert len(partition) == 2 + assert isinstance(partition[0], list) + assert isinstance(partition[1], list) + assert len(partition[0]) > 0 + assert len(partition[1]) > 0 + assert sum(map(len, partition)) == len(G) + assert set(chain.from_iterable(partition)) == set(G) + partition = tuple(map(set, partition)) + w = 0 + for u, v, e in G.edges(data=True): + if (u in partition[0]) == (v in partition[1]): + w += e.get(weight, 1) + assert w == cut_value + + +def _test_stoer_wagner(G, answer, weight="weight"): + cut_value, partition = nx.stoer_wagner(G, weight, heap=nx.utils.PairingHeap) + assert cut_value == answer + _check_partition(G, cut_value, partition, weight) + cut_value, partition = nx.stoer_wagner(G, weight, heap=nx.utils.BinaryHeap) + assert cut_value == answer + _check_partition(G, cut_value, partition, weight) + + +def test_graph1(): + G = nx.Graph() + G.add_edge("x", "a", weight=3) + G.add_edge("x", "b", weight=1) + G.add_edge("a", "c", weight=3) + G.add_edge("b", "c", weight=5) + G.add_edge("b", "d", weight=4) + G.add_edge("d", "e", weight=2) + G.add_edge("c", "y", weight=2) + G.add_edge("e", "y", weight=3) + _test_stoer_wagner(G, 4) + + +def test_graph2(): + G = nx.Graph() + G.add_edge("x", "a") + G.add_edge("x", "b") + G.add_edge("a", "c") + G.add_edge("b", "c") + G.add_edge("b", "d") + G.add_edge("d", "e") + G.add_edge("c", "y") + G.add_edge("e", "y") + _test_stoer_wagner(G, 2) + + +def test_graph3(): + # Source: + # Stoer, M. and Wagner, F. (1997). "A simple min-cut algorithm". Journal of + # the ACM 44 (4), 585-591. + G = nx.Graph() + G.add_edge(1, 2, weight=2) + G.add_edge(1, 5, weight=3) + G.add_edge(2, 3, weight=3) + G.add_edge(2, 5, weight=2) + G.add_edge(2, 6, weight=2) + G.add_edge(3, 4, weight=4) + G.add_edge(3, 7, weight=2) + G.add_edge(4, 7, weight=2) + G.add_edge(4, 8, weight=2) + G.add_edge(5, 6, weight=3) + G.add_edge(6, 7, weight=1) + G.add_edge(7, 8, weight=3) + _test_stoer_wagner(G, 4) + + +def test_weight_name(): + G = nx.Graph() + G.add_edge(1, 2, weight=1, cost=8) + G.add_edge(1, 3, cost=2) + G.add_edge(2, 3, cost=4) + _test_stoer_wagner(G, 6, weight="cost") + + +def test_exceptions(): + G = nx.Graph() + pytest.raises(nx.NetworkXError, nx.stoer_wagner, G) + G.add_node(1) + pytest.raises(nx.NetworkXError, nx.stoer_wagner, G) + G.add_node(2) + pytest.raises(nx.NetworkXError, nx.stoer_wagner, G) + G.add_edge(1, 2, weight=-2) + pytest.raises(nx.NetworkXError, nx.stoer_wagner, G) + G = nx.DiGraph() + pytest.raises(nx.NetworkXNotImplemented, nx.stoer_wagner, G) + G = nx.MultiGraph() + pytest.raises(nx.NetworkXNotImplemented, nx.stoer_wagner, G) + G = nx.MultiDiGraph() + pytest.raises(nx.NetworkXNotImplemented, nx.stoer_wagner, G) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/utils.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/utils.py new file mode 100644 index 0000000000000000000000000000000000000000..7bf9994598981e528f30e0deb15413c35f3dadbe --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/connectivity/utils.py @@ -0,0 +1,88 @@ +""" +Utilities for connectivity package +""" + +import networkx as nx + +__all__ = ["build_auxiliary_node_connectivity", "build_auxiliary_edge_connectivity"] + + +@nx._dispatchable(returns_graph=True) +def build_auxiliary_node_connectivity(G): + r"""Creates a directed graph D from an undirected graph G to compute flow + based node connectivity. + + For an undirected graph G having `n` nodes and `m` edges we derive a + directed graph D with `2n` nodes and `2m+n` arcs by replacing each + original node `v` with two nodes `vA`, `vB` linked by an (internal) + arc in D. Then for each edge (`u`, `v`) in G we add two arcs (`uB`, `vA`) + and (`vB`, `uA`) in D. Finally we set the attribute capacity = 1 for each + arc in D [1]_. + + For a directed graph having `n` nodes and `m` arcs we derive a + directed graph D with `2n` nodes and `m+n` arcs by replacing each + original node `v` with two nodes `vA`, `vB` linked by an (internal) + arc (`vA`, `vB`) in D. Then for each arc (`u`, `v`) in G we add one + arc (`uB`, `vA`) in D. Finally we set the attribute capacity = 1 for + each arc in D. + + A dictionary with a mapping between nodes in the original graph and the + auxiliary digraph is stored as a graph attribute: D.graph['mapping']. + + References + ---------- + .. [1] Kammer, Frank and Hanjo Taubig. Graph Connectivity. in Brandes and + Erlebach, 'Network Analysis: Methodological Foundations', Lecture + Notes in Computer Science, Volume 3418, Springer-Verlag, 2005. + https://doi.org/10.1007/978-3-540-31955-9_7 + + """ + directed = G.is_directed() + + mapping = {} + H = nx.DiGraph() + + for i, node in enumerate(G): + mapping[node] = i + H.add_node(f"{i}A", id=node) + H.add_node(f"{i}B", id=node) + H.add_edge(f"{i}A", f"{i}B", capacity=1) + + edges = [] + for source, target in G.edges(): + edges.append((f"{mapping[source]}B", f"{mapping[target]}A")) + if not directed: + edges.append((f"{mapping[target]}B", f"{mapping[source]}A")) + H.add_edges_from(edges, capacity=1) + + # Store mapping as graph attribute + H.graph["mapping"] = mapping + return H + + +@nx._dispatchable(returns_graph=True) +def build_auxiliary_edge_connectivity(G): + """Auxiliary digraph for computing flow based edge connectivity + + If the input graph is undirected, we replace each edge (`u`,`v`) with + two reciprocal arcs (`u`, `v`) and (`v`, `u`) and then we set the attribute + 'capacity' for each arc to 1. If the input graph is directed we simply + add the 'capacity' attribute. Part of algorithm 1 in [1]_ . + + References + ---------- + .. [1] Abdol-Hossein Esfahanian. Connectivity Algorithms. (this is a + chapter, look for the reference of the book). + http://www.cse.msu.edu/~cse835/Papers/Graph_connectivity_revised.pdf + """ + if G.is_directed(): + H = nx.DiGraph() + H.add_nodes_from(G.nodes()) + H.add_edges_from(G.edges(), capacity=1) + return H + else: + H = nx.DiGraph() + H.add_nodes_from(G.nodes()) + for source, target in G.edges(): + H.add_edges_from([(source, target), (target, source)], capacity=1) + return H diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/flow/boykovkolmogorov.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/flow/boykovkolmogorov.py new file mode 100644 index 0000000000000000000000000000000000000000..30899c6c33e7ff508cfb13886a13ec96fef4ba44 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/flow/boykovkolmogorov.py @@ -0,0 +1,370 @@ +""" +Boykov-Kolmogorov algorithm for maximum flow problems. +""" + +from collections import deque +from operator import itemgetter + +import networkx as nx +from networkx.algorithms.flow.utils import build_residual_network + +__all__ = ["boykov_kolmogorov"] + + +@nx._dispatchable(edge_attrs={"capacity": float("inf")}, returns_graph=True) +def boykov_kolmogorov( + G, s, t, capacity="capacity", residual=None, value_only=False, cutoff=None +): + r"""Find a maximum single-commodity flow using Boykov-Kolmogorov algorithm. + + This function returns the residual network resulting after computing + the maximum flow. See below for details about the conventions + NetworkX uses for defining residual networks. + + This algorithm has worse case complexity $O(n^2 m |C|)$ for $n$ nodes, $m$ + edges, and $|C|$ the cost of the minimum cut [1]_. This implementation + uses the marking heuristic defined in [2]_ which improves its running + time in many practical problems. + + Parameters + ---------- + G : NetworkX graph + Edges of the graph are expected to have an attribute called + 'capacity'. If this attribute is not present, the edge is + considered to have infinite capacity. + + s : node + Source node for the flow. + + t : node + Sink node for the flow. + + capacity : string + Edges of the graph G are expected to have an attribute capacity + that indicates how much flow the edge can support. If this + attribute is not present, the edge is considered to have + infinite capacity. Default value: 'capacity'. + + residual : NetworkX graph + Residual network on which the algorithm is to be executed. If None, a + new residual network is created. Default value: None. + + value_only : bool + If True compute only the value of the maximum flow. This parameter + will be ignored by this algorithm because it is not applicable. + + cutoff : integer, float + If specified, the algorithm will terminate when the flow value reaches + or exceeds the cutoff. In this case, it may be unable to immediately + determine a minimum cut. Default value: None. + + Returns + ------- + R : NetworkX DiGraph + Residual network after computing the maximum flow. + + Raises + ------ + NetworkXError + The algorithm does not support MultiGraph and MultiDiGraph. If + the input graph is an instance of one of these two classes, a + NetworkXError is raised. + + NetworkXUnbounded + If the graph has a path of infinite capacity, the value of a + feasible flow on the graph is unbounded above and the function + raises a NetworkXUnbounded. + + See also + -------- + :meth:`maximum_flow` + :meth:`minimum_cut` + :meth:`preflow_push` + :meth:`shortest_augmenting_path` + + Notes + ----- + The residual network :samp:`R` from an input graph :samp:`G` has the + same nodes as :samp:`G`. :samp:`R` is a DiGraph that contains a pair + of edges :samp:`(u, v)` and :samp:`(v, u)` iff :samp:`(u, v)` is not a + self-loop, and at least one of :samp:`(u, v)` and :samp:`(v, u)` exists + in :samp:`G`. + + For each edge :samp:`(u, v)` in :samp:`R`, :samp:`R[u][v]['capacity']` + is equal to the capacity of :samp:`(u, v)` in :samp:`G` if it exists + in :samp:`G` or zero otherwise. If the capacity is infinite, + :samp:`R[u][v]['capacity']` will have a high arbitrary finite value + that does not affect the solution of the problem. This value is stored in + :samp:`R.graph['inf']`. For each edge :samp:`(u, v)` in :samp:`R`, + :samp:`R[u][v]['flow']` represents the flow function of :samp:`(u, v)` and + satisfies :samp:`R[u][v]['flow'] == -R[v][u]['flow']`. + + The flow value, defined as the total flow into :samp:`t`, the sink, is + stored in :samp:`R.graph['flow_value']`. If :samp:`cutoff` is not + specified, reachability to :samp:`t` using only edges :samp:`(u, v)` such + that :samp:`R[u][v]['flow'] < R[u][v]['capacity']` induces a minimum + :samp:`s`-:samp:`t` cut. + + Examples + -------- + >>> from networkx.algorithms.flow import boykov_kolmogorov + + The functions that implement flow algorithms and output a residual + network, such as this one, are not imported to the base NetworkX + namespace, so you have to explicitly import them from the flow package. + + >>> G = nx.DiGraph() + >>> G.add_edge("x", "a", capacity=3.0) + >>> G.add_edge("x", "b", capacity=1.0) + >>> G.add_edge("a", "c", capacity=3.0) + >>> G.add_edge("b", "c", capacity=5.0) + >>> G.add_edge("b", "d", capacity=4.0) + >>> G.add_edge("d", "e", capacity=2.0) + >>> G.add_edge("c", "y", capacity=2.0) + >>> G.add_edge("e", "y", capacity=3.0) + >>> R = boykov_kolmogorov(G, "x", "y") + >>> flow_value = nx.maximum_flow_value(G, "x", "y") + >>> flow_value + 3.0 + >>> flow_value == R.graph["flow_value"] + True + + A nice feature of the Boykov-Kolmogorov algorithm is that a partition + of the nodes that defines a minimum cut can be easily computed based + on the search trees used during the algorithm. These trees are stored + in the graph attribute `trees` of the residual network. + + >>> source_tree, target_tree = R.graph["trees"] + >>> partition = (set(source_tree), set(G) - set(source_tree)) + + Or equivalently: + + >>> partition = (set(G) - set(target_tree), set(target_tree)) + + References + ---------- + .. [1] Boykov, Y., & Kolmogorov, V. (2004). An experimental comparison + of min-cut/max-flow algorithms for energy minimization in vision. + Pattern Analysis and Machine Intelligence, IEEE Transactions on, + 26(9), 1124-1137. + https://doi.org/10.1109/TPAMI.2004.60 + + .. [2] Vladimir Kolmogorov. Graph-based Algorithms for Multi-camera + Reconstruction Problem. PhD thesis, Cornell University, CS Department, + 2003. pp. 109-114. + https://web.archive.org/web/20170809091249/https://pub.ist.ac.at/~vnk/papers/thesis.pdf + + """ + R = boykov_kolmogorov_impl(G, s, t, capacity, residual, cutoff) + R.graph["algorithm"] = "boykov_kolmogorov" + nx._clear_cache(R) + return R + + +def boykov_kolmogorov_impl(G, s, t, capacity, residual, cutoff): + if s not in G: + raise nx.NetworkXError(f"node {str(s)} not in graph") + if t not in G: + raise nx.NetworkXError(f"node {str(t)} not in graph") + if s == t: + raise nx.NetworkXError("source and sink are the same node") + + if residual is None: + R = build_residual_network(G, capacity) + else: + R = residual + + # Initialize/reset the residual network. + # This is way too slow + # nx.set_edge_attributes(R, 0, 'flow') + for u in R: + for e in R[u].values(): + e["flow"] = 0 + + # Use an arbitrary high value as infinite. It is computed + # when building the residual network. + INF = R.graph["inf"] + + if cutoff is None: + cutoff = INF + + R_succ = R.succ + R_pred = R.pred + + def grow(): + """Bidirectional breadth-first search for the growth stage. + + Returns a connecting edge, that is and edge that connects + a node from the source search tree with a node from the + target search tree. + The first node in the connecting edge is always from the + source tree and the last node from the target tree. + """ + while active: + u = active[0] + if u in source_tree: + this_tree = source_tree + other_tree = target_tree + neighbors = R_succ + else: + this_tree = target_tree + other_tree = source_tree + neighbors = R_pred + for v, attr in neighbors[u].items(): + if attr["capacity"] - attr["flow"] > 0: + if v not in this_tree: + if v in other_tree: + return (u, v) if this_tree is source_tree else (v, u) + this_tree[v] = u + dist[v] = dist[u] + 1 + timestamp[v] = timestamp[u] + active.append(v) + elif v in this_tree and _is_closer(u, v): + this_tree[v] = u + dist[v] = dist[u] + 1 + timestamp[v] = timestamp[u] + _ = active.popleft() + return None, None + + def augment(u, v): + """Augmentation stage. + + Reconstruct path and determine its residual capacity. + We start from a connecting edge, which links a node + from the source tree to a node from the target tree. + The connecting edge is the output of the grow function + and the input of this function. + """ + attr = R_succ[u][v] + flow = min(INF, attr["capacity"] - attr["flow"]) + path = [u] + # Trace a path from u to s in source_tree. + w = u + while w != s: + n = w + w = source_tree[n] + attr = R_pred[n][w] + flow = min(flow, attr["capacity"] - attr["flow"]) + path.append(w) + path.reverse() + # Trace a path from v to t in target_tree. + path.append(v) + w = v + while w != t: + n = w + w = target_tree[n] + attr = R_succ[n][w] + flow = min(flow, attr["capacity"] - attr["flow"]) + path.append(w) + # Augment flow along the path and check for saturated edges. + it = iter(path) + u = next(it) + these_orphans = [] + for v in it: + R_succ[u][v]["flow"] += flow + R_succ[v][u]["flow"] -= flow + if R_succ[u][v]["flow"] == R_succ[u][v]["capacity"]: + if v in source_tree: + source_tree[v] = None + these_orphans.append(v) + if u in target_tree: + target_tree[u] = None + these_orphans.append(u) + u = v + orphans.extend(sorted(these_orphans, key=dist.get)) + return flow + + def adopt(): + """Adoption stage. + + Reconstruct search trees by adopting or discarding orphans. + During augmentation stage some edges got saturated and thus + the source and target search trees broke down to forests, with + orphans as roots of some of its trees. We have to reconstruct + the search trees rooted to source and target before we can grow + them again. + """ + while orphans: + u = orphans.popleft() + if u in source_tree: + tree = source_tree + neighbors = R_pred + else: + tree = target_tree + neighbors = R_succ + nbrs = ((n, attr, dist[n]) for n, attr in neighbors[u].items() if n in tree) + for v, attr, d in sorted(nbrs, key=itemgetter(2)): + if attr["capacity"] - attr["flow"] > 0: + if _has_valid_root(v, tree): + tree[u] = v + dist[u] = dist[v] + 1 + timestamp[u] = time + break + else: + nbrs = ( + (n, attr, dist[n]) for n, attr in neighbors[u].items() if n in tree + ) + for v, attr, d in sorted(nbrs, key=itemgetter(2)): + if attr["capacity"] - attr["flow"] > 0: + if v not in active: + active.append(v) + if tree[v] == u: + tree[v] = None + orphans.appendleft(v) + if u in active: + active.remove(u) + del tree[u] + + def _has_valid_root(n, tree): + path = [] + v = n + while v is not None: + path.append(v) + if v in (s, t): + base_dist = 0 + break + elif timestamp[v] == time: + base_dist = dist[v] + break + v = tree[v] + else: + return False + length = len(path) + for i, u in enumerate(path, 1): + dist[u] = base_dist + length - i + timestamp[u] = time + return True + + def _is_closer(u, v): + return timestamp[v] <= timestamp[u] and dist[v] > dist[u] + 1 + + source_tree = {s: None} + target_tree = {t: None} + active = deque([s, t]) + orphans = deque() + flow_value = 0 + # data structures for the marking heuristic + time = 1 + timestamp = {s: time, t: time} + dist = {s: 0, t: 0} + while flow_value < cutoff: + # Growth stage + u, v = grow() + if u is None: + break + time += 1 + # Augmentation stage + flow_value += augment(u, v) + # Adoption stage + adopt() + + if flow_value * 2 > INF: + raise nx.NetworkXUnbounded("Infinite capacity path, flow unbounded above.") + + # Add source and target tree in a graph attribute. + # A partition that defines a minimum cut can be directly + # computed from the search trees as explained in the docstrings. + R.graph["trees"] = (source_tree, target_tree) + # Add the standard flow_value graph attribute. + R.graph["flow_value"] = flow_value + return R diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/flow/dinitz_alg.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/flow/dinitz_alg.py new file mode 100644 index 0000000000000000000000000000000000000000..f369642af2968094184741132a843f5dde81e428 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/flow/dinitz_alg.py @@ -0,0 +1,238 @@ +""" +Dinitz' algorithm for maximum flow problems. +""" + +from collections import deque + +import networkx as nx +from networkx.algorithms.flow.utils import build_residual_network +from networkx.utils import pairwise + +__all__ = ["dinitz"] + + +@nx._dispatchable(edge_attrs={"capacity": float("inf")}, returns_graph=True) +def dinitz(G, s, t, capacity="capacity", residual=None, value_only=False, cutoff=None): + """Find a maximum single-commodity flow using Dinitz' algorithm. + + This function returns the residual network resulting after computing + the maximum flow. See below for details about the conventions + NetworkX uses for defining residual networks. + + This algorithm has a running time of $O(n^2 m)$ for $n$ nodes and $m$ + edges [1]_. + + + Parameters + ---------- + G : NetworkX graph + Edges of the graph are expected to have an attribute called + 'capacity'. If this attribute is not present, the edge is + considered to have infinite capacity. + + s : node + Source node for the flow. + + t : node + Sink node for the flow. + + capacity : string + Edges of the graph G are expected to have an attribute capacity + that indicates how much flow the edge can support. If this + attribute is not present, the edge is considered to have + infinite capacity. Default value: 'capacity'. + + residual : NetworkX graph + Residual network on which the algorithm is to be executed. If None, a + new residual network is created. Default value: None. + + value_only : bool + If True compute only the value of the maximum flow. This parameter + will be ignored by this algorithm because it is not applicable. + + cutoff : integer, float + If specified, the algorithm will terminate when the flow value reaches + or exceeds the cutoff. In this case, it may be unable to immediately + determine a minimum cut. Default value: None. + + Returns + ------- + R : NetworkX DiGraph + Residual network after computing the maximum flow. + + Raises + ------ + NetworkXError + The algorithm does not support MultiGraph and MultiDiGraph. If + the input graph is an instance of one of these two classes, a + NetworkXError is raised. + + NetworkXUnbounded + If the graph has a path of infinite capacity, the value of a + feasible flow on the graph is unbounded above and the function + raises a NetworkXUnbounded. + + See also + -------- + :meth:`maximum_flow` + :meth:`minimum_cut` + :meth:`preflow_push` + :meth:`shortest_augmenting_path` + + Notes + ----- + The residual network :samp:`R` from an input graph :samp:`G` has the + same nodes as :samp:`G`. :samp:`R` is a DiGraph that contains a pair + of edges :samp:`(u, v)` and :samp:`(v, u)` iff :samp:`(u, v)` is not a + self-loop, and at least one of :samp:`(u, v)` and :samp:`(v, u)` exists + in :samp:`G`. + + For each edge :samp:`(u, v)` in :samp:`R`, :samp:`R[u][v]['capacity']` + is equal to the capacity of :samp:`(u, v)` in :samp:`G` if it exists + in :samp:`G` or zero otherwise. If the capacity is infinite, + :samp:`R[u][v]['capacity']` will have a high arbitrary finite value + that does not affect the solution of the problem. This value is stored in + :samp:`R.graph['inf']`. For each edge :samp:`(u, v)` in :samp:`R`, + :samp:`R[u][v]['flow']` represents the flow function of :samp:`(u, v)` and + satisfies :samp:`R[u][v]['flow'] == -R[v][u]['flow']`. + + The flow value, defined as the total flow into :samp:`t`, the sink, is + stored in :samp:`R.graph['flow_value']`. If :samp:`cutoff` is not + specified, reachability to :samp:`t` using only edges :samp:`(u, v)` such + that :samp:`R[u][v]['flow'] < R[u][v]['capacity']` induces a minimum + :samp:`s`-:samp:`t` cut. + + Examples + -------- + >>> from networkx.algorithms.flow import dinitz + + The functions that implement flow algorithms and output a residual + network, such as this one, are not imported to the base NetworkX + namespace, so you have to explicitly import them from the flow package. + + >>> G = nx.DiGraph() + >>> G.add_edge("x", "a", capacity=3.0) + >>> G.add_edge("x", "b", capacity=1.0) + >>> G.add_edge("a", "c", capacity=3.0) + >>> G.add_edge("b", "c", capacity=5.0) + >>> G.add_edge("b", "d", capacity=4.0) + >>> G.add_edge("d", "e", capacity=2.0) + >>> G.add_edge("c", "y", capacity=2.0) + >>> G.add_edge("e", "y", capacity=3.0) + >>> R = dinitz(G, "x", "y") + >>> flow_value = nx.maximum_flow_value(G, "x", "y") + >>> flow_value + 3.0 + >>> flow_value == R.graph["flow_value"] + True + + References + ---------- + .. [1] Dinitz' Algorithm: The Original Version and Even's Version. + 2006. Yefim Dinitz. In Theoretical Computer Science. Lecture + Notes in Computer Science. Volume 3895. pp 218-240. + https://doi.org/10.1007/11685654_10 + + """ + R = dinitz_impl(G, s, t, capacity, residual, cutoff) + R.graph["algorithm"] = "dinitz" + nx._clear_cache(R) + return R + + +def dinitz_impl(G, s, t, capacity, residual, cutoff): + if s not in G: + raise nx.NetworkXError(f"node {str(s)} not in graph") + if t not in G: + raise nx.NetworkXError(f"node {str(t)} not in graph") + if s == t: + raise nx.NetworkXError("source and sink are the same node") + + if residual is None: + R = build_residual_network(G, capacity) + else: + R = residual + + # Initialize/reset the residual network. + for u in R: + for e in R[u].values(): + e["flow"] = 0 + + # Use an arbitrary high value as infinite. It is computed + # when building the residual network. + INF = R.graph["inf"] + + if cutoff is None: + cutoff = INF + + R_succ = R.succ + R_pred = R.pred + + def breath_first_search(): + parents = {} + vertex_dist = {s: 0} + queue = deque([(s, 0)]) + # Record all the potential edges of shortest augmenting paths + while queue: + if t in parents: + break + u, dist = queue.popleft() + for v, attr in R_succ[u].items(): + if attr["capacity"] - attr["flow"] > 0: + if v in parents: + if vertex_dist[v] == dist + 1: + parents[v].append(u) + else: + parents[v] = deque([u]) + vertex_dist[v] = dist + 1 + queue.append((v, dist + 1)) + return parents + + def depth_first_search(parents): + # DFS to find all the shortest augmenting paths + """Build a path using DFS starting from the sink""" + total_flow = 0 + u = t + # path also functions as a stack + path = [u] + # The loop ends with no augmenting path left in the layered graph + while True: + if len(parents[u]) > 0: + v = parents[u][0] + path.append(v) + else: + path.pop() + if len(path) == 0: + break + v = path[-1] + parents[v].popleft() + # Augment the flow along the path found + if v == s: + flow = INF + for u, v in pairwise(path): + flow = min(flow, R_pred[u][v]["capacity"] - R_pred[u][v]["flow"]) + for u, v in pairwise(reversed(path)): + R_pred[v][u]["flow"] += flow + R_pred[u][v]["flow"] -= flow + # Find the proper node to continue the search + if R_pred[v][u]["capacity"] - R_pred[v][u]["flow"] == 0: + parents[v].popleft() + while path[-1] != v: + path.pop() + total_flow += flow + v = path[-1] + u = v + return total_flow + + flow_value = 0 + while flow_value < cutoff: + parents = breath_first_search() + if t not in parents: + break + this_flow = depth_first_search(parents) + if this_flow * 2 > INF: + raise nx.NetworkXUnbounded("Infinite capacity path, flow unbounded above.") + flow_value += this_flow + + R.graph["flow_value"] = flow_value + return R diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/flow/edmondskarp.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/flow/edmondskarp.py new file mode 100644 index 0000000000000000000000000000000000000000..50063268355ccc2e2ecbdf7f1a6704e7404475ec --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/flow/edmondskarp.py @@ -0,0 +1,241 @@ +""" +Edmonds-Karp algorithm for maximum flow problems. +""" + +import networkx as nx +from networkx.algorithms.flow.utils import build_residual_network + +__all__ = ["edmonds_karp"] + + +def edmonds_karp_core(R, s, t, cutoff): + """Implementation of the Edmonds-Karp algorithm.""" + R_nodes = R.nodes + R_pred = R.pred + R_succ = R.succ + + inf = R.graph["inf"] + + def augment(path): + """Augment flow along a path from s to t.""" + # Determine the path residual capacity. + flow = inf + it = iter(path) + u = next(it) + for v in it: + attr = R_succ[u][v] + flow = min(flow, attr["capacity"] - attr["flow"]) + u = v + if flow * 2 > inf: + raise nx.NetworkXUnbounded("Infinite capacity path, flow unbounded above.") + # Augment flow along the path. + it = iter(path) + u = next(it) + for v in it: + R_succ[u][v]["flow"] += flow + R_succ[v][u]["flow"] -= flow + u = v + return flow + + def bidirectional_bfs(): + """Bidirectional breadth-first search for an augmenting path.""" + pred = {s: None} + q_s = [s] + succ = {t: None} + q_t = [t] + while True: + q = [] + if len(q_s) <= len(q_t): + for u in q_s: + for v, attr in R_succ[u].items(): + if v not in pred and attr["flow"] < attr["capacity"]: + pred[v] = u + if v in succ: + return v, pred, succ + q.append(v) + if not q: + return None, None, None + q_s = q + else: + for u in q_t: + for v, attr in R_pred[u].items(): + if v not in succ and attr["flow"] < attr["capacity"]: + succ[v] = u + if v in pred: + return v, pred, succ + q.append(v) + if not q: + return None, None, None + q_t = q + + # Look for shortest augmenting paths using breadth-first search. + flow_value = 0 + while flow_value < cutoff: + v, pred, succ = bidirectional_bfs() + if pred is None: + break + path = [v] + # Trace a path from s to v. + u = v + while u != s: + u = pred[u] + path.append(u) + path.reverse() + # Trace a path from v to t. + u = v + while u != t: + u = succ[u] + path.append(u) + flow_value += augment(path) + + return flow_value + + +def edmonds_karp_impl(G, s, t, capacity, residual, cutoff): + """Implementation of the Edmonds-Karp algorithm.""" + if s not in G: + raise nx.NetworkXError(f"node {str(s)} not in graph") + if t not in G: + raise nx.NetworkXError(f"node {str(t)} not in graph") + if s == t: + raise nx.NetworkXError("source and sink are the same node") + + if residual is None: + R = build_residual_network(G, capacity) + else: + R = residual + + # Initialize/reset the residual network. + for u in R: + for e in R[u].values(): + e["flow"] = 0 + + if cutoff is None: + cutoff = float("inf") + R.graph["flow_value"] = edmonds_karp_core(R, s, t, cutoff) + + return R + + +@nx._dispatchable(edge_attrs={"capacity": float("inf")}, returns_graph=True) +def edmonds_karp( + G, s, t, capacity="capacity", residual=None, value_only=False, cutoff=None +): + """Find a maximum single-commodity flow using the Edmonds-Karp algorithm. + + This function returns the residual network resulting after computing + the maximum flow. See below for details about the conventions + NetworkX uses for defining residual networks. + + This algorithm has a running time of $O(n m^2)$ for $n$ nodes and $m$ + edges. + + + Parameters + ---------- + G : NetworkX graph + Edges of the graph are expected to have an attribute called + 'capacity'. If this attribute is not present, the edge is + considered to have infinite capacity. + + s : node + Source node for the flow. + + t : node + Sink node for the flow. + + capacity : string + Edges of the graph G are expected to have an attribute capacity + that indicates how much flow the edge can support. If this + attribute is not present, the edge is considered to have + infinite capacity. Default value: 'capacity'. + + residual : NetworkX graph + Residual network on which the algorithm is to be executed. If None, a + new residual network is created. Default value: None. + + value_only : bool + If True compute only the value of the maximum flow. This parameter + will be ignored by this algorithm because it is not applicable. + + cutoff : integer, float + If specified, the algorithm will terminate when the flow value reaches + or exceeds the cutoff. In this case, it may be unable to immediately + determine a minimum cut. Default value: None. + + Returns + ------- + R : NetworkX DiGraph + Residual network after computing the maximum flow. + + Raises + ------ + NetworkXError + The algorithm does not support MultiGraph and MultiDiGraph. If + the input graph is an instance of one of these two classes, a + NetworkXError is raised. + + NetworkXUnbounded + If the graph has a path of infinite capacity, the value of a + feasible flow on the graph is unbounded above and the function + raises a NetworkXUnbounded. + + See also + -------- + :meth:`maximum_flow` + :meth:`minimum_cut` + :meth:`preflow_push` + :meth:`shortest_augmenting_path` + + Notes + ----- + The residual network :samp:`R` from an input graph :samp:`G` has the + same nodes as :samp:`G`. :samp:`R` is a DiGraph that contains a pair + of edges :samp:`(u, v)` and :samp:`(v, u)` iff :samp:`(u, v)` is not a + self-loop, and at least one of :samp:`(u, v)` and :samp:`(v, u)` exists + in :samp:`G`. + + For each edge :samp:`(u, v)` in :samp:`R`, :samp:`R[u][v]['capacity']` + is equal to the capacity of :samp:`(u, v)` in :samp:`G` if it exists + in :samp:`G` or zero otherwise. If the capacity is infinite, + :samp:`R[u][v]['capacity']` will have a high arbitrary finite value + that does not affect the solution of the problem. This value is stored in + :samp:`R.graph['inf']`. For each edge :samp:`(u, v)` in :samp:`R`, + :samp:`R[u][v]['flow']` represents the flow function of :samp:`(u, v)` and + satisfies :samp:`R[u][v]['flow'] == -R[v][u]['flow']`. + + The flow value, defined as the total flow into :samp:`t`, the sink, is + stored in :samp:`R.graph['flow_value']`. If :samp:`cutoff` is not + specified, reachability to :samp:`t` using only edges :samp:`(u, v)` such + that :samp:`R[u][v]['flow'] < R[u][v]['capacity']` induces a minimum + :samp:`s`-:samp:`t` cut. + + Examples + -------- + >>> from networkx.algorithms.flow import edmonds_karp + + The functions that implement flow algorithms and output a residual + network, such as this one, are not imported to the base NetworkX + namespace, so you have to explicitly import them from the flow package. + + >>> G = nx.DiGraph() + >>> G.add_edge("x", "a", capacity=3.0) + >>> G.add_edge("x", "b", capacity=1.0) + >>> G.add_edge("a", "c", capacity=3.0) + >>> G.add_edge("b", "c", capacity=5.0) + >>> G.add_edge("b", "d", capacity=4.0) + >>> G.add_edge("d", "e", capacity=2.0) + >>> G.add_edge("c", "y", capacity=2.0) + >>> G.add_edge("e", "y", capacity=3.0) + >>> R = edmonds_karp(G, "x", "y") + >>> flow_value = nx.maximum_flow_value(G, "x", "y") + >>> flow_value + 3.0 + >>> flow_value == R.graph["flow_value"] + True + + """ + R = edmonds_karp_impl(G, s, t, capacity, residual, cutoff) + R.graph["algorithm"] = "edmonds_karp" + nx._clear_cache(R) + return R diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/flow/maxflow.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/flow/maxflow.py new file mode 100644 index 0000000000000000000000000000000000000000..93497a473b12bed8c80ffad992552bfeca2d4614 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/flow/maxflow.py @@ -0,0 +1,611 @@ +""" +Maximum flow (and minimum cut) algorithms on capacitated graphs. +""" + +import networkx as nx + +from .boykovkolmogorov import boykov_kolmogorov +from .dinitz_alg import dinitz +from .edmondskarp import edmonds_karp +from .preflowpush import preflow_push +from .shortestaugmentingpath import shortest_augmenting_path +from .utils import build_flow_dict + +# Define the default flow function for computing maximum flow. +default_flow_func = preflow_push + +__all__ = ["maximum_flow", "maximum_flow_value", "minimum_cut", "minimum_cut_value"] + + +@nx._dispatchable(graphs="flowG", edge_attrs={"capacity": float("inf")}) +def maximum_flow(flowG, _s, _t, capacity="capacity", flow_func=None, **kwargs): + """Find a maximum single-commodity flow. + + Parameters + ---------- + flowG : NetworkX graph + Edges of the graph are expected to have an attribute called + 'capacity'. If this attribute is not present, the edge is + considered to have infinite capacity. + + _s : node + Source node for the flow. + + _t : node + Sink node for the flow. + + capacity : string + Edges of the graph G are expected to have an attribute capacity + that indicates how much flow the edge can support. If this + attribute is not present, the edge is considered to have + infinite capacity. Default value: 'capacity'. + + flow_func : function + A function for computing the maximum flow among a pair of nodes + in a capacitated graph. The function has to accept at least three + parameters: a Graph or Digraph, a source node, and a target node. + And return a residual network that follows NetworkX conventions + (see Notes). If flow_func is None, the default maximum + flow function (:meth:`preflow_push`) is used. See below for + alternative algorithms. The choice of the default function may change + from version to version and should not be relied on. Default value: + None. + + kwargs : Any other keyword parameter is passed to the function that + computes the maximum flow. + + Returns + ------- + flow_value : integer, float + Value of the maximum flow, i.e., net outflow from the source. + + flow_dict : dict + A dictionary containing the value of the flow that went through + each edge. + + Raises + ------ + NetworkXError + The algorithm does not support MultiGraph and MultiDiGraph. If + the input graph is an instance of one of these two classes, a + NetworkXError is raised. + + NetworkXUnbounded + If the graph has a path of infinite capacity, the value of a + feasible flow on the graph is unbounded above and the function + raises a NetworkXUnbounded. + + See also + -------- + :meth:`maximum_flow_value` + :meth:`minimum_cut` + :meth:`minimum_cut_value` + :meth:`edmonds_karp` + :meth:`preflow_push` + :meth:`shortest_augmenting_path` + + Notes + ----- + The function used in the flow_func parameter has to return a residual + network that follows NetworkX conventions: + + The residual network :samp:`R` from an input graph :samp:`G` has the + same nodes as :samp:`G`. :samp:`R` is a DiGraph that contains a pair + of edges :samp:`(u, v)` and :samp:`(v, u)` iff :samp:`(u, v)` is not a + self-loop, and at least one of :samp:`(u, v)` and :samp:`(v, u)` exists + in :samp:`G`. + + For each edge :samp:`(u, v)` in :samp:`R`, :samp:`R[u][v]['capacity']` + is equal to the capacity of :samp:`(u, v)` in :samp:`G` if it exists + in :samp:`G` or zero otherwise. If the capacity is infinite, + :samp:`R[u][v]['capacity']` will have a high arbitrary finite value + that does not affect the solution of the problem. This value is stored in + :samp:`R.graph['inf']`. For each edge :samp:`(u, v)` in :samp:`R`, + :samp:`R[u][v]['flow']` represents the flow function of :samp:`(u, v)` and + satisfies :samp:`R[u][v]['flow'] == -R[v][u]['flow']`. + + The flow value, defined as the total flow into :samp:`t`, the sink, is + stored in :samp:`R.graph['flow_value']`. Reachability to :samp:`t` using + only edges :samp:`(u, v)` such that + :samp:`R[u][v]['flow'] < R[u][v]['capacity']` induces a minimum + :samp:`s`-:samp:`t` cut. + + Specific algorithms may store extra data in :samp:`R`. + + The function should supports an optional boolean parameter value_only. When + True, it can optionally terminate the algorithm as soon as the maximum flow + value and the minimum cut can be determined. + + Note that the resulting maximum flow may contain flow cycles, + back-flow to the source, or some flow exiting the sink. + These are possible if there are cycles in the network. + + Examples + -------- + >>> G = nx.DiGraph() + >>> G.add_edge("x", "a", capacity=3.0) + >>> G.add_edge("x", "b", capacity=1.0) + >>> G.add_edge("a", "c", capacity=3.0) + >>> G.add_edge("b", "c", capacity=5.0) + >>> G.add_edge("b", "d", capacity=4.0) + >>> G.add_edge("d", "e", capacity=2.0) + >>> G.add_edge("c", "y", capacity=2.0) + >>> G.add_edge("e", "y", capacity=3.0) + + maximum_flow returns both the value of the maximum flow and a + dictionary with all flows. + + >>> flow_value, flow_dict = nx.maximum_flow(G, "x", "y") + >>> flow_value + 3.0 + >>> print(flow_dict["x"]["b"]) + 1.0 + + You can also use alternative algorithms for computing the + maximum flow by using the flow_func parameter. + + >>> from networkx.algorithms.flow import shortest_augmenting_path + >>> flow_value == nx.maximum_flow(G, "x", "y", flow_func=shortest_augmenting_path)[ + ... 0 + ... ] + True + + """ + if flow_func is None: + if kwargs: + raise nx.NetworkXError( + "You have to explicitly set a flow_func if" + " you need to pass parameters via kwargs." + ) + flow_func = default_flow_func + + if not callable(flow_func): + raise nx.NetworkXError("flow_func has to be callable.") + + R = flow_func(flowG, _s, _t, capacity=capacity, value_only=False, **kwargs) + flow_dict = build_flow_dict(flowG, R) + + return (R.graph["flow_value"], flow_dict) + + +@nx._dispatchable(graphs="flowG", edge_attrs={"capacity": float("inf")}) +def maximum_flow_value(flowG, _s, _t, capacity="capacity", flow_func=None, **kwargs): + """Find the value of maximum single-commodity flow. + + Parameters + ---------- + flowG : NetworkX graph + Edges of the graph are expected to have an attribute called + 'capacity'. If this attribute is not present, the edge is + considered to have infinite capacity. + + _s : node + Source node for the flow. + + _t : node + Sink node for the flow. + + capacity : string + Edges of the graph G are expected to have an attribute capacity + that indicates how much flow the edge can support. If this + attribute is not present, the edge is considered to have + infinite capacity. Default value: 'capacity'. + + flow_func : function + A function for computing the maximum flow among a pair of nodes + in a capacitated graph. The function has to accept at least three + parameters: a Graph or Digraph, a source node, and a target node. + And return a residual network that follows NetworkX conventions + (see Notes). If flow_func is None, the default maximum + flow function (:meth:`preflow_push`) is used. See below for + alternative algorithms. The choice of the default function may change + from version to version and should not be relied on. Default value: + None. + + kwargs : Any other keyword parameter is passed to the function that + computes the maximum flow. + + Returns + ------- + flow_value : integer, float + Value of the maximum flow, i.e., net outflow from the source. + + Raises + ------ + NetworkXError + The algorithm does not support MultiGraph and MultiDiGraph. If + the input graph is an instance of one of these two classes, a + NetworkXError is raised. + + NetworkXUnbounded + If the graph has a path of infinite capacity, the value of a + feasible flow on the graph is unbounded above and the function + raises a NetworkXUnbounded. + + See also + -------- + :meth:`maximum_flow` + :meth:`minimum_cut` + :meth:`minimum_cut_value` + :meth:`edmonds_karp` + :meth:`preflow_push` + :meth:`shortest_augmenting_path` + + Notes + ----- + The function used in the flow_func parameter has to return a residual + network that follows NetworkX conventions: + + The residual network :samp:`R` from an input graph :samp:`G` has the + same nodes as :samp:`G`. :samp:`R` is a DiGraph that contains a pair + of edges :samp:`(u, v)` and :samp:`(v, u)` iff :samp:`(u, v)` is not a + self-loop, and at least one of :samp:`(u, v)` and :samp:`(v, u)` exists + in :samp:`G`. + + For each edge :samp:`(u, v)` in :samp:`R`, :samp:`R[u][v]['capacity']` + is equal to the capacity of :samp:`(u, v)` in :samp:`G` if it exists + in :samp:`G` or zero otherwise. If the capacity is infinite, + :samp:`R[u][v]['capacity']` will have a high arbitrary finite value + that does not affect the solution of the problem. This value is stored in + :samp:`R.graph['inf']`. For each edge :samp:`(u, v)` in :samp:`R`, + :samp:`R[u][v]['flow']` represents the flow function of :samp:`(u, v)` and + satisfies :samp:`R[u][v]['flow'] == -R[v][u]['flow']`. + + The flow value, defined as the total flow into :samp:`t`, the sink, is + stored in :samp:`R.graph['flow_value']`. Reachability to :samp:`t` using + only edges :samp:`(u, v)` such that + :samp:`R[u][v]['flow'] < R[u][v]['capacity']` induces a minimum + :samp:`s`-:samp:`t` cut. + + Specific algorithms may store extra data in :samp:`R`. + + The function should supports an optional boolean parameter value_only. When + True, it can optionally terminate the algorithm as soon as the maximum flow + value and the minimum cut can be determined. + + Examples + -------- + >>> G = nx.DiGraph() + >>> G.add_edge("x", "a", capacity=3.0) + >>> G.add_edge("x", "b", capacity=1.0) + >>> G.add_edge("a", "c", capacity=3.0) + >>> G.add_edge("b", "c", capacity=5.0) + >>> G.add_edge("b", "d", capacity=4.0) + >>> G.add_edge("d", "e", capacity=2.0) + >>> G.add_edge("c", "y", capacity=2.0) + >>> G.add_edge("e", "y", capacity=3.0) + + maximum_flow_value computes only the value of the + maximum flow: + + >>> flow_value = nx.maximum_flow_value(G, "x", "y") + >>> flow_value + 3.0 + + You can also use alternative algorithms for computing the + maximum flow by using the flow_func parameter. + + >>> from networkx.algorithms.flow import shortest_augmenting_path + >>> flow_value == nx.maximum_flow_value( + ... G, "x", "y", flow_func=shortest_augmenting_path + ... ) + True + + """ + if flow_func is None: + if kwargs: + raise nx.NetworkXError( + "You have to explicitly set a flow_func if" + " you need to pass parameters via kwargs." + ) + flow_func = default_flow_func + + if not callable(flow_func): + raise nx.NetworkXError("flow_func has to be callable.") + + R = flow_func(flowG, _s, _t, capacity=capacity, value_only=True, **kwargs) + + return R.graph["flow_value"] + + +@nx._dispatchable(graphs="flowG", edge_attrs={"capacity": float("inf")}) +def minimum_cut(flowG, _s, _t, capacity="capacity", flow_func=None, **kwargs): + """Compute the value and the node partition of a minimum (s, t)-cut. + + Use the max-flow min-cut theorem, i.e., the capacity of a minimum + capacity cut is equal to the flow value of a maximum flow. + + Parameters + ---------- + flowG : NetworkX graph + Edges of the graph are expected to have an attribute called + 'capacity'. If this attribute is not present, the edge is + considered to have infinite capacity. + + _s : node + Source node for the flow. + + _t : node + Sink node for the flow. + + capacity : string + Edges of the graph G are expected to have an attribute capacity + that indicates how much flow the edge can support. If this + attribute is not present, the edge is considered to have + infinite capacity. Default value: 'capacity'. + + flow_func : function + A function for computing the maximum flow among a pair of nodes + in a capacitated graph. The function has to accept at least three + parameters: a Graph or Digraph, a source node, and a target node. + And return a residual network that follows NetworkX conventions + (see Notes). If flow_func is None, the default maximum + flow function (:meth:`preflow_push`) is used. See below for + alternative algorithms. The choice of the default function may change + from version to version and should not be relied on. Default value: + None. + + kwargs : Any other keyword parameter is passed to the function that + computes the maximum flow. + + Returns + ------- + cut_value : integer, float + Value of the minimum cut. + + partition : pair of node sets + A partitioning of the nodes that defines a minimum cut. + + Raises + ------ + NetworkXUnbounded + If the graph has a path of infinite capacity, all cuts have + infinite capacity and the function raises a NetworkXError. + + See also + -------- + :meth:`maximum_flow` + :meth:`maximum_flow_value` + :meth:`minimum_cut_value` + :meth:`edmonds_karp` + :meth:`preflow_push` + :meth:`shortest_augmenting_path` + + Notes + ----- + The function used in the flow_func parameter has to return a residual + network that follows NetworkX conventions: + + The residual network :samp:`R` from an input graph :samp:`G` has the + same nodes as :samp:`G`. :samp:`R` is a DiGraph that contains a pair + of edges :samp:`(u, v)` and :samp:`(v, u)` iff :samp:`(u, v)` is not a + self-loop, and at least one of :samp:`(u, v)` and :samp:`(v, u)` exists + in :samp:`G`. + + For each edge :samp:`(u, v)` in :samp:`R`, :samp:`R[u][v]['capacity']` + is equal to the capacity of :samp:`(u, v)` in :samp:`G` if it exists + in :samp:`G` or zero otherwise. If the capacity is infinite, + :samp:`R[u][v]['capacity']` will have a high arbitrary finite value + that does not affect the solution of the problem. This value is stored in + :samp:`R.graph['inf']`. For each edge :samp:`(u, v)` in :samp:`R`, + :samp:`R[u][v]['flow']` represents the flow function of :samp:`(u, v)` and + satisfies :samp:`R[u][v]['flow'] == -R[v][u]['flow']`. + + The flow value, defined as the total flow into :samp:`t`, the sink, is + stored in :samp:`R.graph['flow_value']`. Reachability to :samp:`t` using + only edges :samp:`(u, v)` such that + :samp:`R[u][v]['flow'] < R[u][v]['capacity']` induces a minimum + :samp:`s`-:samp:`t` cut. + + Specific algorithms may store extra data in :samp:`R`. + + The function should supports an optional boolean parameter value_only. When + True, it can optionally terminate the algorithm as soon as the maximum flow + value and the minimum cut can be determined. + + Examples + -------- + >>> G = nx.DiGraph() + >>> G.add_edge("x", "a", capacity=3.0) + >>> G.add_edge("x", "b", capacity=1.0) + >>> G.add_edge("a", "c", capacity=3.0) + >>> G.add_edge("b", "c", capacity=5.0) + >>> G.add_edge("b", "d", capacity=4.0) + >>> G.add_edge("d", "e", capacity=2.0) + >>> G.add_edge("c", "y", capacity=2.0) + >>> G.add_edge("e", "y", capacity=3.0) + + minimum_cut computes both the value of the + minimum cut and the node partition: + + >>> cut_value, partition = nx.minimum_cut(G, "x", "y") + >>> reachable, non_reachable = partition + + 'partition' here is a tuple with the two sets of nodes that define + the minimum cut. You can compute the cut set of edges that induce + the minimum cut as follows: + + >>> cutset = set() + >>> for u, nbrs in ((n, G[n]) for n in reachable): + ... cutset.update((u, v) for v in nbrs if v in non_reachable) + >>> print(sorted(cutset)) + [('c', 'y'), ('x', 'b')] + >>> cut_value == sum(G.edges[u, v]["capacity"] for (u, v) in cutset) + True + + You can also use alternative algorithms for computing the + minimum cut by using the flow_func parameter. + + >>> from networkx.algorithms.flow import shortest_augmenting_path + >>> cut_value == nx.minimum_cut(G, "x", "y", flow_func=shortest_augmenting_path)[0] + True + + """ + if flow_func is None: + if kwargs: + raise nx.NetworkXError( + "You have to explicitly set a flow_func if" + " you need to pass parameters via kwargs." + ) + flow_func = default_flow_func + + if not callable(flow_func): + raise nx.NetworkXError("flow_func has to be callable.") + + if kwargs.get("cutoff") is not None and flow_func is preflow_push: + raise nx.NetworkXError("cutoff should not be specified.") + + R = flow_func(flowG, _s, _t, capacity=capacity, value_only=True, **kwargs) + # Remove saturated edges from the residual network + cutset = [(u, v, d) for u, v, d in R.edges(data=True) if d["flow"] == d["capacity"]] + R.remove_edges_from(cutset) + + # Then, reachable and non reachable nodes from source in the + # residual network form the node partition that defines + # the minimum cut. + non_reachable = set(nx.shortest_path_length(R, target=_t)) + partition = (set(flowG) - non_reachable, non_reachable) + # Finally add again cutset edges to the residual network to make + # sure that it is reusable. + R.add_edges_from(cutset) + return (R.graph["flow_value"], partition) + + +@nx._dispatchable(graphs="flowG", edge_attrs={"capacity": float("inf")}) +def minimum_cut_value(flowG, _s, _t, capacity="capacity", flow_func=None, **kwargs): + """Compute the value of a minimum (s, t)-cut. + + Use the max-flow min-cut theorem, i.e., the capacity of a minimum + capacity cut is equal to the flow value of a maximum flow. + + Parameters + ---------- + flowG : NetworkX graph + Edges of the graph are expected to have an attribute called + 'capacity'. If this attribute is not present, the edge is + considered to have infinite capacity. + + _s : node + Source node for the flow. + + _t : node + Sink node for the flow. + + capacity : string + Edges of the graph G are expected to have an attribute capacity + that indicates how much flow the edge can support. If this + attribute is not present, the edge is considered to have + infinite capacity. Default value: 'capacity'. + + flow_func : function + A function for computing the maximum flow among a pair of nodes + in a capacitated graph. The function has to accept at least three + parameters: a Graph or Digraph, a source node, and a target node. + And return a residual network that follows NetworkX conventions + (see Notes). If flow_func is None, the default maximum + flow function (:meth:`preflow_push`) is used. See below for + alternative algorithms. The choice of the default function may change + from version to version and should not be relied on. Default value: + None. + + kwargs : Any other keyword parameter is passed to the function that + computes the maximum flow. + + Returns + ------- + cut_value : integer, float + Value of the minimum cut. + + Raises + ------ + NetworkXUnbounded + If the graph has a path of infinite capacity, all cuts have + infinite capacity and the function raises a NetworkXError. + + See also + -------- + :meth:`maximum_flow` + :meth:`maximum_flow_value` + :meth:`minimum_cut` + :meth:`edmonds_karp` + :meth:`preflow_push` + :meth:`shortest_augmenting_path` + + Notes + ----- + The function used in the flow_func parameter has to return a residual + network that follows NetworkX conventions: + + The residual network :samp:`R` from an input graph :samp:`G` has the + same nodes as :samp:`G`. :samp:`R` is a DiGraph that contains a pair + of edges :samp:`(u, v)` and :samp:`(v, u)` iff :samp:`(u, v)` is not a + self-loop, and at least one of :samp:`(u, v)` and :samp:`(v, u)` exists + in :samp:`G`. + + For each edge :samp:`(u, v)` in :samp:`R`, :samp:`R[u][v]['capacity']` + is equal to the capacity of :samp:`(u, v)` in :samp:`G` if it exists + in :samp:`G` or zero otherwise. If the capacity is infinite, + :samp:`R[u][v]['capacity']` will have a high arbitrary finite value + that does not affect the solution of the problem. This value is stored in + :samp:`R.graph['inf']`. For each edge :samp:`(u, v)` in :samp:`R`, + :samp:`R[u][v]['flow']` represents the flow function of :samp:`(u, v)` and + satisfies :samp:`R[u][v]['flow'] == -R[v][u]['flow']`. + + The flow value, defined as the total flow into :samp:`t`, the sink, is + stored in :samp:`R.graph['flow_value']`. Reachability to :samp:`t` using + only edges :samp:`(u, v)` such that + :samp:`R[u][v]['flow'] < R[u][v]['capacity']` induces a minimum + :samp:`s`-:samp:`t` cut. + + Specific algorithms may store extra data in :samp:`R`. + + The function should supports an optional boolean parameter value_only. When + True, it can optionally terminate the algorithm as soon as the maximum flow + value and the minimum cut can be determined. + + Examples + -------- + >>> G = nx.DiGraph() + >>> G.add_edge("x", "a", capacity=3.0) + >>> G.add_edge("x", "b", capacity=1.0) + >>> G.add_edge("a", "c", capacity=3.0) + >>> G.add_edge("b", "c", capacity=5.0) + >>> G.add_edge("b", "d", capacity=4.0) + >>> G.add_edge("d", "e", capacity=2.0) + >>> G.add_edge("c", "y", capacity=2.0) + >>> G.add_edge("e", "y", capacity=3.0) + + minimum_cut_value computes only the value of the + minimum cut: + + >>> cut_value = nx.minimum_cut_value(G, "x", "y") + >>> cut_value + 3.0 + + You can also use alternative algorithms for computing the + minimum cut by using the flow_func parameter. + + >>> from networkx.algorithms.flow import shortest_augmenting_path + >>> cut_value == nx.minimum_cut_value( + ... G, "x", "y", flow_func=shortest_augmenting_path + ... ) + True + + """ + if flow_func is None: + if kwargs: + raise nx.NetworkXError( + "You have to explicitly set a flow_func if" + " you need to pass parameters via kwargs." + ) + flow_func = default_flow_func + + if not callable(flow_func): + raise nx.NetworkXError("flow_func has to be callable.") + + if kwargs.get("cutoff") is not None and flow_func is preflow_push: + raise nx.NetworkXError("cutoff should not be specified.") + + R = flow_func(flowG, _s, _t, capacity=capacity, value_only=True, **kwargs) + + return R.graph["flow_value"] diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/flow/mincost.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/flow/mincost.py new file mode 100644 index 0000000000000000000000000000000000000000..2f9390d7a1c1e454ed7c2f8793d591b338115107 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/flow/mincost.py @@ -0,0 +1,356 @@ +""" +Minimum cost flow algorithms on directed connected graphs. +""" + +__all__ = ["min_cost_flow_cost", "min_cost_flow", "cost_of_flow", "max_flow_min_cost"] + +import networkx as nx + + +@nx._dispatchable( + node_attrs="demand", edge_attrs={"capacity": float("inf"), "weight": 0} +) +def min_cost_flow_cost(G, demand="demand", capacity="capacity", weight="weight"): + r"""Find the cost of a minimum cost flow satisfying all demands in digraph G. + + G is a digraph with edge costs and capacities and in which nodes + have demand, i.e., they want to send or receive some amount of + flow. A negative demand means that the node wants to send flow, a + positive demand means that the node want to receive flow. A flow on + the digraph G satisfies all demand if the net flow into each node + is equal to the demand of that node. + + Parameters + ---------- + G : NetworkX graph + DiGraph on which a minimum cost flow satisfying all demands is + to be found. + + demand : string + Nodes of the graph G are expected to have an attribute demand + that indicates how much flow a node wants to send (negative + demand) or receive (positive demand). Note that the sum of the + demands should be 0 otherwise the problem in not feasible. If + this attribute is not present, a node is considered to have 0 + demand. Default value: 'demand'. + + capacity : string + Edges of the graph G are expected to have an attribute capacity + that indicates how much flow the edge can support. If this + attribute is not present, the edge is considered to have + infinite capacity. Default value: 'capacity'. + + weight : string + Edges of the graph G are expected to have an attribute weight + that indicates the cost incurred by sending one unit of flow on + that edge. If not present, the weight is considered to be 0. + Default value: 'weight'. + + Returns + ------- + flowCost : integer, float + Cost of a minimum cost flow satisfying all demands. + + Raises + ------ + NetworkXError + This exception is raised if the input graph is not directed or + not connected. + + NetworkXUnfeasible + This exception is raised in the following situations: + + * The sum of the demands is not zero. Then, there is no + flow satisfying all demands. + * There is no flow satisfying all demand. + + NetworkXUnbounded + This exception is raised if the digraph G has a cycle of + negative cost and infinite capacity. Then, the cost of a flow + satisfying all demands is unbounded below. + + See also + -------- + cost_of_flow, max_flow_min_cost, min_cost_flow, network_simplex + + Notes + ----- + This algorithm is not guaranteed to work if edge weights or demands + are floating point numbers (overflows and roundoff errors can + cause problems). As a workaround you can use integer numbers by + multiplying the relevant edge attributes by a convenient + constant factor (eg 100). + + Examples + -------- + A simple example of a min cost flow problem. + + >>> G = nx.DiGraph() + >>> G.add_node("a", demand=-5) + >>> G.add_node("d", demand=5) + >>> G.add_edge("a", "b", weight=3, capacity=4) + >>> G.add_edge("a", "c", weight=6, capacity=10) + >>> G.add_edge("b", "d", weight=1, capacity=9) + >>> G.add_edge("c", "d", weight=2, capacity=5) + >>> flowCost = nx.min_cost_flow_cost(G) + >>> flowCost + 24 + """ + return nx.network_simplex(G, demand=demand, capacity=capacity, weight=weight)[0] + + +@nx._dispatchable( + node_attrs="demand", edge_attrs={"capacity": float("inf"), "weight": 0} +) +def min_cost_flow(G, demand="demand", capacity="capacity", weight="weight"): + r"""Returns a minimum cost flow satisfying all demands in digraph G. + + G is a digraph with edge costs and capacities and in which nodes + have demand, i.e., they want to send or receive some amount of + flow. A negative demand means that the node wants to send flow, a + positive demand means that the node want to receive flow. A flow on + the digraph G satisfies all demand if the net flow into each node + is equal to the demand of that node. + + Parameters + ---------- + G : NetworkX graph + DiGraph on which a minimum cost flow satisfying all demands is + to be found. + + demand : string + Nodes of the graph G are expected to have an attribute demand + that indicates how much flow a node wants to send (negative + demand) or receive (positive demand). Note that the sum of the + demands should be 0 otherwise the problem in not feasible. If + this attribute is not present, a node is considered to have 0 + demand. Default value: 'demand'. + + capacity : string + Edges of the graph G are expected to have an attribute capacity + that indicates how much flow the edge can support. If this + attribute is not present, the edge is considered to have + infinite capacity. Default value: 'capacity'. + + weight : string + Edges of the graph G are expected to have an attribute weight + that indicates the cost incurred by sending one unit of flow on + that edge. If not present, the weight is considered to be 0. + Default value: 'weight'. + + Returns + ------- + flowDict : dictionary + Dictionary of dictionaries keyed by nodes such that + flowDict[u][v] is the flow edge (u, v). + + Raises + ------ + NetworkXError + This exception is raised if the input graph is not directed or + not connected. + + NetworkXUnfeasible + This exception is raised in the following situations: + + * The sum of the demands is not zero. Then, there is no + flow satisfying all demands. + * There is no flow satisfying all demand. + + NetworkXUnbounded + This exception is raised if the digraph G has a cycle of + negative cost and infinite capacity. Then, the cost of a flow + satisfying all demands is unbounded below. + + See also + -------- + cost_of_flow, max_flow_min_cost, min_cost_flow_cost, network_simplex + + Notes + ----- + This algorithm is not guaranteed to work if edge weights or demands + are floating point numbers (overflows and roundoff errors can + cause problems). As a workaround you can use integer numbers by + multiplying the relevant edge attributes by a convenient + constant factor (eg 100). + + Examples + -------- + A simple example of a min cost flow problem. + + >>> G = nx.DiGraph() + >>> G.add_node("a", demand=-5) + >>> G.add_node("d", demand=5) + >>> G.add_edge("a", "b", weight=3, capacity=4) + >>> G.add_edge("a", "c", weight=6, capacity=10) + >>> G.add_edge("b", "d", weight=1, capacity=9) + >>> G.add_edge("c", "d", weight=2, capacity=5) + >>> flowDict = nx.min_cost_flow(G) + >>> flowDict + {'a': {'b': 4, 'c': 1}, 'd': {}, 'b': {'d': 4}, 'c': {'d': 1}} + """ + return nx.network_simplex(G, demand=demand, capacity=capacity, weight=weight)[1] + + +@nx._dispatchable(edge_attrs={"weight": 0}) +def cost_of_flow(G, flowDict, weight="weight"): + """Compute the cost of the flow given by flowDict on graph G. + + Note that this function does not check for the validity of the + flow flowDict. This function will fail if the graph G and the + flow don't have the same edge set. + + Parameters + ---------- + G : NetworkX graph + DiGraph on which a minimum cost flow satisfying all demands is + to be found. + + weight : string + Edges of the graph G are expected to have an attribute weight + that indicates the cost incurred by sending one unit of flow on + that edge. If not present, the weight is considered to be 0. + Default value: 'weight'. + + flowDict : dictionary + Dictionary of dictionaries keyed by nodes such that + flowDict[u][v] is the flow edge (u, v). + + Returns + ------- + cost : Integer, float + The total cost of the flow. This is given by the sum over all + edges of the product of the edge's flow and the edge's weight. + + See also + -------- + max_flow_min_cost, min_cost_flow, min_cost_flow_cost, network_simplex + + Notes + ----- + This algorithm is not guaranteed to work if edge weights or demands + are floating point numbers (overflows and roundoff errors can + cause problems). As a workaround you can use integer numbers by + multiplying the relevant edge attributes by a convenient + constant factor (eg 100). + + Examples + -------- + >>> G = nx.DiGraph() + >>> G.add_node("a", demand=-5) + >>> G.add_node("d", demand=5) + >>> G.add_edge("a", "b", weight=3, capacity=4) + >>> G.add_edge("a", "c", weight=6, capacity=10) + >>> G.add_edge("b", "d", weight=1, capacity=9) + >>> G.add_edge("c", "d", weight=2, capacity=5) + >>> flowDict = nx.min_cost_flow(G) + >>> flowDict + {'a': {'b': 4, 'c': 1}, 'd': {}, 'b': {'d': 4}, 'c': {'d': 1}} + >>> nx.cost_of_flow(G, flowDict) + 24 + """ + return sum((flowDict[u][v] * d.get(weight, 0) for u, v, d in G.edges(data=True))) + + +@nx._dispatchable(edge_attrs={"capacity": float("inf"), "weight": 0}) +def max_flow_min_cost(G, s, t, capacity="capacity", weight="weight"): + """Returns a maximum (s, t)-flow of minimum cost. + + G is a digraph with edge costs and capacities. There is a source + node s and a sink node t. This function finds a maximum flow from + s to t whose total cost is minimized. + + Parameters + ---------- + G : NetworkX graph + DiGraph on which a minimum cost flow satisfying all demands is + to be found. + + s: node label + Source of the flow. + + t: node label + Destination of the flow. + + capacity: string + Edges of the graph G are expected to have an attribute capacity + that indicates how much flow the edge can support. If this + attribute is not present, the edge is considered to have + infinite capacity. Default value: 'capacity'. + + weight: string + Edges of the graph G are expected to have an attribute weight + that indicates the cost incurred by sending one unit of flow on + that edge. If not present, the weight is considered to be 0. + Default value: 'weight'. + + Returns + ------- + flowDict: dictionary + Dictionary of dictionaries keyed by nodes such that + flowDict[u][v] is the flow edge (u, v). + + Raises + ------ + NetworkXError + This exception is raised if the input graph is not directed or + not connected. + + NetworkXUnbounded + This exception is raised if there is an infinite capacity path + from s to t in G. In this case there is no maximum flow. This + exception is also raised if the digraph G has a cycle of + negative cost and infinite capacity. Then, the cost of a flow + is unbounded below. + + See also + -------- + cost_of_flow, min_cost_flow, min_cost_flow_cost, network_simplex + + Notes + ----- + This algorithm is not guaranteed to work if edge weights or demands + are floating point numbers (overflows and roundoff errors can + cause problems). As a workaround you can use integer numbers by + multiplying the relevant edge attributes by a convenient + constant factor (eg 100). + + Examples + -------- + >>> G = nx.DiGraph() + >>> G.add_edges_from( + ... [ + ... (1, 2, {"capacity": 12, "weight": 4}), + ... (1, 3, {"capacity": 20, "weight": 6}), + ... (2, 3, {"capacity": 6, "weight": -3}), + ... (2, 6, {"capacity": 14, "weight": 1}), + ... (3, 4, {"weight": 9}), + ... (3, 5, {"capacity": 10, "weight": 5}), + ... (4, 2, {"capacity": 19, "weight": 13}), + ... (4, 5, {"capacity": 4, "weight": 0}), + ... (5, 7, {"capacity": 28, "weight": 2}), + ... (6, 5, {"capacity": 11, "weight": 1}), + ... (6, 7, {"weight": 8}), + ... (7, 4, {"capacity": 6, "weight": 6}), + ... ] + ... ) + >>> mincostFlow = nx.max_flow_min_cost(G, 1, 7) + >>> mincost = nx.cost_of_flow(G, mincostFlow) + >>> mincost + 373 + >>> from networkx.algorithms.flow import maximum_flow + >>> maxFlow = maximum_flow(G, 1, 7)[1] + >>> nx.cost_of_flow(G, maxFlow) >= mincost + True + >>> mincostFlowValue = sum((mincostFlow[u][7] for u in G.predecessors(7))) - sum( + ... (mincostFlow[7][v] for v in G.successors(7)) + ... ) + >>> mincostFlowValue == nx.maximum_flow_value(G, 1, 7) + True + + """ + maxFlow = nx.maximum_flow_value(G, s, t, capacity=capacity) + H = nx.DiGraph(G) + H.add_node(s, demand=-maxFlow) + H.add_node(t, demand=maxFlow) + return min_cost_flow(H, capacity=capacity, weight=weight) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/flow/preflowpush.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/flow/preflowpush.py new file mode 100644 index 0000000000000000000000000000000000000000..42cadc2e2db6ecfb5a347499c89d5ae77f6af3d8 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/flow/preflowpush.py @@ -0,0 +1,425 @@ +""" +Highest-label preflow-push algorithm for maximum flow problems. +""" + +from collections import deque +from itertools import islice + +import networkx as nx + +from ...utils import arbitrary_element +from .utils import ( + CurrentEdge, + GlobalRelabelThreshold, + Level, + build_residual_network, + detect_unboundedness, +) + +__all__ = ["preflow_push"] + + +def preflow_push_impl(G, s, t, capacity, residual, global_relabel_freq, value_only): + """Implementation of the highest-label preflow-push algorithm.""" + if s not in G: + raise nx.NetworkXError(f"node {str(s)} not in graph") + if t not in G: + raise nx.NetworkXError(f"node {str(t)} not in graph") + if s == t: + raise nx.NetworkXError("source and sink are the same node") + + if global_relabel_freq is None: + global_relabel_freq = 0 + if global_relabel_freq < 0: + raise nx.NetworkXError("global_relabel_freq must be nonnegative.") + + if residual is None: + R = build_residual_network(G, capacity) + else: + R = residual + + detect_unboundedness(R, s, t) + + R_nodes = R.nodes + R_pred = R.pred + R_succ = R.succ + + # Initialize/reset the residual network. + for u in R: + R_nodes[u]["excess"] = 0 + for e in R_succ[u].values(): + e["flow"] = 0 + + def reverse_bfs(src): + """Perform a reverse breadth-first search from src in the residual + network. + """ + heights = {src: 0} + q = deque([(src, 0)]) + while q: + u, height = q.popleft() + height += 1 + for v, attr in R_pred[u].items(): + if v not in heights and attr["flow"] < attr["capacity"]: + heights[v] = height + q.append((v, height)) + return heights + + # Initialize heights of the nodes. + heights = reverse_bfs(t) + + if s not in heights: + # t is not reachable from s in the residual network. The maximum flow + # must be zero. + R.graph["flow_value"] = 0 + return R + + n = len(R) + # max_height represents the height of the highest level below level n with + # at least one active node. + max_height = max(heights[u] for u in heights if u != s) + heights[s] = n + + grt = GlobalRelabelThreshold(n, R.size(), global_relabel_freq) + + # Initialize heights and 'current edge' data structures of the nodes. + for u in R: + R_nodes[u]["height"] = heights[u] if u in heights else n + 1 + R_nodes[u]["curr_edge"] = CurrentEdge(R_succ[u]) + + def push(u, v, flow): + """Push flow units of flow from u to v.""" + R_succ[u][v]["flow"] += flow + R_succ[v][u]["flow"] -= flow + R_nodes[u]["excess"] -= flow + R_nodes[v]["excess"] += flow + + # The maximum flow must be nonzero now. Initialize the preflow by + # saturating all edges emanating from s. + for u, attr in R_succ[s].items(): + flow = attr["capacity"] + if flow > 0: + push(s, u, flow) + + # Partition nodes into levels. + levels = [Level() for i in range(2 * n)] + for u in R: + if u != s and u != t: + level = levels[R_nodes[u]["height"]] + if R_nodes[u]["excess"] > 0: + level.active.add(u) + else: + level.inactive.add(u) + + def activate(v): + """Move a node from the inactive set to the active set of its level.""" + if v != s and v != t: + level = levels[R_nodes[v]["height"]] + if v in level.inactive: + level.inactive.remove(v) + level.active.add(v) + + def relabel(u): + """Relabel a node to create an admissible edge.""" + grt.add_work(len(R_succ[u])) + return ( + min( + R_nodes[v]["height"] + for v, attr in R_succ[u].items() + if attr["flow"] < attr["capacity"] + ) + + 1 + ) + + def discharge(u, is_phase1): + """Discharge a node until it becomes inactive or, during phase 1 (see + below), its height reaches at least n. The node is known to have the + largest height among active nodes. + """ + height = R_nodes[u]["height"] + curr_edge = R_nodes[u]["curr_edge"] + # next_height represents the next height to examine after discharging + # the current node. During phase 1, it is capped to below n. + next_height = height + levels[height].active.remove(u) + while True: + v, attr = curr_edge.get() + if height == R_nodes[v]["height"] + 1 and attr["flow"] < attr["capacity"]: + flow = min(R_nodes[u]["excess"], attr["capacity"] - attr["flow"]) + push(u, v, flow) + activate(v) + if R_nodes[u]["excess"] == 0: + # The node has become inactive. + levels[height].inactive.add(u) + break + try: + curr_edge.move_to_next() + except StopIteration: + # We have run off the end of the adjacency list, and there can + # be no more admissible edges. Relabel the node to create one. + height = relabel(u) + if is_phase1 and height >= n - 1: + # Although the node is still active, with a height at least + # n - 1, it is now known to be on the s side of the minimum + # s-t cut. Stop processing it until phase 2. + levels[height].active.add(u) + break + # The first relabel operation after global relabeling may not + # increase the height of the node since the 'current edge' data + # structure is not rewound. Use height instead of (height - 1) + # in case other active nodes at the same level are missed. + next_height = height + R_nodes[u]["height"] = height + return next_height + + def gap_heuristic(height): + """Apply the gap heuristic.""" + # Move all nodes at levels (height + 1) to max_height to level n + 1. + for level in islice(levels, height + 1, max_height + 1): + for u in level.active: + R_nodes[u]["height"] = n + 1 + for u in level.inactive: + R_nodes[u]["height"] = n + 1 + levels[n + 1].active.update(level.active) + level.active.clear() + levels[n + 1].inactive.update(level.inactive) + level.inactive.clear() + + def global_relabel(from_sink): + """Apply the global relabeling heuristic.""" + src = t if from_sink else s + heights = reverse_bfs(src) + if not from_sink: + # s must be reachable from t. Remove t explicitly. + del heights[t] + max_height = max(heights.values()) + if from_sink: + # Also mark nodes from which t is unreachable for relabeling. This + # serves the same purpose as the gap heuristic. + for u in R: + if u not in heights and R_nodes[u]["height"] < n: + heights[u] = n + 1 + else: + # Shift the computed heights because the height of s is n. + for u in heights: + heights[u] += n + max_height += n + del heights[src] + for u, new_height in heights.items(): + old_height = R_nodes[u]["height"] + if new_height != old_height: + if u in levels[old_height].active: + levels[old_height].active.remove(u) + levels[new_height].active.add(u) + else: + levels[old_height].inactive.remove(u) + levels[new_height].inactive.add(u) + R_nodes[u]["height"] = new_height + return max_height + + # Phase 1: Find the maximum preflow by pushing as much flow as possible to + # t. + + height = max_height + while height > 0: + # Discharge active nodes in the current level. + while True: + level = levels[height] + if not level.active: + # All active nodes in the current level have been discharged. + # Move to the next lower level. + height -= 1 + break + # Record the old height and level for the gap heuristic. + old_height = height + old_level = level + u = arbitrary_element(level.active) + height = discharge(u, True) + if grt.is_reached(): + # Global relabeling heuristic: Recompute the exact heights of + # all nodes. + height = global_relabel(True) + max_height = height + grt.clear_work() + elif not old_level.active and not old_level.inactive: + # Gap heuristic: If the level at old_height is empty (a 'gap'), + # a minimum cut has been identified. All nodes with heights + # above old_height can have their heights set to n + 1 and not + # be further processed before a maximum preflow is found. + gap_heuristic(old_height) + height = old_height - 1 + max_height = height + else: + # Update the height of the highest level with at least one + # active node. + max_height = max(max_height, height) + + # A maximum preflow has been found. The excess at t is the maximum flow + # value. + if value_only: + R.graph["flow_value"] = R_nodes[t]["excess"] + return R + + # Phase 2: Convert the maximum preflow into a maximum flow by returning the + # excess to s. + + # Relabel all nodes so that they have accurate heights. + height = global_relabel(False) + grt.clear_work() + + # Continue to discharge the active nodes. + while height > n: + # Discharge active nodes in the current level. + while True: + level = levels[height] + if not level.active: + # All active nodes in the current level have been discharged. + # Move to the next lower level. + height -= 1 + break + u = arbitrary_element(level.active) + height = discharge(u, False) + if grt.is_reached(): + # Global relabeling heuristic. + height = global_relabel(False) + grt.clear_work() + + R.graph["flow_value"] = R_nodes[t]["excess"] + return R + + +@nx._dispatchable(edge_attrs={"capacity": float("inf")}, returns_graph=True) +def preflow_push( + G, s, t, capacity="capacity", residual=None, global_relabel_freq=1, value_only=False +): + r"""Find a maximum single-commodity flow using the highest-label + preflow-push algorithm. + + This function returns the residual network resulting after computing + the maximum flow. See below for details about the conventions + NetworkX uses for defining residual networks. + + This algorithm has a running time of $O(n^2 \sqrt{m})$ for $n$ nodes and + $m$ edges. + + + Parameters + ---------- + G : NetworkX graph + Edges of the graph are expected to have an attribute called + 'capacity'. If this attribute is not present, the edge is + considered to have infinite capacity. + + s : node + Source node for the flow. + + t : node + Sink node for the flow. + + capacity : string + Edges of the graph G are expected to have an attribute capacity + that indicates how much flow the edge can support. If this + attribute is not present, the edge is considered to have + infinite capacity. Default value: 'capacity'. + + residual : NetworkX graph + Residual network on which the algorithm is to be executed. If None, a + new residual network is created. Default value: None. + + global_relabel_freq : integer, float + Relative frequency of applying the global relabeling heuristic to speed + up the algorithm. If it is None, the heuristic is disabled. Default + value: 1. + + value_only : bool + If False, compute a maximum flow; otherwise, compute a maximum preflow + which is enough for computing the maximum flow value. Default value: + False. + + Returns + ------- + R : NetworkX DiGraph + Residual network after computing the maximum flow. + + Raises + ------ + NetworkXError + The algorithm does not support MultiGraph and MultiDiGraph. If + the input graph is an instance of one of these two classes, a + NetworkXError is raised. + + NetworkXUnbounded + If the graph has a path of infinite capacity, the value of a + feasible flow on the graph is unbounded above and the function + raises a NetworkXUnbounded. + + See also + -------- + :meth:`maximum_flow` + :meth:`minimum_cut` + :meth:`edmonds_karp` + :meth:`shortest_augmenting_path` + + Notes + ----- + The residual network :samp:`R` from an input graph :samp:`G` has the + same nodes as :samp:`G`. :samp:`R` is a DiGraph that contains a pair + of edges :samp:`(u, v)` and :samp:`(v, u)` iff :samp:`(u, v)` is not a + self-loop, and at least one of :samp:`(u, v)` and :samp:`(v, u)` exists + in :samp:`G`. For each node :samp:`u` in :samp:`R`, + :samp:`R.nodes[u]['excess']` represents the difference between flow into + :samp:`u` and flow out of :samp:`u`. + + For each edge :samp:`(u, v)` in :samp:`R`, :samp:`R[u][v]['capacity']` + is equal to the capacity of :samp:`(u, v)` in :samp:`G` if it exists + in :samp:`G` or zero otherwise. If the capacity is infinite, + :samp:`R[u][v]['capacity']` will have a high arbitrary finite value + that does not affect the solution of the problem. This value is stored in + :samp:`R.graph['inf']`. For each edge :samp:`(u, v)` in :samp:`R`, + :samp:`R[u][v]['flow']` represents the flow function of :samp:`(u, v)` and + satisfies :samp:`R[u][v]['flow'] == -R[v][u]['flow']`. + + The flow value, defined as the total flow into :samp:`t`, the sink, is + stored in :samp:`R.graph['flow_value']`. Reachability to :samp:`t` using + only edges :samp:`(u, v)` such that + :samp:`R[u][v]['flow'] < R[u][v]['capacity']` induces a minimum + :samp:`s`-:samp:`t` cut. + + Examples + -------- + >>> from networkx.algorithms.flow import preflow_push + + The functions that implement flow algorithms and output a residual + network, such as this one, are not imported to the base NetworkX + namespace, so you have to explicitly import them from the flow package. + + >>> G = nx.DiGraph() + >>> G.add_edge("x", "a", capacity=3.0) + >>> G.add_edge("x", "b", capacity=1.0) + >>> G.add_edge("a", "c", capacity=3.0) + >>> G.add_edge("b", "c", capacity=5.0) + >>> G.add_edge("b", "d", capacity=4.0) + >>> G.add_edge("d", "e", capacity=2.0) + >>> G.add_edge("c", "y", capacity=2.0) + >>> G.add_edge("e", "y", capacity=3.0) + >>> R = preflow_push(G, "x", "y") + >>> flow_value = nx.maximum_flow_value(G, "x", "y") + >>> flow_value == R.graph["flow_value"] + True + >>> # preflow_push also stores the maximum flow value + >>> # in the excess attribute of the sink node t + >>> flow_value == R.nodes["y"]["excess"] + True + >>> # For some problems, you might only want to compute a + >>> # maximum preflow. + >>> R = preflow_push(G, "x", "y", value_only=True) + >>> flow_value == R.graph["flow_value"] + True + >>> flow_value == R.nodes["y"]["excess"] + True + + """ + R = preflow_push_impl(G, s, t, capacity, residual, global_relabel_freq, value_only) + R.graph["algorithm"] = "preflow_push" + nx._clear_cache(R) + return R diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/flow/shortestaugmentingpath.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/flow/shortestaugmentingpath.py new file mode 100644 index 0000000000000000000000000000000000000000..9f1193f1cbfbe188ebf05105a2c6f1802baca6f1 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/flow/shortestaugmentingpath.py @@ -0,0 +1,300 @@ +""" +Shortest augmenting path algorithm for maximum flow problems. +""" + +from collections import deque + +import networkx as nx + +from .edmondskarp import edmonds_karp_core +from .utils import CurrentEdge, build_residual_network + +__all__ = ["shortest_augmenting_path"] + + +def shortest_augmenting_path_impl(G, s, t, capacity, residual, two_phase, cutoff): + """Implementation of the shortest augmenting path algorithm.""" + if s not in G: + raise nx.NetworkXError(f"node {str(s)} not in graph") + if t not in G: + raise nx.NetworkXError(f"node {str(t)} not in graph") + if s == t: + raise nx.NetworkXError("source and sink are the same node") + + if residual is None: + R = build_residual_network(G, capacity) + else: + R = residual + + R_nodes = R.nodes + R_pred = R.pred + R_succ = R.succ + + # Initialize/reset the residual network. + for u in R: + for e in R_succ[u].values(): + e["flow"] = 0 + + # Initialize heights of the nodes. + heights = {t: 0} + q = deque([(t, 0)]) + while q: + u, height = q.popleft() + height += 1 + for v, attr in R_pred[u].items(): + if v not in heights and attr["flow"] < attr["capacity"]: + heights[v] = height + q.append((v, height)) + + if s not in heights: + # t is not reachable from s in the residual network. The maximum flow + # must be zero. + R.graph["flow_value"] = 0 + return R + + n = len(G) + m = R.size() / 2 + + # Initialize heights and 'current edge' data structures of the nodes. + for u in R: + R_nodes[u]["height"] = heights[u] if u in heights else n + R_nodes[u]["curr_edge"] = CurrentEdge(R_succ[u]) + + # Initialize counts of nodes in each level. + counts = [0] * (2 * n - 1) + for u in R: + counts[R_nodes[u]["height"]] += 1 + + inf = R.graph["inf"] + + def augment(path): + """Augment flow along a path from s to t.""" + # Determine the path residual capacity. + flow = inf + it = iter(path) + u = next(it) + for v in it: + attr = R_succ[u][v] + flow = min(flow, attr["capacity"] - attr["flow"]) + u = v + if flow * 2 > inf: + raise nx.NetworkXUnbounded("Infinite capacity path, flow unbounded above.") + # Augment flow along the path. + it = iter(path) + u = next(it) + for v in it: + R_succ[u][v]["flow"] += flow + R_succ[v][u]["flow"] -= flow + u = v + return flow + + def relabel(u): + """Relabel a node to create an admissible edge.""" + height = n - 1 + for v, attr in R_succ[u].items(): + if attr["flow"] < attr["capacity"]: + height = min(height, R_nodes[v]["height"]) + return height + 1 + + if cutoff is None: + cutoff = float("inf") + + # Phase 1: Look for shortest augmenting paths using depth-first search. + + flow_value = 0 + path = [s] + u = s + d = n if not two_phase else int(min(m**0.5, 2 * n ** (2.0 / 3))) + done = R_nodes[s]["height"] >= d + while not done: + height = R_nodes[u]["height"] + curr_edge = R_nodes[u]["curr_edge"] + # Depth-first search for the next node on the path to t. + while True: + v, attr = curr_edge.get() + if height == R_nodes[v]["height"] + 1 and attr["flow"] < attr["capacity"]: + # Advance to the next node following an admissible edge. + path.append(v) + u = v + break + try: + curr_edge.move_to_next() + except StopIteration: + counts[height] -= 1 + if counts[height] == 0: + # Gap heuristic: If relabeling causes a level to become + # empty, a minimum cut has been identified. The algorithm + # can now be terminated. + R.graph["flow_value"] = flow_value + return R + height = relabel(u) + if u == s and height >= d: + if not two_phase: + # t is disconnected from s in the residual network. No + # more augmenting paths exist. + R.graph["flow_value"] = flow_value + return R + else: + # t is at least d steps away from s. End of phase 1. + done = True + break + counts[height] += 1 + R_nodes[u]["height"] = height + if u != s: + # After relabeling, the last edge on the path is no longer + # admissible. Retreat one step to look for an alternative. + path.pop() + u = path[-1] + break + if u == t: + # t is reached. Augment flow along the path and reset it for a new + # depth-first search. + flow_value += augment(path) + if flow_value >= cutoff: + R.graph["flow_value"] = flow_value + return R + path = [s] + u = s + + # Phase 2: Look for shortest augmenting paths using breadth-first search. + flow_value += edmonds_karp_core(R, s, t, cutoff - flow_value) + + R.graph["flow_value"] = flow_value + return R + + +@nx._dispatchable(edge_attrs={"capacity": float("inf")}, returns_graph=True) +def shortest_augmenting_path( + G, + s, + t, + capacity="capacity", + residual=None, + value_only=False, + two_phase=False, + cutoff=None, +): + r"""Find a maximum single-commodity flow using the shortest augmenting path + algorithm. + + This function returns the residual network resulting after computing + the maximum flow. See below for details about the conventions + NetworkX uses for defining residual networks. + + This algorithm has a running time of $O(n^2 m)$ for $n$ nodes and $m$ + edges. + + + Parameters + ---------- + G : NetworkX graph + Edges of the graph are expected to have an attribute called + 'capacity'. If this attribute is not present, the edge is + considered to have infinite capacity. + + s : node + Source node for the flow. + + t : node + Sink node for the flow. + + capacity : string + Edges of the graph G are expected to have an attribute capacity + that indicates how much flow the edge can support. If this + attribute is not present, the edge is considered to have + infinite capacity. Default value: 'capacity'. + + residual : NetworkX graph + Residual network on which the algorithm is to be executed. If None, a + new residual network is created. Default value: None. + + value_only : bool + If True compute only the value of the maximum flow. This parameter + will be ignored by this algorithm because it is not applicable. + + two_phase : bool + If True, a two-phase variant is used. The two-phase variant improves + the running time on unit-capacity networks from $O(nm)$ to + $O(\min(n^{2/3}, m^{1/2}) m)$. Default value: False. + + cutoff : integer, float + If specified, the algorithm will terminate when the flow value reaches + or exceeds the cutoff. In this case, it may be unable to immediately + determine a minimum cut. Default value: None. + + Returns + ------- + R : NetworkX DiGraph + Residual network after computing the maximum flow. + + Raises + ------ + NetworkXError + The algorithm does not support MultiGraph and MultiDiGraph. If + the input graph is an instance of one of these two classes, a + NetworkXError is raised. + + NetworkXUnbounded + If the graph has a path of infinite capacity, the value of a + feasible flow on the graph is unbounded above and the function + raises a NetworkXUnbounded. + + See also + -------- + :meth:`maximum_flow` + :meth:`minimum_cut` + :meth:`edmonds_karp` + :meth:`preflow_push` + + Notes + ----- + The residual network :samp:`R` from an input graph :samp:`G` has the + same nodes as :samp:`G`. :samp:`R` is a DiGraph that contains a pair + of edges :samp:`(u, v)` and :samp:`(v, u)` iff :samp:`(u, v)` is not a + self-loop, and at least one of :samp:`(u, v)` and :samp:`(v, u)` exists + in :samp:`G`. + + For each edge :samp:`(u, v)` in :samp:`R`, :samp:`R[u][v]['capacity']` + is equal to the capacity of :samp:`(u, v)` in :samp:`G` if it exists + in :samp:`G` or zero otherwise. If the capacity is infinite, + :samp:`R[u][v]['capacity']` will have a high arbitrary finite value + that does not affect the solution of the problem. This value is stored in + :samp:`R.graph['inf']`. For each edge :samp:`(u, v)` in :samp:`R`, + :samp:`R[u][v]['flow']` represents the flow function of :samp:`(u, v)` and + satisfies :samp:`R[u][v]['flow'] == -R[v][u]['flow']`. + + The flow value, defined as the total flow into :samp:`t`, the sink, is + stored in :samp:`R.graph['flow_value']`. If :samp:`cutoff` is not + specified, reachability to :samp:`t` using only edges :samp:`(u, v)` such + that :samp:`R[u][v]['flow'] < R[u][v]['capacity']` induces a minimum + :samp:`s`-:samp:`t` cut. + + Examples + -------- + >>> from networkx.algorithms.flow import shortest_augmenting_path + + The functions that implement flow algorithms and output a residual + network, such as this one, are not imported to the base NetworkX + namespace, so you have to explicitly import them from the flow package. + + >>> G = nx.DiGraph() + >>> G.add_edge("x", "a", capacity=3.0) + >>> G.add_edge("x", "b", capacity=1.0) + >>> G.add_edge("a", "c", capacity=3.0) + >>> G.add_edge("b", "c", capacity=5.0) + >>> G.add_edge("b", "d", capacity=4.0) + >>> G.add_edge("d", "e", capacity=2.0) + >>> G.add_edge("c", "y", capacity=2.0) + >>> G.add_edge("e", "y", capacity=3.0) + >>> R = shortest_augmenting_path(G, "x", "y") + >>> flow_value = nx.maximum_flow_value(G, "x", "y") + >>> flow_value + 3.0 + >>> flow_value == R.graph["flow_value"] + True + + """ + R = shortest_augmenting_path_impl(G, s, t, capacity, residual, two_phase, cutoff) + R.graph["algorithm"] = "shortest_augmenting_path" + nx._clear_cache(R) + return R diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..58c22688660073a6abb59f7639871f711d1bd6ac --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__init__.py @@ -0,0 +1,7 @@ +from networkx.algorithms.isomorphism.isomorph import * +from networkx.algorithms.isomorphism.vf2userfunc import * +from networkx.algorithms.isomorphism.matchhelpers import * +from networkx.algorithms.isomorphism.temporalisomorphvf2 import * +from networkx.algorithms.isomorphism.ismags import * +from networkx.algorithms.isomorphism.tree_isomorphism import * +from networkx.algorithms.isomorphism.vf2pp import * diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ec3db9809bcff3c78f834d5ad2fe9c1b170f1247 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/ismags.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/ismags.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ee859d4e07b95dd4aac80cbe045c6cef0c13329b Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/ismags.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/isomorph.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/isomorph.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..928d640f81cd5691cedafe2757b932a3d662f0e5 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/isomorph.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/isomorphvf2.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/isomorphvf2.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6a482bba6dd5d475b0750786bb12ea2a6427c6a4 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/isomorphvf2.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/matchhelpers.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/matchhelpers.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..42242a4db9e117a63c399ba04be7f8414bde0e4b Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/matchhelpers.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/temporalisomorphvf2.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/temporalisomorphvf2.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..381ad77b82e7af8c11db55bb67652a1fd9946424 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/temporalisomorphvf2.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/tree_isomorphism.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/tree_isomorphism.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2967c0c53de70630d33a29d63dfd371ab1c03510 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/tree_isomorphism.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/vf2pp.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/vf2pp.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..57ecafd0c5df6fd64a05a0cfa6dbd1d56cbfbec8 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/vf2pp.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/vf2userfunc.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/vf2userfunc.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..43de2edce61ae18346d7bf9770078abfae8152b1 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/__pycache__/vf2userfunc.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/ismags.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/ismags.py new file mode 100644 index 0000000000000000000000000000000000000000..34795941c7d6a36599e07421d41435a341a30c59 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/ismags.py @@ -0,0 +1,1306 @@ +""" +ISMAGS Algorithm +================ + +Provides a Python implementation of the ISMAGS algorithm. [1]_ + +ISMAGS does a symmetry analysis to find the constraints on isomorphisms if +we preclude yielding isomorphisms that differ by a symmetry of the subgraph. +For example, if the subgraph contains a 4-cycle, every isomorphism would have a +symmetric version with the nodes rotated relative to the original isomorphism. +By encoding these symmetries as constraints we reduce the search space for +isomorphisms and we also simplify processing the resulting isomorphisms. + +ISMAGS finds (subgraph) isomorphisms between two graphs, taking the +symmetry of the subgraph into account. In most cases the VF2 algorithm is +faster (at least on small graphs) than this implementation, but in some cases +there are an exponential number of isomorphisms that are symmetrically +equivalent. In that case, the ISMAGS algorithm will provide only one isomorphism +per symmetry group, speeding up finding isomorphisms and avoiding the task of +post-processing many effectively identical isomorphisms. + +>>> petersen = nx.petersen_graph() +>>> ismags = nx.isomorphism.ISMAGS(petersen, petersen) +>>> isomorphisms = list(ismags.isomorphisms_iter(symmetry=False)) +>>> len(isomorphisms) +120 +>>> isomorphisms = list(ismags.isomorphisms_iter(symmetry=True)) +>>> answer = [{0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9}] +>>> answer == isomorphisms +True + +In addition, this implementation also provides an interface to find the +largest common induced subgraph [2]_ between any two graphs, again taking +symmetry into account. Given ``graph`` and ``subgraph`` the algorithm will remove +nodes from the ``subgraph`` until ``subgraph`` is isomorphic to a subgraph of +``graph``. Since only the symmetry of ``subgraph`` is taken into account it is +worth thinking about how you provide your graphs: + +>>> graph1 = nx.path_graph(4) +>>> graph2 = nx.star_graph(3) +>>> ismags = nx.isomorphism.ISMAGS(graph1, graph2) +>>> ismags.is_isomorphic() +False +>>> largest_common_subgraph = list(ismags.largest_common_subgraph()) +>>> answer = [{1: 0, 0: 1, 2: 2}, {2: 0, 1: 1, 3: 2}] +>>> answer == largest_common_subgraph +True +>>> ismags2 = nx.isomorphism.ISMAGS(graph2, graph1) +>>> largest_common_subgraph = list(ismags2.largest_common_subgraph()) +>>> answer = [ +... {1: 0, 0: 1, 2: 2}, +... {1: 0, 0: 1, 3: 2}, +... {2: 0, 0: 1, 1: 2}, +... {2: 0, 0: 1, 3: 2}, +... {3: 0, 0: 1, 1: 2}, +... {3: 0, 0: 1, 2: 2}, +... ] +>>> answer == largest_common_subgraph +True + +However, when not taking symmetry into account, it doesn't matter: + +>>> largest_common_subgraph = list(ismags.largest_common_subgraph(symmetry=False)) +>>> answer = [ +... {1: 0, 0: 1, 2: 2}, +... {1: 0, 2: 1, 0: 2}, +... {2: 0, 1: 1, 3: 2}, +... {2: 0, 3: 1, 1: 2}, +... {1: 0, 0: 1, 2: 3}, +... {1: 0, 2: 1, 0: 3}, +... {2: 0, 1: 1, 3: 3}, +... {2: 0, 3: 1, 1: 3}, +... {1: 0, 0: 2, 2: 3}, +... {1: 0, 2: 2, 0: 3}, +... {2: 0, 1: 2, 3: 3}, +... {2: 0, 3: 2, 1: 3}, +... ] +>>> answer == largest_common_subgraph +True +>>> largest_common_subgraph = list(ismags2.largest_common_subgraph(symmetry=False)) +>>> answer = [ +... {1: 0, 0: 1, 2: 2}, +... {1: 0, 0: 1, 3: 2}, +... {2: 0, 0: 1, 1: 2}, +... {2: 0, 0: 1, 3: 2}, +... {3: 0, 0: 1, 1: 2}, +... {3: 0, 0: 1, 2: 2}, +... {1: 1, 0: 2, 2: 3}, +... {1: 1, 0: 2, 3: 3}, +... {2: 1, 0: 2, 1: 3}, +... {2: 1, 0: 2, 3: 3}, +... {3: 1, 0: 2, 1: 3}, +... {3: 1, 0: 2, 2: 3}, +... ] +>>> answer == largest_common_subgraph +True + +Notes +----- +- Node and edge equality is assumed to be transitive: if A is equal to B, and + B is equal to C, then A is equal to C. + +- With a method that yields subgraph isomorphisms, we can construct functions like + ``is_subgraph_isomorphic`` by checking for any yielded mapping. And functions like + ``is_isomorphic`` by checking whether the subgraph has the same number of nodes as + the graph and is also subgraph isomorphic. This subpackage also allows a + ``symmetry`` bool keyword argument so you can find isomorphisms with or + without the symmetry constraints. + +- For more information, see [2]_ and the documentation for :class:`ISMAGS` + which includes a description of the algorithm. + +References +---------- +.. [1] M. Houbraken, S. Demeyer, T. Michoel, P. Audenaert, D. Colle, + M. Pickavet, "The Index-Based Subgraph Matching Algorithm with General + Symmetries (ISMAGS): Exploiting Symmetry for Faster Subgraph + Enumeration", PLoS One 9(5): e97896, 2014. + https://doi.org/10.1371/journal.pone.0097896 +.. [2] https://en.wikipedia.org/wiki/Maximum_common_induced_subgraph +""" + +__all__ = ["ISMAGS"] + +import itertools +from collections import Counter, defaultdict +from functools import reduce, wraps + +import networkx as nx + + +def are_all_equal(iterable): + """ + Returns ``True`` if and only if all elements in `iterable` are equal; and + ``False`` otherwise. + + Parameters + ---------- + iterable: collections.abc.Iterable + The container whose elements will be checked. + + Returns + ------- + bool + ``True`` iff all elements in `iterable` compare equal, ``False`` + otherwise. + """ + try: + shape = iterable.shape + except AttributeError: + pass + else: + if len(shape) > 1: + message = "The function does not works on multidimensional arrays." + raise NotImplementedError(message) from None + + iterator = iter(iterable) + first = next(iterator, None) + return all(item == first for item in iterator) + + +def make_partition(items, test, check=True): + """ + Partitions items into sets based on the outcome of ``test(item1, item2)``. + Pairs of items for which `test` returns `True` end up in the same set. + + Parameters + ---------- + items : collections.abc.Iterable[collections.abc.Hashable] + Items to partition + test : collections.abc.Callable[collections.abc.Hashable, collections.abc.Hashable] + A function that will be called with 2 arguments, taken from items. + Should return `True` if those 2 items match/tests so need to end up in the same + part of the partition, and `False` otherwise. + check : bool optional (default: True) + If ``True``, check that the resulting partition satisfies the match criteria. + Every item should match every item in its part and none outside the part. + + Returns + ------- + list[set] + A partition as a list of sets (the parts). Each set contains some of + the items in `items`, such that all items are in exactly one part and every + pair of items in each part matches. The following will be true: + ``all(thing_matcher(*pair) for pair in itertools.combinations(items, 2))`` + + Notes + ----- + The function `test` is assumed to be transitive: if ``test(a, b)`` and + ``test(b, c)`` return ``True``, then ``test(a, c)`` must also be ``True``. + The function `test` is assumed to be commutative: if ``test(a, b)`` + returns ``True`` then ``test(b, a)`` returns ``True``. + """ + partition = [] + for item in items: + for part in partition: + p_item = next(iter(part)) + if test(item, p_item): + part.add(item) + break + else: # No break + partition.append({item}) + + if check: + if not all( + test(t1, t2) and test(t2, t1) + for part in partition + for t1, t2 in itertools.combinations(part, 2) + ): + raise nx.NetworkXError( + f"\nInvalid partition created with {test}.\n" + "Some items in a part do not match. This leads to\n" + f"{partition=}" + ) + if not all( + not test(t1, t2) and not test(t2, t1) + for p1 in partition + for p2 in partition + if p1 != p2 + for t1, t2 in itertools.product(p1, p2) + ): + raise nx.NetworkXError( + f"\nInvalid partition created with {test}.\n" + "Some items match multiple parts. This leads to\n" + f"{partition=}" + ) + return [set(part) for part in partition] + + +def node_to_part_ID_dict(partition): + """ + Creates a dictionary that maps each item in each part to the index of + the part to which it belongs. + + Parameters + ---------- + partition: collections.abc.Sequence[collections.abc.Iterable] + As returned by :func:`make_partition`. + + Returns + ------- + dict + """ + return {node: ID for ID, part in enumerate(partition) for node in part} + + +def color_degree_by_node(G, n_colors, e_colors): + """Returns a dict by node to counts of edge and node color for that node. + + This returns a dict by node to a 2-tuple of node color and degree by + (edge color and nbr color). E.g. ``{0: (1, {(0, 2): 5})}`` means that + node ``0`` has node type 1 and has 5 edges of type 0 that go to nodes of type 2. + Thus, this is a measure of degree (edge count) by color of edge and color + of the node on the other side of that edge. + + For directed graphs the degree counts is a 2-tuple of (in, out) degree counts. + + Ideally, if edge_match is None, this could get simplified to just the node + color on the other end of the edge. Similarly if node_match is None then only + edge color is tracked. And if both are None, we simply count the number of edges. + """ + # n_colors might be incomplete when using `largest_common_subgraph()` + if len(n_colors) < len(G): + for n, nbrs in G.adjacency(): + if n not in n_colors: + n_colors[n] = None + for v in nbrs: + e_colors[n, v] = None + # undirected colored degree + if not G.is_directed(): + return { + u: (n_colors[u], Counter((e_colors[u, v], n_colors[v]) for v in nbrs)) + for u, nbrs in G.adjacency() + } + # directed colored out and in degree + return { + u: ( + n_colors[u], + Counter((e_colors[u, v], n_colors[v]) for v in nbrs), + Counter((e_colors[v, u], n_colors[v]) for v in G._pred[u]), + ) + for u, nbrs in G.adjacency() + } + + +class EdgeLookup: + """Class to handle getitem for undirected edges. + + Note that ``items()`` iterates over one of the two representations of the edge + (u, v) and (v, u). So this technically doesn't violate the Mapping + invariant that (k,v) pairs reported by ``items()`` satisfy ``.__getitem__(k) == v``. + But we are violating the spirit of the protocol by having keys available + for lookup by ``__getitem__`` that are not reported by ``items()``. + + Note that if we used frozensets for undirected edges we would have the same + behavior we see here. You could ``__getitem__`` either ``{u, v}`` or ``{v, u}`` + and get the same value -- yet ``items()`` would only report one of the two. + So from that perspective we *are* following the Mapping protocol. Our keys + are undirected edges. We are using 2-tuples as an imperfect representation + of these edges. We are not using 2-tuples as keys. Only as imperfect edges + and we use the edges as keys. + """ + + def __init__(self, edge_dict): + self.edge_dict = edge_dict + + def __getitem__(self, edge): + if edge in self.edge_dict: + return self.edge_dict[edge] + return self.edge_dict[edge[::-1]] + + def items(self): + return self.edge_dict.items() + + +class ISMAGS: + """ + Implements the ISMAGS subgraph matching algorithm. [1]_ ISMAGS stands for + "Index-based Subgraph Matching Algorithm with General Symmetries". As the + name implies, it is symmetry aware and will only generate non-symmetric + isomorphisms. + + Attributes + ---------- + graph: networkx.Graph + subgraph: networkx.Graph + + Notes + ----- + ISMAGS does a symmetry analysis to find the constraints on isomorphisms if + we preclude yielding isomorphisms that differ by a symmetry of the subgraph. + For example, if the subgraph is a 4-cycle, every isomorphism would have a + symmetric version with the nodes rotated relative to the original isomorphism. + By encoding these symmetries as constraints we reduce the search space for + isomorphisms and we also simplify processing the resulting isomorphisms. + + **Symmetry Analysis** + + The constraints in ISMAGS are based off the handling in ``nauty`` and its many + variants, in particular ``saucy``, as discussed in the ISMAGS paper [1]_. + That paper cites [3]_ for details on symmetry handling. Figure 2 of [3]_ + describes the DFS approach to symmetries used here and relying on a data structure + called an Ordered Pair Partitions(OPP). This consists of a pair of partitions + where each part represents nodes with the same degree-by-color over all colors. + We refine these partitions simultaneously in a way to result in permutations + of the nodes that preserve the graph structure. We thus find automorphisms + for the subgraph of interest. From those we identify pairs of nodes which + are structurally equivalent. We then constrain our problem by requiring the + first of the pair to always be assigned first in the isomorphism -- thus + constraining the isomorphisms reported to only one example from the set of all + symmetrically equivalent isomorphisms. These constraints are computed once + based on the subgraph symmetries and then used throughout the DFS search for + isomorphisms. + + Finding the symmetries involves a DFS of the OPP wherein we "couple" a node + to a node in its degree-by-color part of the partition. This "coupling" is done + via assigning a new color in the top partition to the node being coupled, + and the same new color in the bottom partition to the node being coupled to. + This new color has only one node in each partition. The new color also requires + that we "refine" both top and bottom partitions by splitting parts until each + part represents a common degree-by-color value. Those refinements introduce + new colors as the parts are split during refinement. Parts do not get combined + during refinement. So the coupling/refining process always results in at least + one new part with only one node in both the top and bottom partition. In practice + we usually refine into many new one-node parts in both partitions. + We continue in this way until each node has its own part/color in the top partition + -- and the node in the bottom partition with that color is the symmetric node. + That is, an OPP represents an automorphism, and thus a symmetry + of the subgraph when each color has a single node in the top partition and a single + node in the bottom partition. From those automorphisms we build up a set of nodes + that can be obtained from each other by symmetry (they are mutually symmetric). + That set of nodes is called an "orbit" of the subgraph under symmetry. + + After finding the orbits for one symmetry, we backtrack in the DFS by removing the + latest coupling and replacing it with a coupling from the same top node to a new + bottom node in its degree-by-color grouping. When all possible couplings for that + node are considered we backtrack to the previously coupled node and recouple in + a DFS manner. + + We can prune the DFS search tree in helpful ways. The paper [2]_ demonstrates 6 + situations of interest in the DFS where pruning is possible: + + - An **Automorphism OPP** is an OPP where every part in both partitions + contains a single node. The mapping/automorphism is found by mapping + each top node to the bottom node in the same color part. For example, + ``[({1}, {2}, {3}); ({2}, {3}, {1})]`` represents the mapping of each + node to the next in a triangle. It rotates the nodes around the triangle. + - The **Identity OPP** is the first automorphism found during the DFS. It + appears on the left side of the DFS tree and is first due to our ordering of + coupling nodes to be in an arbitrary but fixed ordering of the nodes. This + automorphism does not show any symmetries, but it ensures the orbit for each + node includes itself and it sets us up for handling the symmetries. Note that + a subgraph with no symmetries will only have the identity automorphism. + - A **Non-isomorphic OPP** occurs when refinement creates a different number of + parts in the top partition than in the bottom partition. This means no symmetries + will be found during further processing of that subtree of the DFS. We prune + the subtree and continue. + - A **Matching OPP** is such that each top part that has more than one node is + in fact equal to the bottom part with the same color. The many-node-parts match + exactly. The single-node parts then represent symmetries that do not permute + any matching nodes. Matching OPPs arise while finding the Identity Mapping. But + the single-node parts are identical in the two partitions, so no useful symmetries + are found. But after the Identity Mapping is found, every Matching OPP encountered + will have different nodes in at least two single-node parts of the same color. + So these positions in the DFS provide us with symmetries without any + need to find the whole automorphism. We can prune the subtree, update the orbits + and backtrack. Any larger symmetries that combine these symmetries with symmetries + of the many-node-parts do not need to be explored because the symmetry "generators" + found in this way provide a basis for all symmetries. We will find the symmetry + generators of the many-node-parts at another subtree of the DFS. + - An **Orbit Pruning OPP** is an OPP where the node coupling to be considered next + has both nodes already known to be in the same orbit. We have already identified + those permutations when we discovered the orbit. So we can prune the resulting + subtree. This is the primary pruning discussed in [1]_. + - A **Coset Point** in the DFS is a point of the tree when a node is first + back-tracked. That is, its couplings have all been analyzed once and we backtrack + to its parent. So, said another way, when a node is backtracked to and is about to + be mapped to a different node for the first time, its child in the DFS has been + completely analysed. Thus the orbit for that child at this point in the DFS is + the full orbit for symmetries involving only that child or larger nodes in the + node order. All smaller nodes are mapped to themselves. + This orbit is due to symmetries not involving smaller nodes. Such an orbit is + called the "coset" of that node. The Coset Point does not lead to pruning or to + more symmetries. It is the point in the process where we store the **coset** of + the node being backtracked. We use the cosets to construct the symmetry + constraints. + + Once the pruned DFS tree has been traversed, we have collected the cosets of some + special nodes. Often most nodes are not coupled during the progression down the left + side of the DFS. They are separated from other nodes during the partition refinement + process after coupling. So they never get coupled directly. Thus the number of cosets + we find is typically many fewer than the number of nodes. + + We turn those cosets into constraints on the nodes when building non-symmetric + isomorphisms. The node whose coset is used is paired with each other node in the + coset. These node-pairs form the constraints. During isomorphism construction we + always select the first of the constraint before the other. This removes subtrees + from the DFS traversal space used to build isomorphisms. + + The constraints we obtain via symmetry analysis of the subgraph are used for + finding non-symmetric isomorphisms. We prune the isomorphism tree based on + the constraints we obtain from the symmetry analysis. + + **Isomorphism Construction** + + Once we have symmetry constraints on the isomorphisms, ISMAGS constructs the allowed + isomorphisms by mapping each node of the subgraph to all possible nodes (with the + same degree-by-color) from the graph. We partition all nodes into degree-by-color + parts and order the subgraph nodes we consider using smallest part size first. + The idea is to try to map the most difficult subgraph nodes first (most difficult + here means least number of graph candidates). + + By considering each potential subgraph node to graph candidate mapping image in turn, + we perform a DFS traversal of partial mappings. If the mapping is rejected due to + the graph neighbors not matching the degree-by-color of the subgraph neighbors, or + rejected due to the constraints imposed from symmetry, we prune that subtree and + consider a new graph candidate node for that subgraph node. When no more graph + candidates remain we backtrack to the previous node in the mapping and consider a + new graph candidate for that node. If we ever get to a depth where all subgraph nodes + are mapped and no structural requirements or symmetry constraints are violated, + we have found an isomorphism. We yield that mapping and backtrack to find other + isomorphisms. + + As we visit more neighbors, the graph candidate nodes have to satisfy more structural + restrictions. As described in the ISMAGS paper, [1]_, we store each set of structural + restrictions separately as a set of possible candidate nodes rather than computing + the intersection of that set with the known graph candidates for the subgraph node. + We delay taking the intersection until that node is selected to be in the mapping. + While choosing the node with fewest candidates, we avoid computing the intersection + by using the size of the minimal set to be intersected rather than the size of the + intersection. This may make the node ordering slightly worse via a savings of + many intersections most of which are not ever needed. + + References + ---------- + .. [1] M. Houbraken, S. Demeyer, T. Michoel, P. Audenaert, D. Colle, + M. Pickavet, "The Index-Based Subgraph Matching Algorithm with General + Symmetries (ISMAGS): Exploiting Symmetry for Faster Subgraph + Enumeration", PLoS One 9(5): e97896, 2014. + https://doi.org/10.1371/journal.pone.0097896 + .. [2] https://en.wikipedia.org/wiki/Maximum_common_induced_subgraph + .. [3] Hadi Katebi, Karem A. Sakallah and Igor L. Markov + "Graph Symmetry Detection and Canonical Labeling: Differences and Synergies" + in "Turing-100. The Alan Turing Centenary" Ed: A. Voronkov p. 181 -- 195, (2012). + https://doi.org/10.29007/gzc1 https://arxiv.org/abs/1208.6271 + """ + + def __init__(self, graph, subgraph, node_match=None, edge_match=None, cache=None): + """ + Parameters + ---------- + graph: networkx.Graph + subgraph: networkx.Graph + node_match: collections.abc.Callable or None + Function used to determine whether two nodes are equivalent. Its + signature should look like ``f(n1: dict, n2: dict) -> bool``, with + `n1` and `n2` node property dicts. See also + :func:`~networkx.algorithms.isomorphism.categorical_node_match` and + friends. + If `None`, all nodes are considered equal. + edge_match: collections.abc.Callable or None + Function used to determine whether two edges are equivalent. Its + signature should look like ``f(e1: dict, e2: dict) -> bool``, with + `e1` and `e2` edge property dicts. See also + :func:`~networkx.algorithms.isomorphism.categorical_edge_match` and + friends. + If `None`, all edges are considered equal. + cache: collections.abc.Mapping + A cache used for caching graph symmetries. + """ + if graph.is_directed() != subgraph.is_directed(): + raise ValueError("Directed and undirected graphs cannot be compared.") + + # TODO: allow for precomputed partitions and colors + self.graph = graph + self.subgraph = subgraph + self._symmetry_cache = cache + # Naming conventions are taken from the original paper. + # For your sanity: + # sg: subgraph + # g: graph + # e: edge(s) + # n: node(s) + # So: sgn means "subgraph nodes". + node_parts = self.create_aligned_partitions( + node_match, self.subgraph.nodes, self.graph.nodes + ) + self._sgn_partition, self._gn_partition, self.N_node_colors = node_parts + self._sgn_colors = node_to_part_ID_dict(self._sgn_partition) + self._gn_colors = node_to_part_ID_dict(self._gn_partition) + + edge_partitions = self.create_aligned_partitions( + edge_match, self.subgraph.edges(), self.graph.edges() + ) + self._sge_partition, self._ge_partition, self.N_edge_colors = edge_partitions + if self.graph.is_directed(): + self._sge_colors = node_to_part_ID_dict(self._sge_partition) + self._ge_colors = node_to_part_ID_dict(self._ge_partition) + else: # allow lookups (u, v) or (v, u) + self._sge_colors = EdgeLookup(node_to_part_ID_dict(self._sge_partition)) + self._ge_colors = EdgeLookup(node_to_part_ID_dict(self._ge_partition)) + + def create_aligned_partitions(self, thing_matcher, sg_things, g_things): + """Partitions of "things" (nodes or edges) from subgraph and graph + based on function `thing_matcher`. + + Returns: sg_partition, g_partition, number_of_matched_parts + + The first `number_of_matched_parts` parts in each partition + match in order, e.g. 2nd part matches other's 2nd part. + Warning: nodes in parts after that have no matching nodes in the other graph. + For morphisms those nodes can't appear in the mapping. + """ + if thing_matcher is None: + sg_partition = [set(sg_things)] + g_partition = [set(g_things)] + return sg_partition, g_partition, 1 + + # Use thing_matcher to create a partition + # Note: isinstance(G.edges(), OutEdgeDataView) is only true for multi(di)graph + sg_multiedge = isinstance(sg_things, nx.classes.reportviews.OutEdgeDataView) + g_multiedge = isinstance(g_things, nx.classes.reportviews.OutEdgeDataView) + if not sg_multiedge: + + def sg_match(thing1, thing2): + return thing_matcher(sg_things[thing1], sg_things[thing2]) + + else: # multiedges (note nodes of multigraphs use simple case above) + + def sg_match(thing1, thing2): + (u1, v1), (u2, v2) = thing1, thing2 + return thing_matcher(self.subgraph[u1][v1], self.subgraph[u2][v2]) + + if not g_multiedge: + + def g_match(thing1, thing2): + return thing_matcher(g_things[thing1], g_things[thing2]) + + else: # multiedges (note nodes of multigraphs use simple case above) + + def g_match(thing1, thing2): + (u1, v1), (u2, v2) = thing1, thing2 + return thing_matcher(self.graph[u1][v1], self.graph[u2][v2]) + + sg_partition = make_partition(sg_things, sg_match) + g_partition = make_partition(g_things, g_match) + + # Align order of g_partition to that of sg_partition + sgc_to_gc = {} + gc_to_sgc = {} + sN, N = len(sg_partition), len(g_partition) + for sgc, gc in itertools.product(range(sN), range(N)): + sgt = next(iter(sg_partition[sgc])) + gt = next(iter(g_partition[gc])) + sgt_ = sg_things[sgt] if not sg_multiedge else self.subgraph[sgt[0]][sgt[1]] + gt_ = g_things[gt] if not g_multiedge else self.graph[gt[0]][gt[1]] + if thing_matcher(sgt_, gt_): + # TODO: remove these two if-checks when confident they never arise + # The `check` feature in match_partitions should ensure they do not + if sgc in sgc_to_gc: + raise nx.NetworkXError( + f"\nMatching function {thing_matcher} seems faulty.\n" + f"Partition found: {sg_partition=}\n" + f"So {sgt} in subgraph part {sg_partition[sgc]} matches two " + f"graph parts {g_partition[gc]} and " + f"{g_partition[sgc_to_gc[sgc]]}\n" + ) + if gc in gc_to_sgc: + raise nx.NetworkXError( + f"\nMatching function seems broken: {thing_matcher}\n" + f"Partitions found: {g_partition=} {sg_partition=}\n" + f"So {gt} in graph part {g_partition[gc]} matches two " + f"subgraph parts {sg_partition[sgc]} and " + f"{sg_partition[gc_to_sgc[gc]]}\n" + ) + sgc_to_gc[sgc] = gc + gc_to_sgc[gc] = sgc + ## return two lists and the number of partitions that match. + new_order = [ + (sg_partition[sgc], g_partition[gc]) for sgc, gc in sgc_to_gc.items() + ] + Ncolors = len(new_order) + if Ncolors: + new_sg_p, new_g_p = [list(x) for x in zip(*new_order)] + else: + new_sg_p, new_g_p = [], [] + if Ncolors < sN: + extra = [sg_partition[c] for c in range(sN) if c not in sgc_to_gc] + new_sg_p = list(new_sg_p) + extra + new_g_p = list(new_g_p) + [set()] * len(extra) + if Ncolors < N: + extra = [g_partition[c] for c in range(N) if c not in gc_to_sgc] + new_g_p = list(new_g_p) + extra + new_sg_p = list(new_sg_p) + [set()] * len(extra) + + return new_sg_p, new_g_p, Ncolors + + def find_isomorphisms(self, symmetry=True): + """Find all subgraph isomorphisms between subgraph and graph + + Finds isomorphisms where :attr:`subgraph` <= :attr:`graph`. + + Parameters + ---------- + symmetry: bool + Whether symmetry should be taken into account. If False, found + isomorphisms may be symmetrically equivalent. + + Yields + ------ + dict + The found isomorphism mappings of {graph_node: subgraph_node}. + """ + # The networkx VF2 algorithm is slightly funny in when it yields an + # empty dict and when not. + if not self.subgraph: + yield {} + return + elif not self.graph: + return + elif len(self.graph) < len(self.subgraph): + return + elif len(self._sgn_partition) > self.N_node_colors: + # some subgraph nodes have a color that doesn't occur in graph + return + elif len(self._sge_partition) > self.N_edge_colors: + # some subgraph edges have a color that doesn't occur in graph + return + + if symmetry: + cosets = self.analyze_subgraph_symmetry() + # Turn cosets into constraints. + constraints = [(n, co) for n, cs in cosets.items() for co in cs if n != co] + else: + constraints = [] + + cand_sets = self._get_node_color_candidate_sets() + + lookahead_candidates = self._get_color_degree_candidates() + for sgn, lookahead_cands in lookahead_candidates.items(): + cand_sets[sgn].add(frozenset(lookahead_cands)) + + if any(cand_sets.values()): + # Choose start node based on a heuristic for the min # of candidates + # Heuristic here is length of smallest frozenset in candidates' set + # of frozensets for that node. Using the smallest length avoids + # computing the intersection of the frozensets for each node. + start_sgn = min(cand_sets, key=lambda n: min(len(x) for x in cand_sets[n])) + cand_sets[start_sgn] = (frozenset.intersection(*cand_sets[start_sgn]),) + yield from self._map_nodes(start_sgn, cand_sets, constraints) + return + + def _get_color_degree_candidates(self): + """ + Returns a mapping of {subgraph node: set of graph nodes} for + which the graph nodes are feasible mapping candidate_sets for the + subgraph node, as determined by looking ahead one edge. + """ + g_deg = color_degree_by_node(self.graph, self._gn_colors, self._ge_colors) + sg_deg = color_degree_by_node(self.subgraph, self._sgn_colors, self._sge_colors) + + return { + sgn: { + gn + for gn, (_, *g_counts) in g_deg.items() + if all( + sg_cnt <= g_counts[idx][color] + for idx, counts in enumerate(needed_counts) + for color, sg_cnt in counts.items() + ) + } + for sgn, (_, *needed_counts) in sg_deg.items() + } + + def largest_common_subgraph(self, symmetry=True): + """ + Find the largest common induced subgraphs between :attr:`subgraph` and + :attr:`graph`. + + Parameters + ---------- + symmetry: bool + Whether symmetry should be taken into account. If False, found + largest common subgraphs may be symmetrically equivalent. + + Yields + ------ + dict + The found isomorphism mappings of {graph_node: subgraph_node}. + """ + # The networkx VF2 algorithm is slightly funny in when it yields an + # empty dict and when not. + if not self.subgraph: + yield {} + return + elif not self.graph: + return + + if symmetry: + cosets = self.analyze_subgraph_symmetry() + # Turn cosets into constraints. + constraints = [(n, cn) for n, cs in cosets.items() for cn in cs if n != cn] + else: + constraints = [] + + candidate_sets = self._get_node_color_candidate_sets() + + if any(candidate_sets.values()): + relevant_parts = self._sgn_partition[: self.N_node_colors] + to_be_mapped = {frozenset(n for p in relevant_parts for n in p)} + yield from self._largest_common_subgraph( + candidate_sets, constraints, to_be_mapped + ) + else: + return + + def analyze_subgraph_symmetry(self): + """ + Find a minimal set of permutations and corresponding co-sets that + describe the symmetry of ``self.subgraph``, given the node and edge + equalities given by `node_partition` and `edge_colors`, respectively. + + Returns + ------- + dict[collections.abc.Hashable, set[collections.abc.Hashable]] + The found co-sets. The co-sets is a dictionary of + ``{node key: set of node keys}``. + Every key-value pair describes which ``values`` can be interchanged + without changing nodes less than ``key``. + """ + partition, edge_colors = self._sgn_partition, self._sge_colors + + if self._symmetry_cache is not None: + key = hash( + ( + tuple(self.subgraph.nodes), + tuple(self.subgraph.edges), + tuple(map(tuple, node_partition)), + tuple(edge_colors.items()), + self.subgraph.is_directed(), + ) + ) + if key in self._symmetry_cache: + return self._symmetry_cache[key] + partition = self._refine_node_partition(self.subgraph, partition, edge_colors) + cosets = self._process_ordered_pair_partitions( + self.subgraph, partition, partition, edge_colors + ) + if self._symmetry_cache is not None: + self._symmetry_cache[key] = cosets + return cosets + + def is_isomorphic(self, symmetry=False): + """ + Returns True if :attr:`graph` is isomorphic to :attr:`subgraph` and + False otherwise. + + Returns + ------- + bool + """ + return len(self.subgraph) == len(self.graph) and self.subgraph_is_isomorphic( + symmetry + ) + + def subgraph_is_isomorphic(self, symmetry=False): + """ + Returns True if a subgraph of :attr:`graph` is isomorphic to + :attr:`subgraph` and False otherwise. + + Returns + ------- + bool + """ + # symmetry=False, since we only need to know whether there is any + # example; figuring out all symmetry elements probably costs more time + # than it gains. + isom = next(self.subgraph_isomorphisms_iter(symmetry=symmetry), None) + return isom is not None + + def isomorphisms_iter(self, symmetry=True): + """ + Does the same as :meth:`find_isomorphisms` if :attr:`graph` and + :attr:`subgraph` have the same number of nodes. + """ + if len(self.graph) == len(self.subgraph): + yield from self.subgraph_isomorphisms_iter(symmetry=symmetry) + + def subgraph_isomorphisms_iter(self, symmetry=True): + """Alternative name for :meth:`find_isomorphisms`.""" + return self.find_isomorphisms(symmetry) + + def _get_node_color_candidate_sets(self): + """ + Per node in subgraph find all nodes in graph that have the same color. + Stored as a dict-of-set-of-frozenset. The dict is keyed by node to a + collection of frozensets of graph nodes. Each of these frozensets are + a restriction. The node can be mapped only to nodes in the frozenset. + Thus it must be mapped to nodes in the intersection of all these sets. + We store the sets to delay taking the intersection of them. This helps + for two reasons: Firstly any duplicate restriction sets can be ignored; + Secondly, some nodes will not need the intersection to be constructed. + Note: a dict-of-list-of-set would store duplicate sets in the list and + we want to avoid that. But I wonder if checking hash/equality when `add`ing + removes the benefit of avoiding computing intersections. + """ + candidate_sets = defaultdict(set) + for sgn in self.subgraph.nodes: + sgn_color = self._sgn_colors[sgn] + if sgn_color >= self.N_node_colors: # color has no candidates + candidate_sets[sgn] # creates empty set entry in defaultdict + else: + candidate_sets[sgn].add(frozenset(self._gn_partition[sgn_color])) + return dict(candidate_sets) + + @classmethod + def _refine_node_partition(cls, graph, partition, edge_colors): + def equal_color(node1, node2): + return color_degree[node1] == color_degree[node2] + + node_colors = node_to_part_ID_dict(partition) + color_degree = color_degree_by_node(graph, node_colors, edge_colors) + while not all(are_all_equal(color_degree[n] for n in p) for p in partition): + partition = [ + p + for part in partition + for p in ( + [part] + if are_all_equal(color_degree[n] for n in part) + else sorted(make_partition(part, equal_color, check=False), key=len) + ) + ] + node_colors = node_to_part_ID_dict(partition) + color_degree = color_degree_by_node(graph, node_colors, edge_colors) + return partition + + def _map_nodes(self, sgn, candidate_sets, constraints, to_be_mapped=None): + """ + Find all subgraph isomorphisms honoring constraints. + The collection `candidate_sets` is stored as a dict-of-set-of-frozenset. + The dict is keyed by node to a collection of candidate frozensets. Any + viable candidate must belong to all the frozensets in the collection. + So each frozenset added to the collection is a restriction on the candidates. + + According to the paper, we store the collection of sets rather than their + intersection to delay computing many intersections with the hope of avoiding + them completely. Having the middle collection be a set also means that + duplicate restrictions on candidates are ignored, avoiding another intersection. + """ + # shortcuts for speed + subgraph = self.subgraph + subgraph_adj = subgraph._adj + graph = self.graph + graph_adj = graph._adj + self_ge_partition = self._ge_partition + self_sge_colors = self._sge_colors + is_directed = subgraph.is_directed() + + gn_ID_to_node = list(graph) + gn_node_to_ID = {n: id for id, n in enumerate(graph)} + + mapping = {} + rev_mapping = {} + if to_be_mapped is None: + to_be_mapped = subgraph_adj.keys() + + # Note that we don't copy candidates here. This means we leak + # information between the branches of the search. This is intentional! + # Specifically, we modify candidates here. That's OK because we substitute + # the set of frozensets with a set containing the frozenset intersection. + # So, it doesn't change the membership rule or the length rule for sorting. + # Membership: any candidate must be an element of each of the frozensets. + # Length: length of the intersection set. Use heuristic min(len of frozensets). + # This intersection improves future length heuristics which can only occur + # after this element of the queu is popped. But it means future additional + # restriction frozensets that duplicate previous ones are not ignored. + sgn_candidates = frozenset.intersection(*candidate_sets[sgn]) + candidate_sets[sgn] = {sgn_candidates} + queue = [(sgn, candidate_sets, iter(sgn_candidates))] + while queue: # DFS over all possible mappings + sgn, candidate_sets, sgn_cand_iter = queue[-1] + + for gn in sgn_cand_iter: + # We're going to try to map sgn to gn. + if gn in rev_mapping: + continue # pragma: no cover + + # REDUCTION and COMBINATION + if sgn in mapping: + old_gn = mapping[sgn] + del rev_mapping[old_gn] + mapping[sgn] = gn + rev_mapping[gn] = sgn + # BASECASE + if len(mapping) == len(to_be_mapped): + yield rev_mapping.copy() + del mapping[sgn] + del rev_mapping[gn] + continue + left_to_map = to_be_mapped - mapping.keys() + + # We copy the candidates dict. But it is not a deepcopy. + # This avoids inner set copies, yet still allows updates b/c setitem + # changes sgn in new dict without changing original set. + # Below be careful to not change the sets of frozensets. + cand_sets = candidate_sets.copy() + + # update the candidate_sets for unmapped sgn based on sgn mapped + if not is_directed: + sgn_nbrs = subgraph_adj[sgn] + not_gn_nbrs = graph_adj.keys() - graph_adj[gn].keys() + for sgn2 in left_to_map: + # edge color must match when sgn2 connected to sgn + if sgn2 not in sgn_nbrs: + gn2_cands = not_gn_nbrs + else: + g_edges = self_ge_partition[self_sge_colors[sgn, sgn2]] + gn2_cands = {n for e in g_edges if gn in e for n in e} + # Node color compatibility should be taken care of by the + # initial candidate lists made by find_subgraphs + + # Add gn2_cands to the right collection. + # Do not change the original set. So do not use |= operator + cand_sets[sgn2] = cand_sets[sgn2] | {frozenset(gn2_cands)} + else: # directed + sgn_nbrs = subgraph_adj[sgn].keys() + sgn_preds = subgraph._pred[sgn].keys() + not_gn_nbrs = ( + graph_adj.keys() - graph_adj[gn].keys() - graph._pred[gn].keys() + ) + for sgn2 in left_to_map: + # edge color must match when sgn2 connected to sgn + if sgn2 not in sgn_nbrs: + if sgn2 not in sgn_preds: + gn2_cands = not_gn_nbrs + else: # sgn2 in sgn_preds + g_edges = self_ge_partition[self_sge_colors[sgn2, sgn]] + gn2_cands = {e[0] for e in g_edges if gn == e[1]} + else: + if sgn2 not in sgn_preds: + g_edges = self_ge_partition[self_sge_colors[sgn, sgn2]] + gn2_cands = {e[1] for e in g_edges if gn == e[0]} + else: + # gn2 must have correct color in both directions + g_edges = self_ge_partition[self_sge_colors[sgn, sgn2]] + gn2_cands = {e[1] for e in g_edges if gn == e[0]} + g_edges = self_ge_partition[self_sge_colors[sgn2, sgn]] + gn2_cands &= {e[0] for e in g_edges if gn == e[1]} + # Do not change the original set. So do not use |= operator + cand_sets[sgn2] = cand_sets[sgn2] | {frozenset(gn2_cands)} + + for sgn2 in left_to_map: + # symmetry must match. constraints mean gn2>gn iff sgn2>sgn + if (sgn, sgn2) in constraints: + gn2_cands = set(gn_ID_to_node[gn_node_to_ID[gn] + 1 :]) + elif (sgn2, sgn) in constraints: + gn2_cands = set(gn_ID_to_node[: gn_node_to_ID[gn]]) + else: + continue # pragma: no cover + # Do not change the original set. So do not use |= operator + cand_sets[sgn2] = cand_sets[sgn2] | {frozenset(gn2_cands)} + + # The next node is the one that is unmapped and has fewest candidates + # Use the heuristic of the min size of the frozensets rather than + # intersection of all frozensets to delay computing intersections. + new_sgn = min( + left_to_map, key=lambda n: min(len(x) for x in cand_sets[n]) + ) + new_sgn_candidates = frozenset.intersection(*cand_sets[new_sgn]) + if not new_sgn_candidates: + continue + cand_sets[new_sgn] = {new_sgn_candidates} + queue.append((new_sgn, cand_sets, iter(new_sgn_candidates))) + break + else: # all gn candidates tried for sgn. + queue.pop() + if sgn in mapping: + del rev_mapping[mapping[sgn]] + del mapping[sgn] + + def _largest_common_subgraph(self, candidates, constraints, to_be_mapped=None): + """ + Find all largest common subgraphs honoring constraints. + """ + # to_be_mapped is a set of frozensets of subgraph nodes + if to_be_mapped is None: + to_be_mapped = {frozenset(self.subgraph.nodes)} + + # The LCS problem is basically a repeated subgraph isomorphism problem + # with smaller and smaller subgraphs. We store the nodes that are + # "part of" the subgraph in to_be_mapped, and we make it a little + # smaller every iteration. + + current_size = len(next(iter(to_be_mapped), [])) + + found_iso = False + if current_size <= len(self.graph): + # There's no point in trying to find isomorphisms of + # graph >= subgraph if subgraph has more nodes than graph. + + # Try the isomorphism first with the nodes with lowest ID. So sort + # them. Those are more likely to be part of the final correspondence. + # In theory, this makes finding the first answer(s) faster. + for nodes in sorted(to_be_mapped, key=sorted): + # Find the isomorphism between subgraph[to_be_mapped] <= graph + next_sgn = min(nodes, key=lambda n: min(len(x) for x in candidates[n])) + isomorphs = self._map_nodes( + next_sgn, candidates, constraints, to_be_mapped=nodes + ) + + # This is effectively `yield from isomorphs`, except that we look + # whether an item was yielded. + try: + item = next(isomorphs) + except StopIteration: + pass + else: + yield item + yield from isomorphs + found_iso = True + + # BASECASE + if found_iso or current_size == 1: + # Shrinking has no point because either 1) we end up with a smaller + # common subgraph (and we want the largest), or 2) there'll be no + # more subgraph. + return + + left_to_be_mapped = set() + for nodes in to_be_mapped: + for sgn in nodes: + # We're going to remove sgn from to_be_mapped, but subject to + # symmetry constraints. We know that for every constraint we + # have those subgraph nodes are equal. So whenever we would + # remove the lower part of a constraint, remove the higher + # instead. This is all dealth with by _remove_node. And because + # left_to_be_mapped is a set, we don't do double work. + + # And finally, make the subgraph one node smaller. + # REDUCTION + new_nodes = self._remove_node(sgn, nodes, constraints) + left_to_be_mapped.add(new_nodes) + # COMBINATION + yield from self._largest_common_subgraph( + candidates, constraints, to_be_mapped=left_to_be_mapped + ) + + @staticmethod + def _remove_node(node, nodes, constraints): + """ + Returns a new set where node has been removed from nodes, subject to + symmetry constraints. We know, that for every constraint we have + those subgraph nodes are equal. So whenever we would remove the + lower part of a constraint, remove the higher instead. + """ + while True: + for low, high in constraints: + if low == node and high in nodes: + node = high + break + else: # no break, couldn't find node in constraints + return frozenset(nodes - {node}) + + @staticmethod + def _get_permutations_by_length(items): + """ + Get all permutations of items, but only permute items with the same + length. + + >>> found = list(ISMAGS._get_permutations_by_length([{1}, {2}, {3, 4}, {4, 5}])) + >>> answer = [ + ... (({1}, {2}), ({3, 4}, {4, 5})), + ... (({1}, {2}), ({4, 5}, {3, 4})), + ... (({2}, {1}), ({3, 4}, {4, 5})), + ... (({2}, {1}), ({4, 5}, {3, 4})), + ... ] + >>> found == answer + True + """ + by_len = defaultdict(list) + for item in items: + by_len[len(item)].append(item) + + return list( + itertools.product( + *(itertools.permutations(by_len[l]) for l in sorted(by_len)) + ) + ) + + def _refine_opp(cls, graph, top, bottom, edge_colors): + def equal_color(node1, node2): + return color_degree[node1] == color_degree[node2] + + top = cls._refine_node_partition(graph, top, edge_colors) + + possible_bottoms = [bottom] + while possible_bottoms: + bottom = possible_bottoms.pop() + node_colors = node_to_part_ID_dict(bottom) + color_degree = color_degree_by_node(graph, node_colors, edge_colors) + if all(are_all_equal(color_degree[n] for n in p) for p in bottom): + if len(top) == len(bottom): + yield top, bottom + # else Non-isomorphic OPP (pruned here) + # either way continue to next possible bottom + continue + # refine bottom partition + more_bottoms = [[]] + for part in bottom: + if len(part) == 1 or are_all_equal(color_degree[node] for node in part): + for new_bottom in more_bottoms: + new_bottom.append(part) + else: + # This part needs to be refined + refined_part = make_partition(part, equal_color, check=False) + R = len(refined_part) + if R == 1 or R == len({len(p) for p in refined_part}): + # no two parts have same length -- simple case + for n_p in more_bottoms: + n_p.extend(sorted(refined_part, key=len)) + else: + # Any part might match any other part with the same size. + # Before refinement they were the same color. So we need to + # include all possible orderings/colors within each size. + permutations = cls._get_permutations_by_length(refined_part) + # Add all permutations of the refined parts to each possible + # bottom. So the number of new possible bottoms is multiplied + # by the number of permutations of the refined parts. + new_partitions = [] + for new_partition in more_bottoms: + for p in permutations: + # p is tuple-of-tuples-of-sets. Flatten to list-of-sets + flat_p = [s for tup in p for s in tup] + new_partitions.append(new_partition + flat_p) + more_bottoms = new_partitions + + # reverse more_bottoms to keep the "finding identity" bottom first + possible_bottoms.extend(more_bottoms[::-1]) + + @staticmethod + def _find_permutations(top_partition, bottom_partition): + """ + Return a set of 2-tuples of nodes. These nodes are not equal + but are mapped to each other in the symmetry represented by this OPP. + Swapping all the 2-tuples of nodes in this set permutes the nodes + but retains the graph structure. Thus it is a symmetry of the subgraph. + """ + # Find permutations + permutations = set() + for top, bot in zip(top_partition, bottom_partition): + if len(top) > 1 or len(bot) > 1: + # ignore parts with > 1 element when they are equal + # These are called Matching OPPs in Katebi 2012. + # Symmetries in matching partitions are built by considering + # only parts that have 1 element. + if top == bot: + continue + raise IndexError( + "Not all nodes are matched. This is" + f" impossible: {top_partition}, {bottom_partition}" + ) + # top and bot have only one element + elif top != bot: + permutations.add(frozenset((next(iter(top)), next(iter(bot))))) + return permutations + + def _process_ordered_pair_partitions( + self, + graph, + top_partition, + bottom_partition, + edge_colors, + ): + if all(len(top) <= 1 for top in top_partition): + # no symmetries. Each node unique. + return {} + + # first mapping found is the identity mapping + finding_identity = True + + orbit_id = {node: orbit_i for orbit_i, node in enumerate(graph)} + orbits = [{node} for node in graph] + cosets = {} + + node_to_ID = {n: i for i, n in enumerate(graph)} + sort_by_ID = node_to_ID.__getitem__ + + def _load_next_queue_entry(queue, top_partition, bottom_partition): + # find smallest node (by ID) in a |part|>1 and its partition index + unmapped_nodes = ( + (node_to_ID[node], node, idx) + for idx, t_part in enumerate(top_partition) + for node in t_part + if len(t_part) > 1 + ) + _, node, part_i = min(unmapped_nodes) + b_part = bottom_partition[part_i] + node2_iter = iter(sorted(b_part, key=sort_by_ID)) + + queue.append([top_partition, bottom_partition, node, part_i, node2_iter]) + + queue = [] + _load_next_queue_entry(queue, top_partition, bottom_partition) + + while queue: + tops, bottoms, node, part_i, node2_iter = queue[-1] + + for node2 in node2_iter: + if node != node2 and orbit_id[node] == orbit_id[node2]: + # Orbit prune + continue + + # couple node to node2 + new_top_part = {node} + new_bot_part = {node2} + + new_top = [top.copy() for top in tops] + new_top[part_i] -= new_top_part + new_top.insert(part_i, new_top_part) + + new_bot = [bot.copy() for bot in bottoms] + new_bot[part_i] -= new_bot_part + new_bot.insert(part_i, new_bot_part) + + # collect OPPs + opps = self._refine_opp(graph, new_top, new_bot, edge_colors) + new_q = [] + for opp in opps: + # Use OPP to find any of: Identity, Automorphism or Matching OPPs + # else load the OPP onto queue for further exploration + # Note that we check for Orbit pruning later because orbits may + # be updated while OPP is sitting on the queue. + # Note that we check for Non-isomorphic OPPs in `_refine_opp`. + if finding_identity: + # Note: allow zero size parts in identity check + # b/c largest_common_subgraph allows empty parts + if all(len(top) <= 1 for top in opp[0]): + # Identity found. Set flag. Can now prune Matching OPPs + finding_identity = False + continue + elif all(len(t) <= 1 or t == b for t, b in zip(*opp)): + # Found a symmetry! (Full mapping or Matching OPP) + # update orbits using the permutations from the OPP. + permutations = self._find_permutations(*opp) + for n1, n2 in permutations: + orb1 = orbit_id[n1] + orb2 = orbit_id[n2] + if orb1 != orb2: + orbit_set2 = orbits[orb2] + orbits[orb1].update(orbit_set2) + orbits[orb2] = set() + orbit_id.update((n, orb1) for n in orbit_set2) + continue + + _load_next_queue_entry(new_q, *opp) + # reverse order to maintain node order DFS (Identity comes first) + queue.extend(new_q[::-1]) + break + else: # no more node2 options + queue.pop() + if node not in cosets: + # coset of `node` is its orbit at the time `node` has completed + # its first DFS traversal. DFS is about to go to previous node. + # Make copy so future orbit changes do not change the coset. + cosets[node] = orbits[orbit_id[node]].copy() + return cosets diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/isomorph.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/isomorph.py new file mode 100644 index 0000000000000000000000000000000000000000..f49594a603035abd5278124aa9638c5b5eb6e8c7 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/isomorph.py @@ -0,0 +1,336 @@ +""" +Graph isomorphism functions. +""" + +import itertools +from collections import Counter + +import networkx as nx +from networkx.exception import NetworkXError + +__all__ = [ + "could_be_isomorphic", + "fast_could_be_isomorphic", + "faster_could_be_isomorphic", + "is_isomorphic", +] + + +@nx._dispatchable(graphs={"G1": 0, "G2": 1}) +def could_be_isomorphic(G1, G2, *, properties="dtc"): + """Returns False if graphs are definitely not isomorphic. + True does NOT guarantee isomorphism. + + Parameters + ---------- + G1, G2 : graphs + The two graphs `G1` and `G2` must be the same type. + + properties : str, default="dct" + Determines which properties of the graph are checked. Each character + indicates a particular property as follows: + + - if ``"d"`` in `properties`: degree of each node + - if ``"t"`` in `properties`: number of triangles for each node + - if ``"c"`` in `properties`: number of maximal cliques for each node + + Unrecognized characters are ignored. The default is ``"dtc"``, which + compares the sequence of ``(degree, num_triangles, num_cliques)`` properties + between `G1` and `G2`. Generally, ``properties="dt"`` would be faster, and + ``properties="d"`` faster still. See Notes for additional details on + property selection. + + Returns + ------- + bool + A Boolean value representing whether `G1` could be isomorphic with `G2` + according to the specified `properties`. + + Notes + ----- + The triangle sequence contains the number of triangles each node is part of. + The clique sequence contains for each node the number of maximal cliques + involving that node. + + Some properties are faster to compute than others. And there are other + properties we could include and don't. But of the three properties listed here, + comparing the degree distributions is the fastest. The "triangles" property + is slower (and also a stricter version of "could") and the "maximal cliques" + property is slower still, but usually faster than doing a full isomorphism + check. + """ + + # Check global properties + if G1.order() != G2.order(): + return False + + properties_to_check = set(properties) + G1_props, G2_props = [], [] + + def _properties_consistent(): + # Ravel the properties into a table with # nodes rows and # properties columns + G1_ptable = [tuple(p[n] for p in G1_props) for n in G1] + G2_ptable = [tuple(p[n] for p in G2_props) for n in G2] + + return sorted(G1_ptable) == sorted(G2_ptable) + + # The property table is built and checked as each individual property is + # added. The reason for this is the building/checking the property table + # is in general much faster than computing the properties, making it + # worthwhile to check multiple times to enable early termination when + # a subset of properties don't match + + # Degree sequence + if "d" in properties_to_check: + G1_props.append(G1.degree()) + G2_props.append(G2.degree()) + if not _properties_consistent(): + return False + # Sequence of triangles per node + if "t" in properties_to_check: + G1_props.append(nx.triangles(G1)) + G2_props.append(nx.triangles(G2)) + if not _properties_consistent(): + return False + # Sequence of maximal cliques per node + if "c" in properties_to_check: + G1_props.append(Counter(itertools.chain.from_iterable(nx.find_cliques(G1)))) + G2_props.append(Counter(itertools.chain.from_iterable(nx.find_cliques(G2)))) + if not _properties_consistent(): + return False + + # All checked conditions passed + return True + + +def graph_could_be_isomorphic(G1, G2): + """ + .. deprecated:: 3.5 + + `graph_could_be_isomorphic` is a deprecated alias for `could_be_isomorphic`. + Use `could_be_isomorphic` instead. + """ + import warnings + + warnings.warn( + "graph_could_be_isomorphic is deprecated, use `could_be_isomorphic` instead.", + category=DeprecationWarning, + stacklevel=2, + ) + return could_be_isomorphic(G1, G2) + + +@nx._dispatchable(graphs={"G1": 0, "G2": 1}) +def fast_could_be_isomorphic(G1, G2): + """Returns False if graphs are definitely not isomorphic. + + True does NOT guarantee isomorphism. + + Parameters + ---------- + G1, G2 : graphs + The two graphs G1 and G2 must be the same type. + + Notes + ----- + Checks for matching degree and triangle sequences. The triangle + sequence contains the number of triangles each node is part of. + """ + # Check global properties + if G1.order() != G2.order(): + return False + + # Check local properties + d1 = G1.degree() + t1 = nx.triangles(G1) + props1 = [[d, t1[v]] for v, d in d1] + props1.sort() + + d2 = G2.degree() + t2 = nx.triangles(G2) + props2 = [[d, t2[v]] for v, d in d2] + props2.sort() + + if props1 != props2: + return False + + # OK... + return True + + +def fast_graph_could_be_isomorphic(G1, G2): + """ + .. deprecated:: 3.5 + + `fast_graph_could_be_isomorphic` is a deprecated alias for + `fast_could_be_isomorphic`. Use `fast_could_be_isomorphic` instead. + """ + import warnings + + warnings.warn( + "fast_graph_could_be_isomorphic is deprecated, use fast_could_be_isomorphic instead", + category=DeprecationWarning, + stacklevel=2, + ) + return fast_could_be_isomorphic(G1, G2) + + +@nx._dispatchable(graphs={"G1": 0, "G2": 1}) +def faster_could_be_isomorphic(G1, G2): + """Returns False if graphs are definitely not isomorphic. + + True does NOT guarantee isomorphism. + + Parameters + ---------- + G1, G2 : graphs + The two graphs G1 and G2 must be the same type. + + Notes + ----- + Checks for matching degree sequences. + """ + # Check global properties + if G1.order() != G2.order(): + return False + + # Check local properties + d1 = sorted(d for n, d in G1.degree()) + d2 = sorted(d for n, d in G2.degree()) + + if d1 != d2: + return False + + # OK... + return True + + +def faster_graph_could_be_isomorphic(G1, G2): + """ + .. deprecated:: 3.5 + + `faster_graph_could_be_isomorphic` is a deprecated alias for + `faster_could_be_isomorphic`. Use `faster_could_be_isomorphic` instead. + """ + import warnings + + warnings.warn( + "faster_graph_could_be_isomorphic is deprecated, use faster_could_be_isomorphic instead", + category=DeprecationWarning, + stacklevel=2, + ) + return faster_could_be_isomorphic(G1, G2) + + +@nx._dispatchable( + graphs={"G1": 0, "G2": 1}, + preserve_edge_attrs="edge_match", + preserve_node_attrs="node_match", +) +def is_isomorphic(G1, G2, node_match=None, edge_match=None): + """Returns True if the graphs G1 and G2 are isomorphic and False otherwise. + + Parameters + ---------- + G1, G2: graphs + The two graphs G1 and G2 must be the same type. + + node_match : callable + A function that returns True if node n1 in G1 and n2 in G2 should + be considered equal during the isomorphism test. + If node_match is not specified then node attributes are not considered. + + The function will be called like + + node_match(G1.nodes[n1], G2.nodes[n2]). + + That is, the function will receive the node attribute dictionaries + for n1 and n2 as inputs. + + edge_match : callable + A function that returns True if the edge attribute dictionary + for the pair of nodes (u1, v1) in G1 and (u2, v2) in G2 should + be considered equal during the isomorphism test. If edge_match is + not specified then edge attributes are not considered. + + The function will be called like + + edge_match(G1[u1][v1], G2[u2][v2]). + + That is, the function will receive the edge attribute dictionaries + of the edges under consideration. + + Notes + ----- + Uses the vf2 algorithm [1]_. + + Examples + -------- + >>> import networkx.algorithms.isomorphism as iso + + For digraphs G1 and G2, using 'weight' edge attribute (default: 1) + + >>> G1 = nx.DiGraph() + >>> G2 = nx.DiGraph() + >>> nx.add_path(G1, [1, 2, 3, 4], weight=1) + >>> nx.add_path(G2, [10, 20, 30, 40], weight=2) + >>> em = iso.numerical_edge_match("weight", 1) + >>> nx.is_isomorphic(G1, G2) # no weights considered + True + >>> nx.is_isomorphic(G1, G2, edge_match=em) # match weights + False + + For multidigraphs G1 and G2, using 'fill' node attribute (default: '') + + >>> G1 = nx.MultiDiGraph() + >>> G2 = nx.MultiDiGraph() + >>> G1.add_nodes_from([1, 2, 3], fill="red") + >>> G2.add_nodes_from([10, 20, 30, 40], fill="red") + >>> nx.add_path(G1, [1, 2, 3, 4], weight=3, linewidth=2.5) + >>> nx.add_path(G2, [10, 20, 30, 40], weight=3) + >>> nm = iso.categorical_node_match("fill", "red") + >>> nx.is_isomorphic(G1, G2, node_match=nm) + True + + For multidigraphs G1 and G2, using 'weight' edge attribute (default: 7) + + >>> G1.add_edge(1, 2, weight=7) + 1 + >>> G2.add_edge(10, 20) + 1 + >>> em = iso.numerical_multiedge_match("weight", 7, rtol=1e-6) + >>> nx.is_isomorphic(G1, G2, edge_match=em) + True + + For multigraphs G1 and G2, using 'weight' and 'linewidth' edge attributes + with default values 7 and 2.5. Also using 'fill' node attribute with + default value 'red'. + + >>> em = iso.numerical_multiedge_match(["weight", "linewidth"], [7, 2.5]) + >>> nm = iso.categorical_node_match("fill", "red") + >>> nx.is_isomorphic(G1, G2, edge_match=em, node_match=nm) + True + + See Also + -------- + numerical_node_match, numerical_edge_match, numerical_multiedge_match + categorical_node_match, categorical_edge_match, categorical_multiedge_match + + References + ---------- + .. [1] L. P. Cordella, P. Foggia, C. Sansone, M. Vento, + "An Improved Algorithm for Matching Large Graphs", + 3rd IAPR-TC15 Workshop on Graph-based Representations in + Pattern Recognition, Cuen, pp. 149-159, 2001. + https://www.researchgate.net/publication/200034365_An_Improved_Algorithm_for_Matching_Large_Graphs + """ + if G1.is_directed() and G2.is_directed(): + GM = nx.algorithms.isomorphism.DiGraphMatcher + elif (not G1.is_directed()) and (not G2.is_directed()): + GM = nx.algorithms.isomorphism.GraphMatcher + else: + raise NetworkXError("Graphs G1 and G2 are not of the same type.") + + gm = GM(G1, G2, node_match=node_match, edge_match=edge_match) + + return gm.is_isomorphic() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/isomorphvf2.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/isomorphvf2.py new file mode 100644 index 0000000000000000000000000000000000000000..587503a9dee1479947db31af6912ff01f0dcf037 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/isomorphvf2.py @@ -0,0 +1,1262 @@ +""" +************* +VF2 Algorithm +************* + +An implementation of VF2 algorithm for graph isomorphism testing. + +The simplest interface to use this module is to call the +:func:`is_isomorphic ` +function. + +Introduction +------------ + +The GraphMatcher and DiGraphMatcher are responsible for matching +graphs or directed graphs in a predetermined manner. This +usually means a check for an isomorphism, though other checks +are also possible. For example, a subgraph of one graph +can be checked for isomorphism to a second graph. + +Matching is done via syntactic feasibility. It is also possible +to check for semantic feasibility. Feasibility, then, is defined +as the logical AND of the two functions. + +To include a semantic check, the (Di)GraphMatcher class should be +subclassed, and the +:meth:`semantic_feasibility ` +function should be redefined. By default, the semantic feasibility function always +returns ``True``. The effect of this is that semantics are not +considered in the matching of G1 and G2. + +Examples +-------- + +Suppose G1 and G2 are isomorphic graphs. Verification is as follows: + +>>> from networkx.algorithms import isomorphism +>>> G1 = nx.path_graph(4) +>>> G2 = nx.path_graph(4) +>>> GM = isomorphism.GraphMatcher(G1, G2) +>>> GM.is_isomorphic() +True + +GM.mapping stores the isomorphism mapping from G1 to G2. + +>>> GM.mapping +{0: 0, 1: 1, 2: 2, 3: 3} + + +Suppose G1 and G2 are isomorphic directed graphs. +Verification is as follows: + +>>> G1 = nx.path_graph(4, create_using=nx.DiGraph) +>>> G2 = nx.path_graph(4, create_using=nx.DiGraph) +>>> DiGM = isomorphism.DiGraphMatcher(G1, G2) +>>> DiGM.is_isomorphic() +True + +DiGM.mapping stores the isomorphism mapping from G1 to G2. + +>>> DiGM.mapping +{0: 0, 1: 1, 2: 2, 3: 3} + + + +Subgraph Isomorphism +-------------------- +Graph theory literature can be ambiguous about the meaning of the +above statement, and we seek to clarify it now. + +In the VF2 literature, a mapping ``M`` is said to be a graph-subgraph +isomorphism iff ``M`` is an isomorphism between ``G2`` and a subgraph of ``G1``. +Thus, to say that ``G1`` and ``G2`` are graph-subgraph isomorphic is to say +that a subgraph of ``G1`` is isomorphic to ``G2``. + +Other literature uses the phrase 'subgraph isomorphic' as in '``G1`` does +not have a subgraph isomorphic to ``G2``'. Another use is as an in adverb +for isomorphic. Thus, to say that ``G1`` and ``G2`` are subgraph isomorphic +is to say that a subgraph of ``G1`` is isomorphic to ``G2``. + +Finally, the term 'subgraph' can have multiple meanings. In this +context, 'subgraph' always means a 'node-induced subgraph'. Edge-induced +subgraph isomorphisms are not directly supported, but one should be +able to perform the check by making use of +:func:`line_graph `. For +subgraphs which are not induced, the term 'monomorphism' is preferred +over 'isomorphism'. + +Let ``G = (N, E)`` be a graph with a set of nodes ``N`` and set of edges ``E``. + +If ``G' = (N', E')`` is a subgraph, then: + ``N'`` is a subset of ``N`` and + ``E'`` is a subset of ``E``. + +If ``G' = (N', E')`` is a node-induced subgraph, then: + ``N'`` is a subset of ``N`` and + ``E'`` is the subset of edges in ``E`` relating nodes in ``N'``. + +If ``G' = (N', E')`` is an edge-induced subgraph, then: + ``N'`` is the subset of nodes in ``N`` related by edges in ``E'`` and + ``E'`` is a subset of ``E``. + +If ``G' = (N', E')`` is a monomorphism, then: + ``N'`` is a subset of ``N`` and + ``E'`` is a subset of the set of edges in ``E`` relating nodes in ``N'``. + +Note that if ``G'`` is a node-induced subgraph of ``G``, then it is always a +subgraph monomorphism of ``G``, but the opposite is not always true, as a +monomorphism can have fewer edges. + +References +---------- +[1] Luigi P. Cordella, Pasquale Foggia, Carlo Sansone, Mario Vento, + "A (Sub)Graph Isomorphism Algorithm for Matching Large Graphs", + IEEE Transactions on Pattern Analysis and Machine Intelligence, + vol. 26, no. 10, pp. 1367-1372, Oct., 2004. + http://ieeexplore.ieee.org/iel5/34/29305/01323804.pdf + +[2] L. P. Cordella, P. Foggia, C. Sansone, M. Vento, "An Improved + Algorithm for Matching Large Graphs", 3rd IAPR-TC15 Workshop + on Graph-based Representations in Pattern Recognition, Cuen, + pp. 149-159, 2001. + https://www.researchgate.net/publication/200034365_An_Improved_Algorithm_for_Matching_Large_Graphs + +See Also +-------- +:meth:`semantic_feasibility ` +:meth:`syntactic_feasibility ` + +Notes +----- + +The implementation handles both directed and undirected graphs as well +as multigraphs. + +In general, the subgraph isomorphism problem is NP-complete whereas the +graph isomorphism problem is most likely not NP-complete (although no +polynomial-time algorithm is known to exist). + +""" + +# This work was originally coded by Christopher Ellison +# as part of the Computational Mechanics Python (CMPy) project. +# James P. Crutchfield, principal investigator. +# Complexity Sciences Center and Physics Department, UC Davis. + +import sys + +import networkx as nx + +__all__ = ["GraphMatcher", "DiGraphMatcher"] + + +class GraphMatcher: + """Implementation of VF2 algorithm for matching undirected graphs. + + Suitable for Graph and MultiGraph instances. + """ + + def __init__(self, G1, G2): + """Initialize GraphMatcher. + + Parameters + ---------- + G1,G2: NetworkX Graph or MultiGraph instances. + The two graphs to check for isomorphism or monomorphism. + + Examples + -------- + To create a GraphMatcher which checks for syntactic feasibility: + + >>> from networkx.algorithms import isomorphism + >>> G1 = nx.path_graph(4) + >>> G2 = nx.path_graph(4) + >>> GM = isomorphism.GraphMatcher(G1, G2) + """ + if G1.is_directed() != G2.is_directed(): + raise nx.NetworkXError("G1 and G2 must have the same directedness") + + is_directed_matcher = self._is_directed_matcher() + if not is_directed_matcher and (G1.is_directed() or G2.is_directed()): + raise nx.NetworkXError( + "(Multi-)GraphMatcher() not defined for directed graphs. " + "Use (Multi-)DiGraphMatcher() instead." + ) + + if is_directed_matcher and not (G1.is_directed() and G2.is_directed()): + raise nx.NetworkXError( + "(Multi-)DiGraphMatcher() not defined for undirected graphs. " + "Use (Multi-)GraphMatcher() instead." + ) + + self.G1 = G1 + self.G2 = G2 + self.G1_nodes = set(G1.nodes()) + self.G2_nodes = set(G2.nodes()) + self.G2_node_order = {n: i for i, n in enumerate(G2)} + + # Set recursion limit. + self.old_recursion_limit = sys.getrecursionlimit() + expected_max_recursion_level = len(self.G2) + if self.old_recursion_limit < 1.5 * expected_max_recursion_level: + # Give some breathing room. + sys.setrecursionlimit(int(1.5 * expected_max_recursion_level)) + + # Declare that we will be searching for a graph-graph isomorphism. + self.test = "graph" + + # Initialize state + self.initialize() + + def _is_directed_matcher(self): + return False + + def reset_recursion_limit(self): + """Restores the recursion limit.""" + # TODO: + # Currently, we use recursion and set the recursion level higher. + # It would be nice to restore the level, but because the + # (Di)GraphMatcher classes make use of cyclic references, garbage + # collection will never happen when we define __del__() to + # restore the recursion level. The result is a memory leak. + # So for now, we do not automatically restore the recursion level, + # and instead provide a method to do this manually. Eventually, + # we should turn this into a non-recursive implementation. + sys.setrecursionlimit(self.old_recursion_limit) + + def candidate_pairs_iter(self): + """Iterator over candidate pairs of nodes in G1 and G2.""" + + # All computations are done using the current state! + + G1_nodes = self.G1_nodes + G2_nodes = self.G2_nodes + min_key = self.G2_node_order.__getitem__ + + # First we compute the inout-terminal sets. + T1_inout = [node for node in self.inout_1 if node not in self.core_1] + T2_inout = [node for node in self.inout_2 if node not in self.core_2] + + # If T1_inout and T2_inout are both nonempty. + # P(s) = T1_inout x {min T2_inout} + if T1_inout and T2_inout: + node_2 = min(T2_inout, key=min_key) + for node_1 in T1_inout: + yield node_1, node_2 + + else: + # If T1_inout and T2_inout were both empty.... + # P(s) = (N_1 - M_1) x {min (N_2 - M_2)} + # if not (T1_inout or T2_inout): # as suggested by [2], incorrect + if 1: # as inferred from [1], correct + # First we determine the candidate node for G2 + other_node = min(G2_nodes - set(self.core_2), key=min_key) + for node in self.G1: + if node not in self.core_1: + yield node, other_node + + # For all other cases, we don't have any candidate pairs. + + def initialize(self): + """Reinitializes the state of the algorithm. + + This method should be redefined if using something other than GMState. + If only subclassing GraphMatcher, a redefinition is not necessary. + + """ + + # core_1[n] contains the index of the node paired with n, which is m, + # provided n is in the mapping. + # core_2[m] contains the index of the node paired with m, which is n, + # provided m is in the mapping. + self.core_1 = {} + self.core_2 = {} + + # See the paper for definitions of M_x and T_x^{y} + + # inout_1[n] is non-zero if n is in M_1 or in T_1^{inout} + # inout_2[m] is non-zero if m is in M_2 or in T_2^{inout} + # + # The value stored is the depth of the SSR tree when the node became + # part of the corresponding set. + self.inout_1 = {} + self.inout_2 = {} + # Practically, these sets simply store the nodes in the subgraph. + + self.state = GMState(self) + + # Provide a convenient way to access the isomorphism mapping. + self.mapping = self.core_1.copy() + + def is_isomorphic(self): + """Returns True if G1 and G2 are isomorphic graphs.""" + + # Let's do two very quick checks! + # QUESTION: Should we call faster_graph_could_be_isomorphic(G1,G2)? + # For now, I just copy the code. + + # Check global properties + if self.G1.order() != self.G2.order(): + return False + + # Check local properties + d1 = sorted(d for n, d in self.G1.degree()) + d2 = sorted(d for n, d in self.G2.degree()) + if d1 != d2: + return False + + try: + x = next(self.isomorphisms_iter()) + return True + except StopIteration: + return False + + def isomorphisms_iter(self): + """Generator over isomorphisms between G1 and G2.""" + # Declare that we are looking for a graph-graph isomorphism. + self.test = "graph" + self.initialize() + yield from self.match() + + def match(self): + """Extends the isomorphism mapping. + + This function is called recursively to determine if a complete + isomorphism can be found between G1 and G2. It cleans up the class + variables after each recursive call. If an isomorphism is found, + we yield the mapping. + + """ + if len(self.core_1) == len(self.G2): + # Save the final mapping, otherwise garbage collection deletes it. + self.mapping = self.core_1.copy() + # The mapping is complete. + yield self.mapping + else: + for G1_node, G2_node in self.candidate_pairs_iter(): + if self.syntactic_feasibility(G1_node, G2_node): + if self.semantic_feasibility(G1_node, G2_node): + # Recursive call, adding the feasible state. + newstate = self.state.__class__(self, G1_node, G2_node) + yield from self.match() + + # restore data structures + newstate.restore() + + def semantic_feasibility(self, G1_node, G2_node): + """Returns True if adding (G1_node, G2_node) is semantically feasible. + + The semantic feasibility function should return True if it is + acceptable to add the candidate pair (G1_node, G2_node) to the current + partial isomorphism mapping. The logic should focus on semantic + information contained in the edge data or a formalized node class. + + By acceptable, we mean that the subsequent mapping can still become a + complete isomorphism mapping. Thus, if adding the candidate pair + definitely makes it so that the subsequent mapping cannot become a + complete isomorphism mapping, then this function must return False. + + The default semantic feasibility function always returns True. The + effect is that semantics are not considered in the matching of G1 + and G2. + + The semantic checks might differ based on the what type of test is + being performed. A keyword description of the test is stored in + self.test. Here is a quick description of the currently implemented + tests:: + + test='graph' + Indicates that the graph matcher is looking for a graph-graph + isomorphism. + + test='subgraph' + Indicates that the graph matcher is looking for a subgraph-graph + isomorphism such that a subgraph of G1 is isomorphic to G2. + + test='mono' + Indicates that the graph matcher is looking for a subgraph-graph + monomorphism such that a subgraph of G1 is monomorphic to G2. + + Any subclass which redefines semantic_feasibility() must maintain + the above form to keep the match() method functional. Implementations + should consider multigraphs. + """ + return True + + def subgraph_is_isomorphic(self): + """Returns `True` if a subgraph of ``G1`` is isomorphic to ``G2``. + + Examples + -------- + When creating the `GraphMatcher`, the order of the arguments is important + + >>> G = nx.Graph([("A", "B"), ("B", "C"), ("A", "C")]) + >>> H = nx.Graph([(0, 1), (1, 2), (0, 2), (1, 3), (0, 4)]) + + Check whether a subgraph of G is isomorphic to H: + + >>> isomatcher = nx.isomorphism.GraphMatcher(G, H) + >>> isomatcher.subgraph_is_isomorphic() + False + + Check whether a subgraph of H is isomorphic to G: + + >>> isomatcher = nx.isomorphism.GraphMatcher(H, G) + >>> isomatcher.subgraph_is_isomorphic() + True + """ + try: + x = next(self.subgraph_isomorphisms_iter()) + return True + except StopIteration: + return False + + def subgraph_is_monomorphic(self): + """Returns `True` if a subgraph of ``G1`` is monomorphic to ``G2``. + + Examples + -------- + When creating the `GraphMatcher`, the order of the arguments is important. + + >>> G = nx.Graph([("A", "B"), ("B", "C")]) + >>> H = nx.Graph([(0, 1), (1, 2), (0, 2)]) + + Check whether a subgraph of G is monomorphic to H: + + >>> isomatcher = nx.isomorphism.GraphMatcher(G, H) + >>> isomatcher.subgraph_is_monomorphic() + False + + Check whether a subgraph of H is monomorphic to G: + + >>> isomatcher = nx.isomorphism.GraphMatcher(H, G) + >>> isomatcher.subgraph_is_monomorphic() + True + """ + try: + x = next(self.subgraph_monomorphisms_iter()) + return True + except StopIteration: + return False + + def subgraph_isomorphisms_iter(self): + """Generator over isomorphisms between a subgraph of ``G1`` and ``G2``. + + Examples + -------- + When creating the `GraphMatcher`, the order of the arguments is important + + >>> G = nx.Graph([("A", "B"), ("B", "C"), ("A", "C")]) + >>> H = nx.Graph([(0, 1), (1, 2), (0, 2), (1, 3), (0, 4)]) + + Yield isomorphic mappings between ``H`` and subgraphs of ``G``: + + >>> isomatcher = nx.isomorphism.GraphMatcher(G, H) + >>> list(isomatcher.subgraph_isomorphisms_iter()) + [] + + Yield isomorphic mappings between ``G`` and subgraphs of ``H``: + + >>> isomatcher = nx.isomorphism.GraphMatcher(H, G) + >>> next(isomatcher.subgraph_isomorphisms_iter()) + {0: 'A', 1: 'B', 2: 'C'} + + """ + # Declare that we are looking for graph-subgraph isomorphism. + self.test = "subgraph" + self.initialize() + yield from self.match() + + def subgraph_monomorphisms_iter(self): + """Generator over monomorphisms between a subgraph of ``G1`` and ``G2``. + + Examples + -------- + When creating the `GraphMatcher`, the order of the arguments is important. + + >>> G = nx.Graph([("A", "B"), ("B", "C")]) + >>> H = nx.Graph([(0, 1), (1, 2), (0, 2)]) + + Yield monomorphic mappings between ``H`` and subgraphs of ``G``: + + >>> isomatcher = nx.isomorphism.GraphMatcher(G, H) + >>> list(isomatcher.subgraph_monomorphisms_iter()) + [] + + Yield monomorphic mappings between ``G`` and subgraphs of ``H``: + + >>> isomatcher = nx.isomorphism.GraphMatcher(H, G) + >>> next(isomatcher.subgraph_monomorphisms_iter()) + {0: 'A', 1: 'B', 2: 'C'} + """ + # Declare that we are looking for graph-subgraph monomorphism. + self.test = "mono" + self.initialize() + yield from self.match() + + def syntactic_feasibility(self, G1_node, G2_node): + """Returns True if adding (G1_node, G2_node) is syntactically feasible. + + This function returns True if it is adding the candidate pair + to the current partial isomorphism/monomorphism mapping is allowable. + The addition is allowable if the inclusion of the candidate pair does + not make it impossible for an isomorphism/monomorphism to be found. + """ + + # The VF2 algorithm was designed to work with graphs having, at most, + # one edge connecting any two nodes. This is not the case when + # dealing with an MultiGraphs. + # + # Basically, when we test the look-ahead rules R_neighbor, we will + # make sure that the number of edges are checked. We also add + # a R_self check to verify that the number of selfloops is acceptable. + # + # Users might be comparing Graph instances with MultiGraph instances. + # So the generic GraphMatcher class must work with MultiGraphs. + # Care must be taken since the value in the innermost dictionary is a + # singlet for Graph instances. For MultiGraphs, the value in the + # innermost dictionary is a list. + + ### + # Test at each step to get a return value as soon as possible. + ### + + # Look ahead 0 + + # R_self + + # The number of selfloops for G1_node must equal the number of + # self-loops for G2_node. Without this check, we would fail on + # R_neighbor at the next recursion level. But it is good to prune the + # search tree now. + + if self.test == "mono": + if self.G1.number_of_edges(G1_node, G1_node) < self.G2.number_of_edges( + G2_node, G2_node + ): + return False + else: + if self.G1.number_of_edges(G1_node, G1_node) != self.G2.number_of_edges( + G2_node, G2_node + ): + return False + + # R_neighbor + + # For each neighbor n' of n in the partial mapping, the corresponding + # node m' is a neighbor of m, and vice versa. Also, the number of + # edges must be equal. + if self.test != "mono": + for neighbor in self.G1[G1_node]: + if neighbor in self.core_1: + if self.core_1[neighbor] not in self.G2[G2_node]: + return False + elif self.G1.number_of_edges( + neighbor, G1_node + ) != self.G2.number_of_edges(self.core_1[neighbor], G2_node): + return False + + for neighbor in self.G2[G2_node]: + if neighbor in self.core_2: + if self.core_2[neighbor] not in self.G1[G1_node]: + return False + elif self.test == "mono": + if self.G1.number_of_edges( + self.core_2[neighbor], G1_node + ) < self.G2.number_of_edges(neighbor, G2_node): + return False + else: + if self.G1.number_of_edges( + self.core_2[neighbor], G1_node + ) != self.G2.number_of_edges(neighbor, G2_node): + return False + + if self.test != "mono": + # Look ahead 1 + + # R_terminout + # The number of neighbors of n in T_1^{inout} is equal to the + # number of neighbors of m that are in T_2^{inout}, and vice versa. + num1 = 0 + for neighbor in self.G1[G1_node]: + if (neighbor in self.inout_1) and (neighbor not in self.core_1): + num1 += 1 + num2 = 0 + for neighbor in self.G2[G2_node]: + if (neighbor in self.inout_2) and (neighbor not in self.core_2): + num2 += 1 + if self.test == "graph": + if num1 != num2: + return False + else: # self.test == 'subgraph' + if not (num1 >= num2): + return False + + # Look ahead 2 + + # R_new + + # The number of neighbors of n that are neither in the core_1 nor + # T_1^{inout} is equal to the number of neighbors of m + # that are neither in core_2 nor T_2^{inout}. + num1 = 0 + for neighbor in self.G1[G1_node]: + if neighbor not in self.inout_1: + num1 += 1 + num2 = 0 + for neighbor in self.G2[G2_node]: + if neighbor not in self.inout_2: + num2 += 1 + if self.test == "graph": + if num1 != num2: + return False + else: # self.test == 'subgraph' + if not (num1 >= num2): + return False + + # Otherwise, this node pair is syntactically feasible! + return True + + +class DiGraphMatcher(GraphMatcher): + """Implementation of VF2 algorithm for matching directed graphs. + + Suitable for DiGraph and MultiDiGraph instances. + """ + + def __init__(self, G1, G2): + """Initialize DiGraphMatcher. + + G1 and G2 should be nx.Graph or nx.MultiGraph instances. + + Examples + -------- + To create a GraphMatcher which checks for syntactic feasibility: + + >>> from networkx.algorithms import isomorphism + >>> G1 = nx.DiGraph(nx.path_graph(4, create_using=nx.DiGraph())) + >>> G2 = nx.DiGraph(nx.path_graph(4, create_using=nx.DiGraph())) + >>> DiGM = isomorphism.DiGraphMatcher(G1, G2) + """ + super().__init__(G1, G2) + + def _is_directed_matcher(self): + return True + + def candidate_pairs_iter(self): + """Iterator over candidate pairs of nodes in G1 and G2.""" + + # All computations are done using the current state! + + G1_nodes = self.G1_nodes + G2_nodes = self.G2_nodes + min_key = self.G2_node_order.__getitem__ + + # First we compute the out-terminal sets. + T1_out = [node for node in self.out_1 if node not in self.core_1] + T2_out = [node for node in self.out_2 if node not in self.core_2] + + # If T1_out and T2_out are both nonempty. + # P(s) = T1_out x {min T2_out} + if T1_out and T2_out: + node_2 = min(T2_out, key=min_key) + for node_1 in T1_out: + yield node_1, node_2 + + # If T1_out and T2_out were both empty.... + # We compute the in-terminal sets. + + # elif not (T1_out or T2_out): # as suggested by [2], incorrect + else: # as suggested by [1], correct + T1_in = [node for node in self.in_1 if node not in self.core_1] + T2_in = [node for node in self.in_2 if node not in self.core_2] + + # If T1_in and T2_in are both nonempty. + # P(s) = T1_out x {min T2_out} + if T1_in and T2_in: + node_2 = min(T2_in, key=min_key) + for node_1 in T1_in: + yield node_1, node_2 + + # If all terminal sets are empty... + # P(s) = (N_1 - M_1) x {min (N_2 - M_2)} + + # elif not (T1_in or T2_in): # as suggested by [2], incorrect + else: # as inferred from [1], correct + node_2 = min(G2_nodes - set(self.core_2), key=min_key) + for node_1 in G1_nodes: + if node_1 not in self.core_1: + yield node_1, node_2 + + # For all other cases, we don't have any candidate pairs. + + def initialize(self): + """Reinitializes the state of the algorithm. + + This method should be redefined if using something other than DiGMState. + If only subclassing GraphMatcher, a redefinition is not necessary. + """ + + # core_1[n] contains the index of the node paired with n, which is m, + # provided n is in the mapping. + # core_2[m] contains the index of the node paired with m, which is n, + # provided m is in the mapping. + self.core_1 = {} + self.core_2 = {} + + # See the paper for definitions of M_x and T_x^{y} + + # in_1[n] is non-zero if n is in M_1 or in T_1^{in} + # out_1[n] is non-zero if n is in M_1 or in T_1^{out} + # + # in_2[m] is non-zero if m is in M_2 or in T_2^{in} + # out_2[m] is non-zero if m is in M_2 or in T_2^{out} + # + # The value stored is the depth of the search tree when the node became + # part of the corresponding set. + self.in_1 = {} + self.in_2 = {} + self.out_1 = {} + self.out_2 = {} + + self.state = DiGMState(self) + + # Provide a convenient way to access the isomorphism mapping. + self.mapping = self.core_1.copy() + + def syntactic_feasibility(self, G1_node, G2_node): + """Returns True if adding (G1_node, G2_node) is syntactically feasible. + + This function returns True if it is adding the candidate pair + to the current partial isomorphism/monomorphism mapping is allowable. + The addition is allowable if the inclusion of the candidate pair does + not make it impossible for an isomorphism/monomorphism to be found. + """ + + # The VF2 algorithm was designed to work with graphs having, at most, + # one edge connecting any two nodes. This is not the case when + # dealing with an MultiGraphs. + # + # Basically, when we test the look-ahead rules R_pred and R_succ, we + # will make sure that the number of edges are checked. We also add + # a R_self check to verify that the number of selfloops is acceptable. + + # Users might be comparing DiGraph instances with MultiDiGraph + # instances. So the generic DiGraphMatcher class must work with + # MultiDiGraphs. Care must be taken since the value in the innermost + # dictionary is a singlet for DiGraph instances. For MultiDiGraphs, + # the value in the innermost dictionary is a list. + + ### + # Test at each step to get a return value as soon as possible. + ### + + # Look ahead 0 + + # R_self + + # The number of selfloops for G1_node must equal the number of + # self-loops for G2_node. Without this check, we would fail on R_pred + # at the next recursion level. This should prune the tree even further. + if self.test == "mono": + if self.G1.number_of_edges(G1_node, G1_node) < self.G2.number_of_edges( + G2_node, G2_node + ): + return False + else: + if self.G1.number_of_edges(G1_node, G1_node) != self.G2.number_of_edges( + G2_node, G2_node + ): + return False + + # R_pred + + # For each predecessor n' of n in the partial mapping, the + # corresponding node m' is a predecessor of m, and vice versa. Also, + # the number of edges must be equal + if self.test != "mono": + for predecessor in self.G1.pred[G1_node]: + if predecessor in self.core_1: + if self.core_1[predecessor] not in self.G2.pred[G2_node]: + return False + elif self.G1.number_of_edges( + predecessor, G1_node + ) != self.G2.number_of_edges(self.core_1[predecessor], G2_node): + return False + + for predecessor in self.G2.pred[G2_node]: + if predecessor in self.core_2: + if self.core_2[predecessor] not in self.G1.pred[G1_node]: + return False + elif self.test == "mono": + if self.G1.number_of_edges( + self.core_2[predecessor], G1_node + ) < self.G2.number_of_edges(predecessor, G2_node): + return False + else: + if self.G1.number_of_edges( + self.core_2[predecessor], G1_node + ) != self.G2.number_of_edges(predecessor, G2_node): + return False + + # R_succ + + # For each successor n' of n in the partial mapping, the corresponding + # node m' is a successor of m, and vice versa. Also, the number of + # edges must be equal. + if self.test != "mono": + for successor in self.G1[G1_node]: + if successor in self.core_1: + if self.core_1[successor] not in self.G2[G2_node]: + return False + elif self.G1.number_of_edges( + G1_node, successor + ) != self.G2.number_of_edges(G2_node, self.core_1[successor]): + return False + + for successor in self.G2[G2_node]: + if successor in self.core_2: + if self.core_2[successor] not in self.G1[G1_node]: + return False + elif self.test == "mono": + if self.G1.number_of_edges( + G1_node, self.core_2[successor] + ) < self.G2.number_of_edges(G2_node, successor): + return False + else: + if self.G1.number_of_edges( + G1_node, self.core_2[successor] + ) != self.G2.number_of_edges(G2_node, successor): + return False + + if self.test != "mono": + # Look ahead 1 + + # R_termin + # The number of predecessors of n that are in T_1^{in} is equal to the + # number of predecessors of m that are in T_2^{in}. + num1 = 0 + for predecessor in self.G1.pred[G1_node]: + if (predecessor in self.in_1) and (predecessor not in self.core_1): + num1 += 1 + num2 = 0 + for predecessor in self.G2.pred[G2_node]: + if (predecessor in self.in_2) and (predecessor not in self.core_2): + num2 += 1 + if self.test == "graph": + if num1 != num2: + return False + else: # self.test == 'subgraph' + if not (num1 >= num2): + return False + + # The number of successors of n that are in T_1^{in} is equal to the + # number of successors of m that are in T_2^{in}. + num1 = 0 + for successor in self.G1[G1_node]: + if (successor in self.in_1) and (successor not in self.core_1): + num1 += 1 + num2 = 0 + for successor in self.G2[G2_node]: + if (successor in self.in_2) and (successor not in self.core_2): + num2 += 1 + if self.test == "graph": + if num1 != num2: + return False + else: # self.test == 'subgraph' + if not (num1 >= num2): + return False + + # R_termout + + # The number of predecessors of n that are in T_1^{out} is equal to the + # number of predecessors of m that are in T_2^{out}. + num1 = 0 + for predecessor in self.G1.pred[G1_node]: + if (predecessor in self.out_1) and (predecessor not in self.core_1): + num1 += 1 + num2 = 0 + for predecessor in self.G2.pred[G2_node]: + if (predecessor in self.out_2) and (predecessor not in self.core_2): + num2 += 1 + if self.test == "graph": + if num1 != num2: + return False + else: # self.test == 'subgraph' + if not (num1 >= num2): + return False + + # The number of successors of n that are in T_1^{out} is equal to the + # number of successors of m that are in T_2^{out}. + num1 = 0 + for successor in self.G1[G1_node]: + if (successor in self.out_1) and (successor not in self.core_1): + num1 += 1 + num2 = 0 + for successor in self.G2[G2_node]: + if (successor in self.out_2) and (successor not in self.core_2): + num2 += 1 + if self.test == "graph": + if num1 != num2: + return False + else: # self.test == 'subgraph' + if not (num1 >= num2): + return False + + # Look ahead 2 + + # R_new + + # The number of predecessors of n that are neither in the core_1 nor + # T_1^{in} nor T_1^{out} is equal to the number of predecessors of m + # that are neither in core_2 nor T_2^{in} nor T_2^{out}. + num1 = 0 + for predecessor in self.G1.pred[G1_node]: + if (predecessor not in self.in_1) and (predecessor not in self.out_1): + num1 += 1 + num2 = 0 + for predecessor in self.G2.pred[G2_node]: + if (predecessor not in self.in_2) and (predecessor not in self.out_2): + num2 += 1 + if self.test == "graph": + if num1 != num2: + return False + else: # self.test == 'subgraph' + if not (num1 >= num2): + return False + + # The number of successors of n that are neither in the core_1 nor + # T_1^{in} nor T_1^{out} is equal to the number of successors of m + # that are neither in core_2 nor T_2^{in} nor T_2^{out}. + num1 = 0 + for successor in self.G1[G1_node]: + if (successor not in self.in_1) and (successor not in self.out_1): + num1 += 1 + num2 = 0 + for successor in self.G2[G2_node]: + if (successor not in self.in_2) and (successor not in self.out_2): + num2 += 1 + if self.test == "graph": + if num1 != num2: + return False + else: # self.test == 'subgraph' + if not (num1 >= num2): + return False + + # Otherwise, this node pair is syntactically feasible! + return True + + def subgraph_is_isomorphic(self): + """Returns `True` if a subgraph of ``G1`` is isomorphic to ``G2``. + + Examples + -------- + When creating the `DiGraphMatcher`, the order of the arguments is important + + >>> G = nx.DiGraph([("A", "B"), ("B", "A"), ("B", "C"), ("C", "B")]) + >>> H = nx.DiGraph(nx.path_graph(5)) + + Check whether a subgraph of G is isomorphic to H: + + >>> isomatcher = nx.isomorphism.DiGraphMatcher(G, H) + >>> isomatcher.subgraph_is_isomorphic() + False + + Check whether a subgraph of H is isomorphic to G: + + >>> isomatcher = nx.isomorphism.DiGraphMatcher(H, G) + >>> isomatcher.subgraph_is_isomorphic() + True + """ + return super().subgraph_is_isomorphic() + + def subgraph_is_monomorphic(self): + """Returns `True` if a subgraph of ``G1`` is monomorphic to ``G2``. + + Examples + -------- + When creating the `DiGraphMatcher`, the order of the arguments is important. + + >>> G = nx.DiGraph([("A", "B"), ("C", "B"), ("D", "C")]) + >>> H = nx.DiGraph([(0, 1), (1, 2), (2, 3), (3, 2)]) + + Check whether a subgraph of G is monomorphic to H: + + >>> isomatcher = nx.isomorphism.DiGraphMatcher(G, H) + >>> isomatcher.subgraph_is_monomorphic() + False + + Check whether a subgraph of H is isomorphic to G: + + >>> isomatcher = nx.isomorphism.DiGraphMatcher(H, G) + >>> isomatcher.subgraph_is_monomorphic() + True + """ + return super().subgraph_is_monomorphic() + + def subgraph_isomorphisms_iter(self): + """Generator over isomorphisms between a subgraph of ``G1`` and ``G2``. + + Examples + -------- + When creating the `DiGraphMatcher`, the order of the arguments is important + + >>> G = nx.DiGraph([("B", "C"), ("C", "B"), ("C", "D"), ("D", "C")]) + >>> H = nx.DiGraph(nx.path_graph(5)) + + Yield isomorphic mappings between ``H`` and subgraphs of ``G``: + + >>> isomatcher = nx.isomorphism.DiGraphMatcher(G, H) + >>> list(isomatcher.subgraph_isomorphisms_iter()) + [] + + Yield isomorphic mappings between ``G`` and subgraphs of ``H``: + + >>> isomatcher = nx.isomorphism.DiGraphMatcher(H, G) + >>> next(isomatcher.subgraph_isomorphisms_iter()) + {0: 'B', 1: 'C', 2: 'D'} + """ + return super().subgraph_isomorphisms_iter() + + def subgraph_monomorphisms_iter(self): + """Generator over monomorphisms between a subgraph of ``G1`` and ``G2``. + + Examples + -------- + When creating the `DiGraphMatcher`, the order of the arguments is important. + + >>> G = nx.DiGraph([("A", "B"), ("C", "B"), ("D", "C")]) + >>> H = nx.DiGraph([(0, 1), (1, 2), (2, 3), (3, 2)]) + + Yield monomorphic mappings between ``H`` and subgraphs of ``G``: + + >>> isomatcher = nx.isomorphism.DiGraphMatcher(G, H) + >>> list(isomatcher.subgraph_monomorphisms_iter()) + [] + + Yield monomorphic mappings between ``G`` and subgraphs of ``H``: + + >>> isomatcher = nx.isomorphism.DiGraphMatcher(H, G) + >>> next(isomatcher.subgraph_monomorphisms_iter()) + {3: 'A', 2: 'B', 1: 'C', 0: 'D'} + """ + return super().subgraph_monomorphisms_iter() + + +class GMState: + """Internal representation of state for the GraphMatcher class. + + This class is used internally by the GraphMatcher class. It is used + only to store state specific data. There will be at most G2.order() of + these objects in memory at a time, due to the depth-first search + strategy employed by the VF2 algorithm. + """ + + def __init__(self, GM, G1_node=None, G2_node=None): + """Initializes GMState object. + + Pass in the GraphMatcher to which this GMState belongs and the + new node pair that will be added to the GraphMatcher's current + isomorphism mapping. + """ + self.GM = GM + + # Initialize the last stored node pair. + self.G1_node = None + self.G2_node = None + self.depth = len(GM.core_1) + + if G1_node is None or G2_node is None: + # Then we reset the class variables + GM.core_1 = {} + GM.core_2 = {} + GM.inout_1 = {} + GM.inout_2 = {} + + # Watch out! G1_node == 0 should evaluate to True. + if G1_node is not None and G2_node is not None: + # Add the node pair to the isomorphism mapping. + GM.core_1[G1_node] = G2_node + GM.core_2[G2_node] = G1_node + + # Store the node that was added last. + self.G1_node = G1_node + self.G2_node = G2_node + + # Now we must update the other two vectors. + # We will add only if it is not in there already! + self.depth = len(GM.core_1) + + # First we add the new nodes... + if G1_node not in GM.inout_1: + GM.inout_1[G1_node] = self.depth + if G2_node not in GM.inout_2: + GM.inout_2[G2_node] = self.depth + + # Now we add every other node... + + # Updates for T_1^{inout} + new_nodes = set() + for node in GM.core_1: + new_nodes.update( + [neighbor for neighbor in GM.G1[node] if neighbor not in GM.core_1] + ) + for node in new_nodes: + if node not in GM.inout_1: + GM.inout_1[node] = self.depth + + # Updates for T_2^{inout} + new_nodes = set() + for node in GM.core_2: + new_nodes.update( + [neighbor for neighbor in GM.G2[node] if neighbor not in GM.core_2] + ) + for node in new_nodes: + if node not in GM.inout_2: + GM.inout_2[node] = self.depth + + def restore(self): + """Deletes the GMState object and restores the class variables.""" + # First we remove the node that was added from the core vectors. + # Watch out! G1_node == 0 should evaluate to True. + if self.G1_node is not None and self.G2_node is not None: + del self.GM.core_1[self.G1_node] + del self.GM.core_2[self.G2_node] + + # Now we revert the other two vectors. + # Thus, we delete all entries which have this depth level. + for vector in (self.GM.inout_1, self.GM.inout_2): + for node in list(vector.keys()): + if vector[node] == self.depth: + del vector[node] + + +class DiGMState: + """Internal representation of state for the DiGraphMatcher class. + + This class is used internally by the DiGraphMatcher class. It is used + only to store state specific data. There will be at most G2.order() of + these objects in memory at a time, due to the depth-first search + strategy employed by the VF2 algorithm. + + """ + + def __init__(self, GM, G1_node=None, G2_node=None): + """Initializes DiGMState object. + + Pass in the DiGraphMatcher to which this DiGMState belongs and the + new node pair that will be added to the GraphMatcher's current + isomorphism mapping. + """ + self.GM = GM + + # Initialize the last stored node pair. + self.G1_node = None + self.G2_node = None + self.depth = len(GM.core_1) + + if G1_node is None or G2_node is None: + # Then we reset the class variables + GM.core_1 = {} + GM.core_2 = {} + GM.in_1 = {} + GM.in_2 = {} + GM.out_1 = {} + GM.out_2 = {} + + # Watch out! G1_node == 0 should evaluate to True. + if G1_node is not None and G2_node is not None: + # Add the node pair to the isomorphism mapping. + GM.core_1[G1_node] = G2_node + GM.core_2[G2_node] = G1_node + + # Store the node that was added last. + self.G1_node = G1_node + self.G2_node = G2_node + + # Now we must update the other four vectors. + # We will add only if it is not in there already! + self.depth = len(GM.core_1) + + # First we add the new nodes... + for vector in (GM.in_1, GM.out_1): + if G1_node not in vector: + vector[G1_node] = self.depth + for vector in (GM.in_2, GM.out_2): + if G2_node not in vector: + vector[G2_node] = self.depth + + # Now we add every other node... + + # Updates for T_1^{in} + new_nodes = set() + for node in GM.core_1: + new_nodes.update( + [ + predecessor + for predecessor in GM.G1.predecessors(node) + if predecessor not in GM.core_1 + ] + ) + for node in new_nodes: + if node not in GM.in_1: + GM.in_1[node] = self.depth + + # Updates for T_2^{in} + new_nodes = set() + for node in GM.core_2: + new_nodes.update( + [ + predecessor + for predecessor in GM.G2.predecessors(node) + if predecessor not in GM.core_2 + ] + ) + for node in new_nodes: + if node not in GM.in_2: + GM.in_2[node] = self.depth + + # Updates for T_1^{out} + new_nodes = set() + for node in GM.core_1: + new_nodes.update( + [ + successor + for successor in GM.G1.successors(node) + if successor not in GM.core_1 + ] + ) + for node in new_nodes: + if node not in GM.out_1: + GM.out_1[node] = self.depth + + # Updates for T_2^{out} + new_nodes = set() + for node in GM.core_2: + new_nodes.update( + [ + successor + for successor in GM.G2.successors(node) + if successor not in GM.core_2 + ] + ) + for node in new_nodes: + if node not in GM.out_2: + GM.out_2[node] = self.depth + + def restore(self): + """Deletes the DiGMState object and restores the class variables.""" + + # First we remove the node that was added from the core vectors. + # Watch out! G1_node == 0 should evaluate to True. + if self.G1_node is not None and self.G2_node is not None: + del self.GM.core_1[self.G1_node] + del self.GM.core_2[self.G2_node] + + # Now we revert the other four vectors. + # Thus, we delete all entries which have this depth level. + for vector in (self.GM.in_1, self.GM.in_2, self.GM.out_1, self.GM.out_2): + for node in list(vector.keys()): + if vector[node] == self.depth: + del vector[node] diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/matchhelpers.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/matchhelpers.py new file mode 100644 index 0000000000000000000000000000000000000000..b48820d4d1896a8be1153f3e82feb2c3a5239761 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/matchhelpers.py @@ -0,0 +1,352 @@ +"""Functions which help end users define customize node_match and +edge_match functions to use during isomorphism checks. +""" + +import math +import types +from itertools import permutations + +__all__ = [ + "categorical_node_match", + "categorical_edge_match", + "categorical_multiedge_match", + "numerical_node_match", + "numerical_edge_match", + "numerical_multiedge_match", + "generic_node_match", + "generic_edge_match", + "generic_multiedge_match", +] + + +def copyfunc(f, name=None): + """Returns a deepcopy of a function.""" + return types.FunctionType( + f.__code__, f.__globals__, name or f.__name__, f.__defaults__, f.__closure__ + ) + + +def allclose(x, y, rtol=1.0000000000000001e-05, atol=1e-08): + """Returns True if x and y are sufficiently close, elementwise. + + Parameters + ---------- + rtol : float + The relative error tolerance. + atol : float + The absolute error tolerance. + + """ + # assume finite weights, see numpy.allclose() for reference + return all(math.isclose(xi, yi, rel_tol=rtol, abs_tol=atol) for xi, yi in zip(x, y)) + + +categorical_doc = """ +Returns a comparison function for a categorical node attribute. + +The value(s) of the attr(s) must be hashable and comparable via the == +operator since they are placed into a set([]) object. If the sets from +G1 and G2 are the same, then the constructed function returns True. + +Parameters +---------- +attr : string | list + The categorical node attribute to compare, or a list of categorical + node attributes to compare. +default : value | list + The default value for the categorical node attribute, or a list of + default values for the categorical node attributes. + +Returns +------- +match : function + The customized, categorical `node_match` function. + +Examples +-------- +>>> import networkx.algorithms.isomorphism as iso +>>> nm = iso.categorical_node_match("size", 1) +>>> nm = iso.categorical_node_match(["color", "size"], ["red", 2]) + +""" + + +def categorical_node_match(attr, default): + if isinstance(attr, str): + + def match(data1, data2): + return data1.get(attr, default) == data2.get(attr, default) + + else: + attrs = list(zip(attr, default)) # Python 3 + + def match(data1, data2): + return all(data1.get(attr, d) == data2.get(attr, d) for attr, d in attrs) + + return match + + +categorical_edge_match = copyfunc(categorical_node_match, "categorical_edge_match") + + +def categorical_multiedge_match(attr, default): + if isinstance(attr, str): + + def match(datasets1, datasets2): + values1 = {data.get(attr, default) for data in datasets1.values()} + values2 = {data.get(attr, default) for data in datasets2.values()} + return values1 == values2 + + else: + attrs = list(zip(attr, default)) # Python 3 + + def match(datasets1, datasets2): + values1 = set() + for data1 in datasets1.values(): + x = tuple(data1.get(attr, d) for attr, d in attrs) + values1.add(x) + values2 = set() + for data2 in datasets2.values(): + x = tuple(data2.get(attr, d) for attr, d in attrs) + values2.add(x) + return values1 == values2 + + return match + + +# Docstrings for categorical functions. +categorical_node_match.__doc__ = categorical_doc +categorical_edge_match.__doc__ = categorical_doc.replace("node", "edge") +tmpdoc = categorical_doc.replace("node", "edge") +tmpdoc = tmpdoc.replace("categorical_edge_match", "categorical_multiedge_match") +categorical_multiedge_match.__doc__ = tmpdoc + + +numerical_doc = """ +Returns a comparison function for a numerical node attribute. + +The value(s) of the attr(s) must be numerical and sortable. If the +sorted list of values from G1 and G2 are the same within some +tolerance, then the constructed function returns True. + +Parameters +---------- +attr : string | list + The numerical node attribute to compare, or a list of numerical + node attributes to compare. +default : value | list + The default value for the numerical node attribute, or a list of + default values for the numerical node attributes. +rtol : float + The relative error tolerance. +atol : float + The absolute error tolerance. + +Returns +------- +match : function + The customized, numerical `node_match` function. + +Examples +-------- +>>> import networkx.algorithms.isomorphism as iso +>>> nm = iso.numerical_node_match("weight", 1.0) +>>> nm = iso.numerical_node_match(["weight", "linewidth"], [0.25, 0.5]) + +""" + + +def numerical_node_match(attr, default, rtol=1.0000000000000001e-05, atol=1e-08): + if isinstance(attr, str): + + def match(data1, data2): + return math.isclose( + data1.get(attr, default), + data2.get(attr, default), + rel_tol=rtol, + abs_tol=atol, + ) + + else: + attrs = list(zip(attr, default)) # Python 3 + + def match(data1, data2): + values1 = [data1.get(attr, d) for attr, d in attrs] + values2 = [data2.get(attr, d) for attr, d in attrs] + return allclose(values1, values2, rtol=rtol, atol=atol) + + return match + + +numerical_edge_match = copyfunc(numerical_node_match, "numerical_edge_match") + + +def numerical_multiedge_match(attr, default, rtol=1.0000000000000001e-05, atol=1e-08): + if isinstance(attr, str): + + def match(datasets1, datasets2): + values1 = sorted(data.get(attr, default) for data in datasets1.values()) + values2 = sorted(data.get(attr, default) for data in datasets2.values()) + return allclose(values1, values2, rtol=rtol, atol=atol) + + else: + attrs = list(zip(attr, default)) # Python 3 + + def match(datasets1, datasets2): + values1 = [] + for data1 in datasets1.values(): + x = tuple(data1.get(attr, d) for attr, d in attrs) + values1.append(x) + values2 = [] + for data2 in datasets2.values(): + x = tuple(data2.get(attr, d) for attr, d in attrs) + values2.append(x) + values1.sort() + values2.sort() + for xi, yi in zip(values1, values2): + if not allclose(xi, yi, rtol=rtol, atol=atol): + return False + else: + return True + + return match + + +# Docstrings for numerical functions. +numerical_node_match.__doc__ = numerical_doc +numerical_edge_match.__doc__ = numerical_doc.replace("node", "edge") +tmpdoc = numerical_doc.replace("node", "edge") +tmpdoc = tmpdoc.replace("numerical_edge_match", "numerical_multiedge_match") +numerical_multiedge_match.__doc__ = tmpdoc + + +generic_doc = """ +Returns a comparison function for a generic attribute. + +The value(s) of the attr(s) are compared using the specified +operators. If all the attributes are equal, then the constructed +function returns True. + +Parameters +---------- +attr : string | list + The node attribute to compare, or a list of node attributes + to compare. +default : value | list + The default value for the node attribute, or a list of + default values for the node attributes. +op : callable | list + The operator to use when comparing attribute values, or a list + of operators to use when comparing values for each attribute. + +Returns +------- +match : function + The customized, generic `node_match` function. + +Examples +-------- +>>> from operator import eq +>>> from math import isclose +>>> from networkx.algorithms.isomorphism import generic_node_match +>>> nm = generic_node_match("weight", 1.0, isclose) +>>> nm = generic_node_match("color", "red", eq) +>>> nm = generic_node_match(["weight", "color"], [1.0, "red"], [isclose, eq]) + +""" + + +def generic_node_match(attr, default, op): + if isinstance(attr, str): + + def match(data1, data2): + return op(data1.get(attr, default), data2.get(attr, default)) + + else: + attrs = list(zip(attr, default, op)) # Python 3 + + def match(data1, data2): + for attr, d, operator in attrs: + if not operator(data1.get(attr, d), data2.get(attr, d)): + return False + else: + return True + + return match + + +generic_edge_match = copyfunc(generic_node_match, "generic_edge_match") + + +def generic_multiedge_match(attr, default, op): + """Returns a comparison function for a generic attribute. + + The value(s) of the attr(s) are compared using the specified + operators. If all the attributes are equal, then the constructed + function returns True. Potentially, the constructed edge_match + function can be slow since it must verify that no isomorphism + exists between the multiedges before it returns False. + + Parameters + ---------- + attr : string | list + The edge attribute to compare, or a list of node attributes + to compare. + default : value | list + The default value for the edge attribute, or a list of + default values for the edgeattributes. + op : callable | list + The operator to use when comparing attribute values, or a list + of operators to use when comparing values for each attribute. + + Returns + ------- + match : function + The customized, generic `edge_match` function. + + Examples + -------- + >>> from operator import eq + >>> from math import isclose + >>> from networkx.algorithms.isomorphism import generic_node_match + >>> nm = generic_node_match("weight", 1.0, isclose) + >>> nm = generic_node_match("color", "red", eq) + >>> nm = generic_node_match(["weight", "color"], [1.0, "red"], [isclose, eq]) + + """ + + # This is slow, but generic. + # We must test every possible isomorphism between the edges. + if isinstance(attr, str): + attr = [attr] + default = [default] + op = [op] + attrs = list(zip(attr, default)) # Python 3 + + def match(datasets1, datasets2): + values1 = [] + for data1 in datasets1.values(): + x = tuple(data1.get(attr, d) for attr, d in attrs) + values1.append(x) + values2 = [] + for data2 in datasets2.values(): + x = tuple(data2.get(attr, d) for attr, d in attrs) + values2.append(x) + for vals2 in permutations(values2): + for xi, yi in zip(values1, vals2): + if not all(map(lambda x, y, z: z(x, y), xi, yi, op)): + # This is not an isomorphism, go to next permutation. + break + else: + # Then we found an isomorphism. + return True + else: + # Then there are no isomorphisms between the multiedges. + return False + + return match + + +# Docstrings for numerical functions. +generic_node_match.__doc__ = generic_doc +generic_edge_match.__doc__ = generic_doc.replace("node", "edge") diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/temporalisomorphvf2.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/temporalisomorphvf2.py new file mode 100644 index 0000000000000000000000000000000000000000..62cacc77887efa99026c117687bb9ad82cebd4dd --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/temporalisomorphvf2.py @@ -0,0 +1,308 @@ +""" +***************************** +Time-respecting VF2 Algorithm +***************************** + +An extension of the VF2 algorithm for time-respecting graph isomorphism +testing in temporal graphs. + +A temporal graph is one in which edges contain a datetime attribute, +denoting when interaction occurred between the incident nodes. A +time-respecting subgraph of a temporal graph is a subgraph such that +all interactions incident to a node occurred within a time threshold, +delta, of each other. A directed time-respecting subgraph has the +added constraint that incoming interactions to a node must precede +outgoing interactions from the same node - this enforces a sense of +directed flow. + +Introduction +------------ + +The TimeRespectingGraphMatcher and TimeRespectingDiGraphMatcher +extend the GraphMatcher and DiGraphMatcher classes, respectively, +to include temporal constraints on matches. This is achieved through +a semantic check, via the semantic_feasibility() function. + +As well as including G1 (the graph in which to seek embeddings) and +G2 (the subgraph structure of interest), the name of the temporal +attribute on the edges and the time threshold, delta, must be supplied +as arguments to the matching constructors. + +A delta of zero is the strictest temporal constraint on the match - +only embeddings in which all interactions occur at the same time will +be returned. A delta of one day will allow embeddings in which +adjacent interactions occur up to a day apart. + +Examples +-------- + +Examples will be provided when the datetime type has been incorporated. + + +Temporal Subgraph Isomorphism +----------------------------- + +A brief discussion of the somewhat diverse current literature will be +included here. + +References +---------- + +[1] Redmond, U. and Cunningham, P. Temporal subgraph isomorphism. In: +The 2013 IEEE/ACM International Conference on Advances in Social +Networks Analysis and Mining (ASONAM). Niagara Falls, Canada; 2013: +pages 1451 - 1452. [65] + +For a discussion of the literature on temporal networks: + +[3] P. Holme and J. Saramaki. Temporal networks. Physics Reports, +519(3):97–125, 2012. + +Notes +----- + +Handles directed and undirected graphs and graphs with parallel edges. + +""" + +import networkx as nx + +from .isomorphvf2 import DiGraphMatcher, GraphMatcher + +__all__ = ["TimeRespectingGraphMatcher", "TimeRespectingDiGraphMatcher"] + + +class TimeRespectingGraphMatcher(GraphMatcher): + def __init__(self, G1, G2, temporal_attribute_name, delta): + """Initialize TimeRespectingGraphMatcher. + + G1 and G2 should be nx.Graph or nx.MultiGraph instances. + + Examples + -------- + To create a TimeRespectingGraphMatcher which checks for + syntactic and semantic feasibility: + + >>> from networkx.algorithms import isomorphism + >>> from datetime import timedelta + >>> G1 = nx.Graph(nx.path_graph(4, create_using=nx.Graph())) + + >>> G2 = nx.Graph(nx.path_graph(4, create_using=nx.Graph())) + + >>> GM = isomorphism.TimeRespectingGraphMatcher( + ... G1, G2, "date", timedelta(days=1) + ... ) + """ + self.temporal_attribute_name = temporal_attribute_name + self.delta = delta + super().__init__(G1, G2) + + def one_hop(self, Gx, Gx_node, neighbors): + """ + Edges one hop out from a node in the mapping should be + time-respecting with respect to each other. + """ + dates = [] + for n in neighbors: + if isinstance(Gx, nx.Graph): # Graph G[u][v] returns the data dictionary. + dates.append(Gx[Gx_node][n][self.temporal_attribute_name]) + else: # MultiGraph G[u][v] returns a dictionary of key -> data dictionary. + for edge in Gx[Gx_node][ + n + ].values(): # Iterates all edges between node pair. + dates.append(edge[self.temporal_attribute_name]) + if any(x is None for x in dates): + raise ValueError("Datetime not supplied for at least one edge.") + return not dates or max(dates) - min(dates) <= self.delta + + def two_hop(self, Gx, core_x, Gx_node, neighbors): + """ + Paths of length 2 from Gx_node should be time-respecting. + """ + return all( + self.one_hop(Gx, v, [n for n in Gx[v] if n in core_x] + [Gx_node]) + for v in neighbors + ) + + def semantic_feasibility(self, G1_node, G2_node): + """Returns True if adding (G1_node, G2_node) is semantically + feasible. + + Any subclass which redefines semantic_feasibility() must + maintain the self.tests if needed, to keep the match() method + functional. Implementations should consider multigraphs. + """ + neighbors = [n for n in self.G1[G1_node] if n in self.core_1] + if not self.one_hop(self.G1, G1_node, neighbors): # Fail fast on first node. + return False + if not self.two_hop(self.G1, self.core_1, G1_node, neighbors): + return False + # Otherwise, this node is semantically feasible! + return True + + +class TimeRespectingDiGraphMatcher(DiGraphMatcher): + def __init__(self, G1, G2, temporal_attribute_name, delta): + """Initialize TimeRespectingDiGraphMatcher. + + G1 and G2 should be nx.DiGraph or nx.MultiDiGraph instances. + + Examples + -------- + To create a TimeRespectingDiGraphMatcher which checks for + syntactic and semantic feasibility: + + >>> from networkx.algorithms import isomorphism + >>> from datetime import timedelta + >>> G1 = nx.DiGraph(nx.path_graph(4, create_using=nx.DiGraph())) + + >>> G2 = nx.DiGraph(nx.path_graph(4, create_using=nx.DiGraph())) + + >>> GM = isomorphism.TimeRespectingDiGraphMatcher( + ... G1, G2, "date", timedelta(days=1) + ... ) + """ + self.temporal_attribute_name = temporal_attribute_name + self.delta = delta + super().__init__(G1, G2) + + def get_pred_dates(self, Gx, Gx_node, core_x, pred): + """ + Get the dates of edges from predecessors. + """ + pred_dates = [] + if isinstance(Gx, nx.DiGraph): # Graph G[u][v] returns the data dictionary. + for n in pred: + pred_dates.append(Gx[n][Gx_node][self.temporal_attribute_name]) + else: # MultiGraph G[u][v] returns a dictionary of key -> data dictionary. + for n in pred: + for edge in Gx[n][ + Gx_node + ].values(): # Iterates all edge data between node pair. + pred_dates.append(edge[self.temporal_attribute_name]) + return pred_dates + + def get_succ_dates(self, Gx, Gx_node, core_x, succ): + """ + Get the dates of edges to successors. + """ + succ_dates = [] + if isinstance(Gx, nx.DiGraph): # Graph G[u][v] returns the data dictionary. + for n in succ: + succ_dates.append(Gx[Gx_node][n][self.temporal_attribute_name]) + else: # MultiGraph G[u][v] returns a dictionary of key -> data dictionary. + for n in succ: + for edge in Gx[Gx_node][ + n + ].values(): # Iterates all edge data between node pair. + succ_dates.append(edge[self.temporal_attribute_name]) + return succ_dates + + def one_hop(self, Gx, Gx_node, core_x, pred, succ): + """ + The ego node. + """ + pred_dates = self.get_pred_dates(Gx, Gx_node, core_x, pred) + succ_dates = self.get_succ_dates(Gx, Gx_node, core_x, succ) + return self.test_one(pred_dates, succ_dates) and self.test_two( + pred_dates, succ_dates + ) + + def two_hop_pred(self, Gx, Gx_node, core_x, pred): + """ + The predecessors of the ego node. + """ + return all( + self.one_hop( + Gx, + p, + core_x, + self.preds(Gx, core_x, p), + self.succs(Gx, core_x, p, Gx_node), + ) + for p in pred + ) + + def two_hop_succ(self, Gx, Gx_node, core_x, succ): + """ + The successors of the ego node. + """ + return all( + self.one_hop( + Gx, + s, + core_x, + self.preds(Gx, core_x, s, Gx_node), + self.succs(Gx, core_x, s), + ) + for s in succ + ) + + def preds(self, Gx, core_x, v, Gx_node=None): + pred = [n for n in Gx.predecessors(v) if n in core_x] + if Gx_node: + pred.append(Gx_node) + return pred + + def succs(self, Gx, core_x, v, Gx_node=None): + succ = [n for n in Gx.successors(v) if n in core_x] + if Gx_node: + succ.append(Gx_node) + return succ + + def test_one(self, pred_dates, succ_dates): + """ + Edges one hop out from Gx_node in the mapping should be + time-respecting with respect to each other, regardless of + direction. + """ + time_respecting = True + dates = pred_dates + succ_dates + + if any(x is None for x in dates): + raise ValueError("Date or datetime not supplied for at least one edge.") + + dates.sort() # Small to large. + if 0 < len(dates) and not (dates[-1] - dates[0] <= self.delta): + time_respecting = False + return time_respecting + + def test_two(self, pred_dates, succ_dates): + """ + Edges from a dual Gx_node in the mapping should be ordered in + a time-respecting manner. + """ + time_respecting = True + pred_dates.sort() + succ_dates.sort() + # First out before last in; negative of the necessary condition for time-respect. + if ( + 0 < len(succ_dates) + and 0 < len(pred_dates) + and succ_dates[0] < pred_dates[-1] + ): + time_respecting = False + return time_respecting + + def semantic_feasibility(self, G1_node, G2_node): + """Returns True if adding (G1_node, G2_node) is semantically + feasible. + + Any subclass which redefines semantic_feasibility() must + maintain the self.tests if needed, to keep the match() method + functional. Implementations should consider multigraphs. + """ + pred, succ = ( + [n for n in self.G1.predecessors(G1_node) if n in self.core_1], + [n for n in self.G1.successors(G1_node) if n in self.core_1], + ) + if not self.one_hop( + self.G1, G1_node, self.core_1, pred, succ + ): # Fail fast on first node. + return False + if not self.two_hop_pred(self.G1, G1_node, self.core_1, pred): + return False + if not self.two_hop_succ(self.G1, G1_node, self.core_1, succ): + return False + # Otherwise, this node is semantically feasible! + return True diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6030cf092a89b1146fa280924872e4234889c9eb Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_ismags.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_ismags.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..feb04fbbeb62ca853567246f36c90b01a1bb2d42 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_ismags.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_isomorphism.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_isomorphism.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e114e653beeb397881686153d2373fe3e93020eb Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_isomorphism.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_isomorphvf2.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_isomorphvf2.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..103a515dedc47594c308ab0f851fac253da0af61 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_isomorphvf2.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_match_helpers.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_match_helpers.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1f9a8707136d8aec7ead025a1554bd0aea44f463 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_match_helpers.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_temporalisomorphvf2.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_temporalisomorphvf2.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6fbf8a2086638cdfff3cdba097ebaa3331af6d1c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_temporalisomorphvf2.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_tree_isomorphism.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_tree_isomorphism.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5cda3a5e822389b83b36bc5a6db560fd9b367513 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_tree_isomorphism.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_vf2pp.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_vf2pp.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bfd84b2041319943f9acb9948fc9fb1990718d21 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_vf2pp.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_vf2pp_helpers.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_vf2pp_helpers.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2af3bc947a759e251892b9fb010683f1a75d69ba Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_vf2pp_helpers.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_vf2userfunc.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_vf2userfunc.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b4e2820e58148591ab7d872eb69dcb266201d072 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_vf2userfunc.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/iso_r01_s80.A99 b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/iso_r01_s80.A99 new file mode 100644 index 0000000000000000000000000000000000000000..dac54f0038c70e2d359ffa68de3c7641b46db21a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/iso_r01_s80.A99 differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/iso_r01_s80.B99 b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/iso_r01_s80.B99 new file mode 100644 index 0000000000000000000000000000000000000000..6c6af680031b4f30fc6da946d0344b5c27e5f05e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/iso_r01_s80.B99 differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/si2_b06_m200.A99 b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/si2_b06_m200.A99 new file mode 100644 index 0000000000000000000000000000000000000000..60c3a3ce1bdb54a61ead043f0adaf24b1fe24e93 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/si2_b06_m200.A99 differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/si2_b06_m200.B99 b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/si2_b06_m200.B99 new file mode 100644 index 0000000000000000000000000000000000000000..0236872094d4c73b0bb132165ce3ec4d1054f5f5 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/si2_b06_m200.B99 differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/test_ismags.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/test_ismags.py new file mode 100644 index 0000000000000000000000000000000000000000..3b7a8c4930e7869189297ca8bc2c8d87b05703e2 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/test_ismags.py @@ -0,0 +1,719 @@ +""" +Tests for ISMAGS isomorphism algorithm. +""" + +import random + +import pytest + +import networkx as nx +from networkx.algorithms import isomorphism as iso + +graph_classes = [nx.Graph, nx.DiGraph, nx.MultiGraph, nx.MultiDiGraph] + + +def _matches_to_sets(matches): + """ + Helper function to facilitate comparing collections of dictionaries in + which order does not matter. + """ + return {frozenset(m.items()) for m in matches} + + +graph_examples = [ + # node_data, edge_data, [id used in name for the test] + pytest.param([0, 1, 2, 3], [(0, 0)], id="isolated-nodes-and-selfloops"), + pytest.param([], nx.star_graph(3).edges, id="3-star"), + pytest.param( + # 6-cycle with 2-paths stuck onto nodes 0, 2, 4 (stretched symmetry) + [], + [ + (0, 1), + (1, 2), + (2, 3), + (3, 4), + (4, 5), + (5, 0), + (0, 6), + (6, 7), + (2, 8), + (8, 9), + (4, 10), + (10, 11), + ], + id="sun:6-cycle-with-2-path-rays", + ), + # 0-1-2-3-5 + # / \ + # 4 6 + pytest.param([], [(0, 1), (1, 2), (1, 4), (2, 3), (3, 5), (3, 6)], id="tree"), + pytest.param([], nx.petersen_graph().edges, id="petersen_graph"), + # Example Fig 3 from Houbraken, et al (ISMAGS paper) + pytest.param( + [], nx.cycle_graph([1, 2, 4, 3]).edges, id="houbraken-ismags-paper-fig3" + ), + pytest.param( + # path with node labels + [ + (0, {"name": "a"}), + (1, {"name": "a"}), + (2, {"name": "b"}), + (3, {"name": "b"}), + (4, {"name": "a"}), + (5, {"name": "a"}), + ], + [(0, 1), (1, 2), (2, 3), (3, 4), (4, 5)], + id="path-with-node-labels", + ), + pytest.param( + # 5 - 4 \ / 12 - 13 + # 0 - 3 + # 9 - 8 / \ 16 - 17 + # Assume 0 and 3 are coupled and no longer equivalent. + # Coupling node 4 to 8 means that 5 and 9 + # are no longer equivalent, pushing them in their own partitions. + # So, [{5}, {9}] is no longer considered equivalent to {13, 17}. + # Minimal example with this trait. Adding all permutations of + # same-size parts at each step finds the symmetry. + [], + [ + (0, 3), + (3, 0), # added to provide symmetry for DiGraphs + (0, 4), + (4, 5), + (0, 8), + (8, 9), + (3, 12), + (12, 13), + (3, 16), + (16, 17), + ], + id="gh8055-tricky-case", + ), + pytest.param( + [], nx.path_graph([1, 2, 3, "a", "b", "c"]).edges, id="unsortable-nodes" + ), + # Example from Katebi, 2012, Fig 1-3. + # Node order specified to (almost) match their DFS order + pytest.param( + [3, 5, 6, 4, 2, 1, 0], + set(nx.cycle_graph(4).edges) | set(nx.cycle_graph(range(4, 7)).edges), + id="katebi-paper-fig2", + ), + pytest.param( + [], [(0, 1), (1, 2), (2, 3), (3, 6), (2, 4), (4, 5)], id="len-2-rays-tri-star" + ), + # Example of refining permutations with two different length parts at the same time. + # Underlying shape is a 4-cycle and 2-path. Multiedges make all nodes degree-3 + # Full simple graph is then obtained by extending each edge as a path thru 1 node. + # 0 + # Underlying // \ 4 When 0->0 coupling occurs, + # MultiGraph 1 3 \\\ refining {1, 2, 3, 4, 5} + # \ // 5 refined parts [{1}, {3}, {2, 4, 5}] + # 2 with different parts having different lengths. + # 0 + # /|\ 4 + # 6 7 8 /|\ + # Full: |/ | / | \ + # 1 3 12 13 14 + # | / \ \ | / + # 9 10 11 \|/ + # \ | / 5 + # 2 + # Nodes 0-5 are the degree-3 nodes. + # Nodes 6-14 are degree 2 nodes on paths between the degree-3 nodes. + pytest.param( + [], + [ + (0, 6), + (0, 7), + (0, 8), + (1, 6), + (1, 7), + (1, 9), + (2, 9), + (2, 10), + (2, 11), + (3, 8), + (3, 10), + (3, 11), + (4, 12), + (4, 13), + (4, 14), + (5, 12), + (5, 13), + (5, 14), + ], + id="refining-parts-finds-different-lengths", + ), + # Underlying structure from previous example + pytest.param( + [], + [(0, 1), (0, 1), (1, 2), (2, 3), (2, 3), (3, 0), (4, 5), (4, 5), (4, 5)], + id="basic-structure-for-refining-parts-test", + ), +] + + +@pytest.mark.parametrize("graph_constructor", graph_classes) +class TestSelfIsomorphism: + @pytest.mark.parametrize(["node_data", "edge_data"], graph_examples) + def test_self_isomorphism(self, graph_constructor, node_data, edge_data): + """ + For some small, symmetric graphs, make sure that 1) they are isomorphic + to themselves, and 2) that only the identity mapping is found. + """ + graph = graph_constructor() + graph.add_nodes_from(node_data) + graph.add_edges_from(edge_data) + + ismags = iso.ISMAGS( + graph, graph, node_match=iso.categorical_node_match("name", None) + ) + assert ismags.is_isomorphic() + assert ismags.is_isomorphic(symmetry=True) + assert ismags.subgraph_is_isomorphic() + ismags_answer = list(ismags.subgraph_isomorphisms_iter(symmetry=True)) + assert ismags_answer == [{n: n for n in graph.nodes}] + + +class TestSubgraphIsomorphism: + def test_isomorphism_4_sun(self): + g1 = nx.cycle_graph(4) + g2 = nx.cycle_graph(4) + g2.add_edges_from(list(zip(g2, range(4, 8)))) + ismags = iso.ISMAGS(g2, g1) + assert list(ismags.subgraph_isomorphisms_iter(symmetry=True)) == [ + {n: n for n in g1.nodes} + ] + assert sum(1 for _ in ismags.subgraph_isomorphisms_iter(symmetry=False)) == 8 + + def test_isomorphism_path_in_tristar(self): + g1 = nx.path_graph(3) + + g2 = g1.copy() + g2.add_edge(1, 3) + + ismags = iso.ISMAGS(g2, g1) + matches = ismags.subgraph_isomorphisms_iter(symmetry=True) + expected_symmetric = [ + {0: 0, 1: 1, 2: 2}, + {0: 0, 1: 1, 3: 2}, + {2: 0, 1: 1, 3: 2}, + ] + assert _matches_to_sets(matches) == _matches_to_sets(expected_symmetric) + + matches = ismags.subgraph_isomorphisms_iter(symmetry=False) + expected_asymmetric = [ + {0: 2, 1: 1, 2: 0}, + {0: 2, 1: 1, 3: 0}, + {2: 2, 1: 1, 3: 0}, + ] + assert _matches_to_sets(matches) == _matches_to_sets( + expected_symmetric + expected_asymmetric + ) + + def test_labeled_nodes(self): + g1 = nx.cycle_graph(3) + g1.nodes[1]["attr"] = True + + g2 = g1.copy() + g2.add_edge(1, 3) + ismags = iso.ISMAGS(g2, g1, node_match=lambda x, y: x == y) + matches = ismags.subgraph_isomorphisms_iter(symmetry=True) + expected_symmetric = [{0: 0, 1: 1, 2: 2}] + assert _matches_to_sets(matches) == _matches_to_sets(expected_symmetric) + + matches = ismags.subgraph_isomorphisms_iter(symmetry=False) + expected_asymmetric = [{0: 2, 1: 1, 2: 0}] + assert _matches_to_sets(matches) == _matches_to_sets( + expected_symmetric + expected_asymmetric + ) + + def test_labeled_edges(self): + g1 = nx.Graph() + nx.add_cycle(g1, range(3)) + g1.edges[1, 2]["attr"] = True + + g2 = g1.copy() + g2.add_edge(1, 3) + ismags = iso.ISMAGS(g2, g1, edge_match=lambda x, y: x == y) + matches = ismags.subgraph_isomorphisms_iter(symmetry=True) + expected_symmetric = [{0: 0, 1: 1, 2: 2}] + assert _matches_to_sets(matches) == _matches_to_sets(expected_symmetric) + + matches = ismags.subgraph_isomorphisms_iter(symmetry=False) + expected_asymmetric = [{1: 2, 0: 0, 2: 1}] + assert _matches_to_sets(matches) == _matches_to_sets( + expected_symmetric + expected_asymmetric + ) + + def test_exceptions_for_bad_match_functions(self): + def non_transitive_match(attrs1, attrs2): + return abs(attrs1["freq"] - attrs2["freq"]) <= 1 + + def simple_non_commutative_match(attrs1, attrs2): + return attrs1["freq"] == 1 + attrs2["freq"] + + def non_commutative_match(attrs1, attrs2): + # red matches red and green + # green and blue only match themselves + if attrs2["color"] == "red": + return attrs2["color"] in {"red", "green"} + else: + return attrs1["color"] == attrs2["color"] + + G1 = nx.Graph() + G1.add_node(0, color="red", freq=0) + G1.add_node(1, color="red", freq=1) + G1.add_node(2, color="blue", freq=2) + + G2 = nx.Graph() + G2.add_node("A", color="red", freq=0) + G2.add_node("B", color="green", freq=1) + G2.add_node("C", color="blue", freq=2) + + with pytest.raises(nx.NetworkXError, match="\nInvalid partition"): + iso.ISMAGS(G1, G2, node_match=non_transitive_match) + + with pytest.raises(nx.NetworkXError, match="\nInvalid partition"): + iso.ISMAGS(G1, G2, node_match=simple_non_commutative_match) + + with pytest.raises(nx.NetworkXError, match="\nInvalid partition"): + iso.ISMAGS(G1, G2, node_match=non_commutative_match) + + +def test_noncomparable_nodes(): + node1 = object() + node2 = object() + node3 = object() + + # Graph + G = nx.path_graph([node1, node2, node3]) + gm = iso.ISMAGS(G, G) + assert gm.is_isomorphic() + assert gm.subgraph_is_isomorphic() + + # DiGraph + G = nx.path_graph([node1, node2, node3], create_using=nx.DiGraph) + H = nx.path_graph([node3, node2, node1], create_using=nx.DiGraph) + dgm = iso.ISMAGS(G, H) + assert dgm.is_isomorphic() + assert dgm.is_isomorphic(symmetry=True) + assert dgm.subgraph_is_isomorphic() + + +@pytest.mark.parametrize("graph_constructor", graph_classes) +def test_selfloop(graph_constructor): + # Simple test for graphs with selfloops + g1 = graph_constructor([(0, 1), (0, 2), (1, 2), (1, 3), (2, 2), (2, 4)]) + nodes = range(5) + rng = random.Random(42) + + for _ in range(3): + new_nodes = list(nodes) + rng.shuffle(new_nodes) + d = dict(zip(nodes, new_nodes)) + g2 = nx.relabel_nodes(g1, d) + assert iso.ISMAGS(g1, g2).is_isomorphic() + + +class TestWikipediaExample: + # example in wikipedia is g1a and g2b + # 1 have letter nodes, 2 have number nodes + # b have some edges reversed vs a (undirected still isomorphic) + # reversed edges marked with comment `#` + # isomorphism = {'a': 1, 'g': 2, 'b': 3, 'c': 6, 'h': 4, 'i': 5, 'j': 7, 'd': 8} + + # Nodes 'a', 'b', 'c' and 'd' form a column. + # Nodes 'g', 'h', 'i' and 'j' form a column. + g1a_edges = [ + ["a", "g"], + ["a", "h"], # edge direction swapped from g1b + ["a", "i"], + ["b", "g"], # edge direction swapped from g1b + ["b", "h"], + ["b", "j"], + ["c", "g"], # edge direction swapped from g1b + ["c", "i"], # edge direction swapped from g1b + ["c", "j"], + ["d", "h"], # edge direction swapped from g1b + ["d", "i"], + ["d", "j"], # edge direction swapped from g1b + ] + + g1b_edges = [ + ["a", "g"], + ["h", "a"], # edge direction swapped from g1a + ["a", "i"], + ["g", "b"], # edge direction swapped from g1a + ["b", "h"], + ["b", "j"], + ["g", "c"], # edge direction swapped from g1a + ["i", "c"], # edge direction swapped from g1a + ["c", "j"], + ["h", "d"], # edge direction swapped from g1a + ["d", "i"], + ["j", "d"], # edge direction swapped from g1a + ] + + g2b_edges = [ + [1, 2], + [1, 4], # edge direction swapped from g2a + [1, 5], + [3, 2], # edge direction swapped from g2a + [3, 4], + [3, 7], + [6, 2], # edge direction swapped from g2a + [6, 5], # edge direction swapped from g2a + [6, 7], + [8, 4], # edge direction swapped from g2a + [8, 5], + [8, 7], # edge direction swapped from g2a + ] + + # Nodes 1,2,3,4 form the clockwise corners of a large square. + # Nodes 5,6,7,8 form the clockwise corners of a small square + g2a_edges = [ + [1, 2], + [4, 1], # edge direction swapped from g2b + [1, 5], + [2, 3], # edge direction swapped from g2b + [3, 4], + [3, 7], + [2, 6], # edge direction swapped from g2b + [5, 6], # edge direction swapped from g2b + [6, 7], + [4, 8], # edge direction swapped from g2b + [8, 5], + [7, 8], # edge direction swapped from g2b + ] + + @pytest.mark.parametrize("graph_constructor", [nx.Graph, nx.MultiGraph]) + def test_graph(self, graph_constructor): + g1a = graph_constructor(self.g1a_edges) + g1b = graph_constructor(self.g1b_edges) + g2a = graph_constructor(self.g2a_edges) + g2b = graph_constructor(self.g2b_edges) + assert iso.ISMAGS(g1a, g1b).is_isomorphic() + assert iso.ISMAGS(g1a, g2a).is_isomorphic() + assert iso.ISMAGS(g1a, g2b).is_isomorphic() + + assert iso.ISMAGS(g1a, nx.path_graph(range(5))).subgraph_is_isomorphic() + assert not iso.ISMAGS(g1a, nx.path_graph(range(6))).subgraph_is_isomorphic() + + @pytest.mark.parametrize("graph_constructor", [nx.DiGraph, nx.MultiDiGraph]) + def test_digraph(self, graph_constructor): + g1a = graph_constructor(self.g1a_edges) + g1b = graph_constructor(self.g1b_edges) + g2a = graph_constructor(self.g2a_edges) + g2b = graph_constructor(self.g2b_edges) + assert iso.ISMAGS(g1a, g2b).is_isomorphic() + assert iso.ISMAGS(g1b, g2a).is_isomorphic() + assert not iso.ISMAGS(g1a, g1b).is_isomorphic() + assert not iso.ISMAGS(g2a, g2b).is_isomorphic() + assert not iso.ISMAGS(g1a, g2a).is_isomorphic() + assert not iso.ISMAGS(g1b, g2b).is_isomorphic() + + P2 = nx.path_graph(range(2), create_using=graph_constructor) + assert iso.ISMAGS(g1a, P2).subgraph_is_isomorphic() + P3 = nx.path_graph(range(3), create_using=graph_constructor) + assert not iso.ISMAGS(g1a, P3).subgraph_is_isomorphic() + + +class TestLargestCommonSubgraph: + def test_mcis(self): + # Example graphs from DOI: 10.1002/spe.588 + graph1 = nx.Graph() + graph1.add_edges_from([(1, 2), (2, 3), (2, 4), (3, 4), (4, 5)]) + graph1.nodes[1]["color"] = 0 + + graph2 = nx.Graph() + graph2.add_edges_from( + [(1, 2), (2, 3), (2, 4), (3, 4), (3, 5), (5, 6), (5, 7), (6, 7)] + ) + graph2.nodes[1]["color"] = 1 + graph2.nodes[6]["color"] = 2 + graph2.nodes[7]["color"] = 2 + + ismags = iso.ISMAGS( + graph1, graph2, node_match=iso.categorical_node_match("color", None) + ) + assert list(ismags.subgraph_isomorphisms_iter(symmetry=True)) == [] + assert list(ismags.subgraph_isomorphisms_iter(symmetry=False)) == [] + found_mcis = _matches_to_sets(ismags.largest_common_subgraph()) + expected = _matches_to_sets( + [{2: 2, 3: 4, 4: 3, 5: 5}, {2: 4, 3: 2, 4: 3, 5: 5}] + ) + assert expected == found_mcis + + ismags = iso.ISMAGS( + graph2, graph1, node_match=iso.categorical_node_match("color", None) + ) + assert list(ismags.subgraph_isomorphisms_iter(symmetry=True)) == [] + assert list(ismags.subgraph_isomorphisms_iter(symmetry=False)) == [] + found_mcis = _matches_to_sets(ismags.largest_common_subgraph()) + # Same answer, but reversed. + expected = _matches_to_sets( + [{2: 2, 3: 4, 4: 3, 5: 5}, {4: 2, 2: 3, 3: 4, 5: 5}] + ) + assert expected == found_mcis + + def test_symmetry_mcis(self): + graph1 = nx.Graph() + nx.add_path(graph1, range(4)) + + graph2 = nx.Graph() + nx.add_path(graph2, range(3)) + graph2.add_edge(1, 3) + + # Only the symmetry of graph2 is taken into account here. + ismags1 = iso.ISMAGS( + graph1, graph2, node_match=iso.categorical_node_match("color", None) + ) + assert list(ismags1.subgraph_isomorphisms_iter(symmetry=True)) == [] + found_mcis = _matches_to_sets(ismags1.largest_common_subgraph()) + expected = _matches_to_sets([{0: 0, 1: 1, 2: 2}, {1: 0, 3: 2, 2: 1}]) + assert expected == found_mcis + + # Only the symmetry of graph1 is taken into account here. + ismags2 = iso.ISMAGS( + graph2, graph1, node_match=iso.categorical_node_match("color", None) + ) + assert list(ismags2.subgraph_isomorphisms_iter(symmetry=True)) == [] + found_mcis = _matches_to_sets(ismags2.largest_common_subgraph()) + expected = _matches_to_sets( + [ + {3: 2, 0: 0, 1: 1}, + {2: 0, 0: 2, 1: 1}, + {3: 0, 0: 2, 1: 1}, + {3: 0, 1: 1, 2: 2}, + {0: 0, 1: 1, 2: 2}, + {2: 0, 3: 2, 1: 1}, + ] + ) + + assert expected == found_mcis + + found_mcis1 = _matches_to_sets(ismags1.largest_common_subgraph(symmetry=False)) + found_mcis2 = ismags2.largest_common_subgraph(symmetry=False) + found_mcis2 = [{v: k for k, v in d.items()} for d in found_mcis2] + found_mcis2 = _matches_to_sets(found_mcis2) + + expected = _matches_to_sets( + [ + {3: 2, 1: 3, 2: 1}, + {2: 0, 0: 2, 1: 1}, + {1: 2, 3: 3, 2: 1}, + {3: 0, 1: 3, 2: 1}, + {0: 2, 2: 3, 1: 1}, + {3: 0, 1: 2, 2: 1}, + {2: 0, 0: 3, 1: 1}, + {0: 0, 2: 3, 1: 1}, + {1: 0, 3: 3, 2: 1}, + {1: 0, 3: 2, 2: 1}, + {0: 3, 1: 1, 2: 2}, + {0: 0, 1: 1, 2: 2}, + ] + ) + assert expected == found_mcis1 + assert expected == found_mcis2 + + +def is_isomorphic(G, SG, edge_match=None, node_match=None): + return iso.ISMAGS(G, SG, node_match, edge_match).is_isomorphic() + + +class TestDiGraphISO: + def test_wikipedia_graph(self): + edges1 = [ + (1, 5), + (1, 2), + (1, 4), + (3, 2), + (6, 2), + (3, 4), + (7, 3), + (4, 8), + (5, 8), + (6, 5), + (6, 7), + (7, 8), + ] + mapped = {1: "a", 2: "h", 3: "d", 4: "i", 5: "g", 6: "b", 7: "j", 8: "c"} + + G1 = nx.DiGraph(edges1) + G2 = nx.relabel_nodes(G1, mapped) + + result = next(nx.isomorphism.ISMAGS(G1, G2).find_isomorphisms()) + assert result == mapped + + # Change the direction of an edge + G1.remove_edge(1, 5) + G1.add_edge(5, 1) + result = list(nx.isomorphism.ISMAGS(G1, G2).find_isomorphisms()) + assert result == [] + + def test_non_isomorphic_same_degree_sequence(self): + r""" + G1 G2 + 1-------------2 1-------------2 + | \ | | \ | + | 5-------6 | | 5-------6 | + | | | | | | | | + | 8-------7 | | 8-------7 | + | / | | \ | + 4-------------3 4-------------3 + """ + edges1 = [ + (1, 5), + (1, 2), + (4, 1), + (3, 2), + (3, 4), + (5, 8), + (6, 5), + (6, 7), + (7, 8), + (4, 8), + ] + edges2 = [ + (1, 5), + (1, 2), + (4, 1), + (3, 2), + (3, 4), + (5, 8), + (6, 5), + (6, 7), + (8, 7), + (3, 7), + ] + + G1 = nx.DiGraph(edges1) + G2 = nx.DiGraph(edges2) + assert not is_isomorphic(G1, G2) + + def test_is_isomorphic(self): + G1 = nx.Graph([[1, 2], [1, 3], [1, 5], [2, 3]]) + G2 = nx.Graph([[10, 20], [20, 30], [10, 30], [10, 50]]) + G4 = nx.Graph([[1, 2], [1, 3], [1, 5], [2, 4]]) + assert is_isomorphic(G1, G2) + assert not is_isomorphic(G1, G4) + assert is_isomorphic(G1.to_directed(), G2.to_directed()) + assert not is_isomorphic(G1.to_directed(), G4.to_directed()) + with pytest.raises( + ValueError, match="Directed and undirected graphs cannot be compared." + ): + is_isomorphic(G1.to_directed(), G1) + + +@pytest.mark.parametrize("graph_class", graph_classes) +def test_simple_node_match(graph_class): + g1 = graph_class([(0, 0), (0, 1), (1, 0)]) + g2 = g1.copy() + nm = iso.numerical_node_match("size", 1) + assert is_isomorphic(g1, g2, node_match=nm) + + g2.nodes[0]["size"] = 3 + assert not is_isomorphic(g1, g2, node_match=nm) + + +@pytest.mark.parametrize("graph_class", graph_classes) +def test_simple_node_and_edge_match(graph_class): + g1 = graph_class() + g1.add_weighted_edges_from([(0, 0, 1.2), (0, 1, 1.4), (1, 0, 1.6)]) + g2 = g1.copy() + nm = iso.numerical_node_match("size", 1) + if g1.is_multigraph(): + em = iso.numerical_multiedge_match("weight", 1) + else: + em = iso.numerical_edge_match("weight", 1) + assert is_isomorphic(g1, g2, node_match=nm, edge_match=em) + + g2.nodes[0]["size"] = 3 + assert not is_isomorphic(g1, g2, node_match=nm, edge_match=em) + + g2 = g1.copy() + if g1.is_multigraph(): + g2.edges[0, 1, 0]["weight"] = 2.1 + else: + g2.edges[0, 1]["weight"] = 2.1 + assert not is_isomorphic(g1, g2, node_match=nm, edge_match=em) + + g2 = g1.copy() + g2.nodes[0]["size"] = 3 + if g1.is_multigraph(): + g2.edges[0, 1, 0]["weight"] = 2.1 + else: + g2.edges[0, 1]["weight"] = 2.1 + assert not is_isomorphic(g1, g2, node_match=nm, edge_match=em) + + +@pytest.mark.parametrize("graph_class", graph_classes) +def test_simple_edge_match(graph_class): + # 16 simple tests + w = "weight" + edges = [(0, 0, 1), (0, 0, 1.5), (0, 1, 2), (1, 0, 3)] + g1 = graph_class() + g1.add_weighted_edges_from(edges) + g2 = g1.copy() + if g1.is_multigraph(): + em = iso.numerical_multiedge_match("weight", 1) + else: + em = iso.numerical_edge_match("weight", 1) + assert is_isomorphic(g1, g2, edge_match=em) + + for mod1, mod2 in [(False, True), (True, False), (True, True)]: + # mod1 tests a regular edge weight difference + # mod2 tests a selfloop weight difference + if g1.is_multigraph(): + if mod1: + data1 = {0: {"weight": 10}} + if mod2: + data2 = {0: {"weight": 1}, 1: {"weight": 2.5}} + else: + if mod1: + data1 = {"weight": 10} + if mod2: + data2 = {"weight": 2.5} + + g2 = g1.copy() + if mod1: + if not g1.is_directed(): + g2._adj[1][0] = data1 + g2._adj[0][1] = data1 + else: + g2._succ[1][0] = data1 + g2._pred[0][1] = data1 + if mod2: + if not g1.is_directed(): + g2._adj[0][0] = data2 + else: + g2._succ[0][0] = data2 + g2._pred[0][0] = data2 + + assert not is_isomorphic(g1, g2, edge_match=em) + + +@pytest.mark.parametrize("graph_class", graph_classes) +def test_weightkey(graph_class): + g1 = graph_class() + g2 = graph_class() + if g1.is_multigraph(): + edge_match = iso.numerical_multiedge_match + else: + edge_match = iso.numerical_edge_match + + g1.add_edge("A", "B", weight=1) + g2.add_edge("C", "D", weight=0) + + assert nx.is_isomorphic(g1, g2) + em = edge_match("nonexistent attribute", 1) + assert nx.is_isomorphic(g1, g2, edge_match=em) + em = edge_match("weight", 1) + assert not nx.is_isomorphic(g1, g2, edge_match=em) + + g2 = graph_class() + g2.add_edge("C", "D") + assert nx.is_isomorphic(g1, g2, edge_match=em) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/test_isomorphism.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/test_isomorphism.py new file mode 100644 index 0000000000000000000000000000000000000000..e98e0ee635852b1bc04ae2122ed90cbcc21bbe62 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/test_isomorphism.py @@ -0,0 +1,103 @@ +from functools import partial + +import pytest + +import networkx as nx +from networkx.algorithms import isomorphism as iso + +# Convenience functions for testing that the behavior of `could_be_isomorphic` +# with the "properties" kwarg is equivalent to the corresponding function (i.e. +# nx.fast_could_be_isomorphic or nx.faster_could_be_isomorphic) +fast_cbi = partial(nx.could_be_isomorphic, properties="dt") +faster_cbi = partial(nx.could_be_isomorphic, properties="d") + + +def test_graph_could_be_isomorphic_variants_deprecated(): + G1 = nx.Graph([(1, 2), (1, 3), (1, 5), (2, 3)]) + G2 = nx.Graph([(10, 20), (20, 30), (10, 30), (10, 50)]) + with pytest.deprecated_call(): # graph_could_be_isomorphic + result = nx.isomorphism.isomorph.graph_could_be_isomorphic(G1, G2) + assert nx.could_be_isomorphic(G1, G2) == result + with pytest.deprecated_call(): # fast_graph_could_be_isomorphic + result = nx.isomorphism.isomorph.fast_graph_could_be_isomorphic(G1, G2) + assert nx.fast_could_be_isomorphic(G1, G2) == result + with pytest.deprecated_call(): + result = nx.isomorphism.isomorph.faster_graph_could_be_isomorphic(G1, G2) + assert nx.faster_could_be_isomorphic(G1, G2) == result + + +@pytest.mark.parametrize("atlas_ids", [(699, 706), (864, 870)]) +def test_could_be_isomorphic_combined_properties(atlas_ids): + """There are two pairs of graphs from the graph atlas that have the same + combined degree-triangle distribution, but a different maximal clique + distribution. See gh-7852.""" + G, H = (nx.graph_atlas(idx) for idx in atlas_ids) + + assert not nx.is_isomorphic(G, H) + + # Degree only + assert nx.faster_could_be_isomorphic(G, H) + assert nx.could_be_isomorphic(G, H, properties="d") + # Degrees & triangles + assert nx.fast_could_be_isomorphic(G, H) + assert nx.could_be_isomorphic(G, H, properties="dt") + # Full properties table (degrees, triangles, cliques) + assert not nx.could_be_isomorphic(G, H) + assert not nx.could_be_isomorphic(G, H, properties="dtc") + # For these two cases, the clique distribution alone is enough to verify + # the graphs can't be isomorphic + assert not nx.could_be_isomorphic(G, H, properties="c") + + +def test_could_be_isomorphic_individual_vs_combined_dt(): + """A test case where G and H have identical degree and triangle distributions, + but are different when compared together""" + G = nx.Graph([(0, 1), (0, 2), (0, 3), (0, 4), (1, 2), (3, 4), (4, 5), (4, 6)]) + H = G.copy() + # Modify graphs to produce different clique distributions + G.add_edge(0, 7) + H.add_edge(4, 7) + assert nx.could_be_isomorphic(G, H, properties="d") + assert nx.could_be_isomorphic(G, H, properties="t") + assert not nx.could_be_isomorphic(G, H, properties="dt") + assert not nx.could_be_isomorphic(G, H, properties="c") + + +class TestIsomorph: + @classmethod + def setup_class(cls): + cls.G1 = nx.Graph([[1, 2], [1, 3], [1, 5], [2, 3]]) + cls.G2 = nx.Graph([[10, 20], [20, 30], [10, 30], [10, 50]]) + cls.G3 = nx.Graph([[1, 2], [1, 3], [1, 5], [2, 5]]) + cls.G4 = nx.Graph([[1, 2], [1, 3], [1, 5], [2, 4]]) + cls.G5 = nx.Graph([[1, 2], [1, 3]]) + cls.G6 = nx.Graph([[10, 20], [20, 30], [10, 30], [10, 50], [20, 50]]) + + def test_could_be_isomorphic(self): + assert iso.could_be_isomorphic(self.G1, self.G2) + assert iso.could_be_isomorphic(self.G1, self.G3) + assert not iso.could_be_isomorphic(self.G1, self.G4) + assert iso.could_be_isomorphic(self.G3, self.G2) + assert not iso.could_be_isomorphic(self.G1, self.G6) + + @pytest.mark.parametrize("fn", (iso.fast_could_be_isomorphic, fast_cbi)) + def test_fast_could_be_isomorphic(self, fn): + assert fn(self.G3, self.G2) + assert not fn(self.G3, self.G5) + assert not fn(self.G1, self.G6) + + @pytest.mark.parametrize("fn", (iso.faster_could_be_isomorphic, faster_cbi)) + def test_faster_could_be_isomorphic(self, fn): + assert fn(self.G3, self.G2) + assert not fn(self.G3, self.G5) + assert not fn(self.G1, self.G6) + + def test_is_isomorphic(self): + assert iso.is_isomorphic(self.G1, self.G2) + assert not iso.is_isomorphic(self.G1, self.G4) + assert iso.is_isomorphic(self.G1.to_directed(), self.G2.to_directed()) + assert not iso.is_isomorphic(self.G1.to_directed(), self.G4.to_directed()) + with pytest.raises( + nx.NetworkXError, match="Graphs G1 and G2 are not of the same type." + ): + iso.is_isomorphic(self.G1.to_directed(), self.G1) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/test_isomorphvf2.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/test_isomorphvf2.py new file mode 100644 index 0000000000000000000000000000000000000000..657876e985733e4b807c53edc0594bbf5e1a4e7a --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/tests/test_isomorphvf2.py @@ -0,0 +1,490 @@ +""" +Tests for VF2 isomorphism algorithm. +""" + +import importlib.resources +import random +import struct + +import pytest + +import networkx as nx +from networkx.algorithms import isomorphism as iso + + +class TestWikipediaExample: + # Source: https://en.wikipedia.org/wiki/Graph_isomorphism + + # Nodes 'a', 'b', 'c' and 'd' form a column. + # Nodes 'g', 'h', 'i' and 'j' form a column. + # isomorphism: {'a': 1, 'g': 2, 'b': 3, 'c': 6, 'h': 4, 'i': 5, 'j': 7, 'd': 8} + g1edges = [ + ["a", "g"], + ["a", "h"], + ["a", "i"], + ["b", "g"], + ["b", "h"], + ["b", "j"], + ["c", "g"], + ["c", "i"], + ["c", "j"], + ["d", "h"], + ["d", "i"], + ["d", "j"], + ] + + # Nodes 1,2,3,4 form the clockwise corners of a large square. + # Nodes 5,6,7,8 form the clockwise corners of a small square + g2edges = [ + [1, 2], + [3, 2], + [3, 4], + [1, 4], + [6, 5], + [6, 7], + [8, 7], + [8, 5], + [1, 5], + [6, 2], + [3, 7], + [8, 4], + ] + + @pytest.mark.parametrize( + ["graph_class", "numb_maps"], [(nx.Graph, 48), (nx.DiGraph, 24)] + ) + def test_morphic_and_number_of_mappings(self, graph_class, numb_maps): + g1 = graph_class(self.g1edges) + g2 = graph_class(self.g2edges) + Matcher = iso.DiGraphMatcher if g1.is_directed() else iso.GraphMatcher + gm = Matcher(g1, g2) + assert gm.is_isomorphic() + assert gm.subgraph_is_monomorphic() + assert gm.subgraph_is_isomorphic() + + mapping = list(gm.mapping.items()) + # this mapping is only one of the 48 possibilities + all_mappings = list(gm.isomorphisms_iter()) + assert len(all_mappings) == numb_maps + assert dict(mapping) in all_mappings + + @pytest.mark.parametrize("graph_class", [nx.Graph, nx.DiGraph]) + def test_subgraph(self, graph_class): + g1 = graph_class(self.g1edges) + g2 = graph_class(self.g2edges) + g3 = g2.subgraph([1, 2, 3, 4]) + Matcher = iso.DiGraphMatcher if g1.is_directed() else iso.GraphMatcher + gm = Matcher(g1, g3) + assert not gm.is_isomorphic() + assert gm.subgraph_is_isomorphic() + assert gm.subgraph_is_monomorphic() + + @pytest.mark.parametrize("graph_class", [nx.Graph, nx.DiGraph]) + def test_subgraph_mono(self, graph_class): + g1 = graph_class(self.g1edges) + g2 = graph_class(["ag", "cg", "ci", "di", "bg"]) + Matcher = iso.DiGraphMatcher if g1.is_directed() else iso.GraphMatcher + gm = Matcher(g1, g2) + assert not gm.is_isomorphic() + assert not gm.subgraph_is_isomorphic() + assert gm.subgraph_is_monomorphic() + + # note: this shows need to recreate the matcher for each graph change + # Also checking not monomorphic + g2.add_edge("c", "a") + gm = Matcher(g1, g2) + assert not gm.subgraph_is_monomorphic() + + +class TestVF2GraphDB: + # https://web.archive.org/web/20090303210205/http://amalfi.dis.unina.it/graph/db/ + + @staticmethod + def create_graph(filename): + """Creates a Graph instance from the filename.""" + + # The file is assumed to be in the format from the VF2 graph database. + # Each file is composed of 16-bit numbers (unsigned short int). + # So we will want to read 2 bytes at a time. + + # We can read the number as follows: + # number = struct.unpack(' 0: + # get all the pairs of labels and nodes of children and sort by labels + # reverse=True to preserve DFS order, see gh-7945 + s = sorted(((label[u], u) for u in dT.successors(v)), reverse=True) + + # invert to give a list of two tuples + # the sorted labels, and the corresponding children + ordered_labels[v], ordered_children[v] = list(zip(*s)) + + # now collect and sort the sorted ordered_labels + # for all nodes in L[i], carrying along the node + forlabel = sorted((ordered_labels[v], v) for v in L[i]) + + # now assign labels to these nodes, according to the sorted order + # starting from 0, where identical ordered_labels get the same label + current = 0 + for i, (ol, v) in enumerate(forlabel): + # advance to next label if not 0, and different from previous + if (i != 0) and (ol != forlabel[i - 1][0]): + current += 1 + label[v] = current + + # they are isomorphic if the labels of newroot1 and newroot2 are 0 + isomorphism = [] + if label[newroot1] == 0 and label[newroot2] == 0: + # now lets get the isomorphism by walking the ordered_children + stack = [(newroot1, newroot2)] + while stack: + curr_v, curr_w = stack.pop() + isomorphism.append((curr_v, curr_w)) + stack.extend(zip(ordered_children[curr_v], ordered_children[curr_w])) + + # get the mapping back in terms of the old names + # return in sorted order for neatness + isomorphism = [(namemap[u], namemap[v]) for (u, v) in isomorphism] + + return isomorphism + + +@not_implemented_for("directed") +@not_implemented_for("multigraph") +@nx._dispatchable(graphs={"t1": 0, "t2": 1}) +def tree_isomorphism(t1, t2): + """ + Return an isomorphic mapping between two trees `t1` and `t2`. + + If `t1` and `t2` are not isomorphic, an empty list is returned. + Note that two trees may have more than one isomorphism, and this routine just + returns one valid mapping. + + Parameters + ---------- + t1 : undirected NetworkX graph + One of the trees being compared + + t2 : undirected NetworkX graph + The other tree being compared + + Returns + ------- + isomorphism : list + A list of pairs in which the left element is a node in `t1` + and the right element is a node in `t2`. The pairs are in + arbitrary order. If the nodes in one tree is mapped to the names in + the other, then trees will be identical. Note that an isomorphism + will not necessarily be unique. + + If `t1` and `t2` are not isomorphic, then it returns the empty list. + + Raises + ------ + NetworkXError + If either `t1` or `t2` is not a tree + + Notes + ----- + This runs in ``O(n*log(n))`` time for trees with ``n`` nodes. + """ + if not nx.is_tree(t1): + raise nx.NetworkXError("t1 is not a tree") + if not nx.is_tree(t2): + raise nx.NetworkXError("t2 is not a tree") + + # To be isomorphic, t1 and t2 must have the same number of nodes and sorted + # degree sequences + if not nx.faster_could_be_isomorphic(t1, t2): + return [] + + # A tree can have either 1 or 2 centers. + # If the number doesn't match then t1 and t2 are not isomorphic. + center1 = nx.center(t1) + center2 = nx.center(t2) + + if len(center1) != len(center2): + return [] + + # If there is only 1 center in each, then use it. + if len(center1) == 1: + return rooted_tree_isomorphism(t1, center1[0], t2, center2[0]) + + # If there both have 2 centers, then try the first for t1 + # with the first for t2. + attempts = rooted_tree_isomorphism(t1, center1[0], t2, center2[0]) + + # If that worked we're done. + if len(attempts) > 0: + return attempts + + # Otherwise, try center1[0] with the center2[1], and see if that works + return rooted_tree_isomorphism(t1, center1[0], t2, center2[1]) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/vf2pp.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/vf2pp.py new file mode 100644 index 0000000000000000000000000000000000000000..658829ea8d54a7d481c9b17c03be8226d14e1952 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/vf2pp.py @@ -0,0 +1,1102 @@ +""" +*************** +VF2++ Algorithm +*************** + +An implementation of the VF2++ algorithm [1]_ for Graph Isomorphism testing. + +The simplest interface to use this module is to call: + +`vf2pp_is_isomorphic`: to check whether two graphs are isomorphic. +`vf2pp_isomorphism`: to obtain the node mapping between two graphs, +in case they are isomorphic. +`vf2pp_all_isomorphisms`: to generate all possible mappings between two graphs, +if isomorphic. + +Introduction +------------ +The VF2++ algorithm, follows a similar logic to that of VF2, while also +introducing new easy-to-check cutting rules and determining the optimal access +order of nodes. It is also implemented in a non-recursive manner, which saves +both time and space, when compared to its previous counterpart. + +The optimal node ordering is obtained after taking into consideration both the +degree but also the label rarity of each node. +This way we place the nodes that are more likely to match, first in the order, +thus examining the most promising branches in the beginning. +The rules also consider node labels, making it easier to prune unfruitful +branches early in the process. + +Examples +-------- + +Suppose G1 and G2 are Isomorphic Graphs. Verification is as follows: + +Without node labels: + +>>> import networkx as nx +>>> G1 = nx.path_graph(4) +>>> G2 = nx.path_graph(4) +>>> nx.vf2pp_is_isomorphic(G1, G2, node_label=None) +True +>>> nx.vf2pp_isomorphism(G1, G2, node_label=None) +{1: 1, 2: 2, 0: 0, 3: 3} + +With node labels: + +>>> G1 = nx.path_graph(4) +>>> G2 = nx.path_graph(4) +>>> mapped = {1: 1, 2: 2, 3: 3, 0: 0} +>>> nx.set_node_attributes( +... G1, dict(zip(G1, ["blue", "red", "green", "yellow"])), "label" +... ) +>>> nx.set_node_attributes( +... G2, +... dict(zip([mapped[u] for u in G1], ["blue", "red", "green", "yellow"])), +... "label", +... ) +>>> nx.vf2pp_is_isomorphic(G1, G2, node_label="label") +True +>>> nx.vf2pp_isomorphism(G1, G2, node_label="label") +{1: 1, 2: 2, 0: 0, 3: 3} + +References +---------- +.. [1] Jüttner, Alpár & Madarasi, Péter. (2018). "VF2++—An improved subgraph + isomorphism algorithm". Discrete Applied Mathematics. 242. + https://doi.org/10.1016/j.dam.2018.02.018 + +""" + +import collections + +import networkx as nx + +__all__ = ["vf2pp_isomorphism", "vf2pp_is_isomorphic", "vf2pp_all_isomorphisms"] + +_GraphParameters = collections.namedtuple( + "_GraphParameters", + [ + "G1", + "G2", + "G1_labels", + "G2_labels", + "nodes_of_G1Labels", + "nodes_of_G2Labels", + "G2_nodes_of_degree", + ], +) + +_StateParameters = collections.namedtuple( + "_StateParameters", + [ + "mapping", + "reverse_mapping", + "T1", + "T1_in", + "T1_tilde", + "T1_tilde_in", + "T2", + "T2_in", + "T2_tilde", + "T2_tilde_in", + ], +) + + +@nx._dispatchable(graphs={"G1": 0, "G2": 1}, node_attrs={"node_label": "default_label"}) +def vf2pp_isomorphism(G1, G2, node_label=None, default_label=None): + """Return an isomorphic mapping between `G1` and `G2` if it exists. + + Parameters + ---------- + G1, G2 : NetworkX Graph or MultiGraph instances. + The two graphs to check for isomorphism. + + node_label : str, optional + The name of the node attribute to be used when comparing nodes. + The default is `None`, meaning node attributes are not considered + in the comparison. Any node that doesn't have the `node_label` + attribute uses `default_label` instead. + + default_label : scalar + Default value to use when a node doesn't have an attribute + named `node_label`. Default is `None`. + + Returns + ------- + dict or None + Node mapping if the two graphs are isomorphic. None otherwise. + """ + try: + mapping = next(vf2pp_all_isomorphisms(G1, G2, node_label, default_label)) + return mapping + except StopIteration: + return None + + +@nx._dispatchable(graphs={"G1": 0, "G2": 1}, node_attrs={"node_label": "default_label"}) +def vf2pp_is_isomorphic(G1, G2, node_label=None, default_label=None): + """Examines whether G1 and G2 are isomorphic. + + Parameters + ---------- + G1, G2 : NetworkX Graph or MultiGraph instances. + The two graphs to check for isomorphism. + + node_label : str, optional + The name of the node attribute to be used when comparing nodes. + The default is `None`, meaning node attributes are not considered + in the comparison. Any node that doesn't have the `node_label` + attribute uses `default_label` instead. + + default_label : scalar + Default value to use when a node doesn't have an attribute + named `node_label`. Default is `None`. + + Returns + ------- + bool + True if the two graphs are isomorphic, False otherwise. + """ + if vf2pp_isomorphism(G1, G2, node_label, default_label) is not None: + return True + return False + + +@nx._dispatchable(graphs={"G1": 0, "G2": 1}, node_attrs={"node_label": "default_label"}) +def vf2pp_all_isomorphisms(G1, G2, node_label=None, default_label=None): + """Yields all the possible mappings between G1 and G2. + + Parameters + ---------- + G1, G2 : NetworkX Graph or MultiGraph instances. + The two graphs to check for isomorphism. + + node_label : str, optional + The name of the node attribute to be used when comparing nodes. + The default is `None`, meaning node attributes are not considered + in the comparison. Any node that doesn't have the `node_label` + attribute uses `default_label` instead. + + default_label : scalar + Default value to use when a node doesn't have an attribute + named `node_label`. Default is `None`. + + Yields + ------ + dict + Isomorphic mapping between the nodes in `G1` and `G2`. + """ + if G1.number_of_nodes() == 0 or G2.number_of_nodes() == 0: + return False + + # Create the degree dicts based on graph type + if G1.is_directed(): + G1_degree = { + n: (in_degree, out_degree) + for (n, in_degree), (_, out_degree) in zip(G1.in_degree, G1.out_degree) + } + G2_degree = { + n: (in_degree, out_degree) + for (n, in_degree), (_, out_degree) in zip(G2.in_degree, G2.out_degree) + } + else: + G1_degree = dict(G1.degree) + G2_degree = dict(G2.degree) + + if not G1.is_directed(): + find_candidates = _find_candidates + restore_Tinout = _restore_Tinout + else: + find_candidates = _find_candidates_Di + restore_Tinout = _restore_Tinout_Di + + # Check that both graphs have the same number of nodes and degree sequence + if G1.order() != G2.order(): + return False + if sorted(G1_degree.values()) != sorted(G2_degree.values()): + return False + + # Initialize parameters and cache necessary information about degree and labels + graph_params, state_params = _initialize_parameters( + G1, G2, G2_degree, node_label, default_label + ) + + # Check if G1 and G2 have the same labels, and that number of nodes per label + # is equal between the two graphs + if not _precheck_label_properties(graph_params): + return False + + # Calculate the optimal node ordering + node_order = _matching_order(graph_params) + + # Initialize the stack + stack = [] + candidates = iter( + find_candidates(node_order[0], graph_params, state_params, G1_degree) + ) + stack.append((node_order[0], candidates)) + + mapping = state_params.mapping + reverse_mapping = state_params.reverse_mapping + + # Index of the node from the order, currently being examined + matching_node = 1 + + while stack: + current_node, candidate_nodes = stack[-1] + + try: + candidate = next(candidate_nodes) + except StopIteration: + # If no remaining candidates, return to a previous state, and follow another branch + stack.pop() + matching_node -= 1 + if stack: + # Pop the previously added u-v pair, and look for a different candidate _v for u + popped_node1, _ = stack[-1] + popped_node2 = mapping[popped_node1] + mapping.pop(popped_node1) + reverse_mapping.pop(popped_node2) + restore_Tinout(popped_node1, popped_node2, graph_params, state_params) + continue + + if _feasibility(current_node, candidate, graph_params, state_params): + # Terminate if mapping is extended to its full + if len(mapping) == G2.number_of_nodes() - 1: + cp_mapping = mapping.copy() + cp_mapping[current_node] = candidate + yield cp_mapping + continue + + # Feasibility rules pass, so extend the mapping and update the parameters + mapping[current_node] = candidate + reverse_mapping[candidate] = current_node + _update_Tinout(current_node, candidate, graph_params, state_params) + # Append the next node and its candidates to the stack + candidates = iter( + find_candidates( + node_order[matching_node], graph_params, state_params, G1_degree + ) + ) + stack.append((node_order[matching_node], candidates)) + matching_node += 1 + + +def _precheck_label_properties(graph_params): + G1, G2, G1_labels, G2_labels, nodes_of_G1Labels, nodes_of_G2Labels, _ = graph_params + if any( + label not in nodes_of_G1Labels or len(nodes_of_G1Labels[label]) != len(nodes) + for label, nodes in nodes_of_G2Labels.items() + ): + return False + return True + + +def _initialize_parameters(G1, G2, G2_degree, node_label=None, default_label=-1): + """Initializes all the necessary parameters for VF2++ + + Parameters + ---------- + G1,G2: NetworkX Graph or MultiGraph instances. + The two graphs to check for isomorphism or monomorphism + + G1_labels,G2_labels: dict + The label of every node in G1 and G2 respectively + + Returns + ------- + graph_params: namedtuple + Contains all the Graph-related parameters: + + G1,G2 + G1_labels,G2_labels: dict + + state_params: namedtuple + Contains all the State-related parameters: + + mapping: dict + The mapping as extended so far. Maps nodes of G1 to nodes of G2 + + reverse_mapping: dict + The reverse mapping as extended so far. Maps nodes from G2 to nodes of G1. + It's basically "mapping" reversed + + T1, T2: set + Ti contains uncovered neighbors of covered nodes from Gi, i.e. nodes + that are not in the mapping, but are neighbors of nodes that are. + + T1_out, T2_out: set + Ti_out contains all the nodes from Gi, that are neither in the mapping + nor in Ti + """ + G1_labels = dict(G1.nodes(data=node_label, default=default_label)) + G2_labels = dict(G2.nodes(data=node_label, default=default_label)) + + graph_params = _GraphParameters( + G1, + G2, + G1_labels, + G2_labels, + nx.utils.groups(G1_labels), + nx.utils.groups(G2_labels), + nx.utils.groups(G2_degree), + ) + + T1, T1_in = set(), set() + T2, T2_in = set(), set() + if G1.is_directed(): + T1_tilde, T1_tilde_in = ( + set(G1.nodes()), + set(), + ) # todo: do we need Ti_tilde_in? What nodes does it have? + T2_tilde, T2_tilde_in = set(G2.nodes()), set() + else: + T1_tilde, T1_tilde_in = set(G1.nodes()), set() + T2_tilde, T2_tilde_in = set(G2.nodes()), set() + + state_params = _StateParameters( + {}, + {}, + T1, + T1_in, + T1_tilde, + T1_tilde_in, + T2, + T2_in, + T2_tilde, + T2_tilde_in, + ) + + return graph_params, state_params + + +def _matching_order(graph_params): + """The node ordering as introduced in VF2++. + + Notes + ----- + Taking into account the structure of the Graph and the node labeling, the + nodes are placed in an order such that, most of the unfruitful/infeasible + branches of the search space can be pruned on high levels, significantly + decreasing the number of visited states. The premise is that, the algorithm + will be able to recognize inconsistencies early, proceeding to go deep into + the search tree only if it's needed. + + Parameters + ---------- + graph_params: namedtuple + Contains: + + G1,G2: NetworkX Graph or MultiGraph instances. + The two graphs to check for isomorphism or monomorphism. + + G1_labels,G2_labels: dict + The label of every node in G1 and G2 respectively. + + Returns + ------- + node_order: list + The ordering of the nodes. + """ + G1, G2, G1_labels, _, _, nodes_of_G2Labels, _ = graph_params + if not G1 and not G2: + return {} + + if G1.is_directed(): + G1 = G1.to_undirected(as_view=True) + + V1_unordered = set(G1.nodes()) + label_rarity = {label: len(nodes) for label, nodes in nodes_of_G2Labels.items()} + used_degrees = {node: 0 for node in G1} + node_order = [] + + while V1_unordered: + max_rarity = min(label_rarity[G1_labels[x]] for x in V1_unordered) + rarest_nodes = [ + n for n in V1_unordered if label_rarity[G1_labels[n]] == max_rarity + ] + max_node = max(rarest_nodes, key=G1.degree) + + for dlevel_nodes in nx.bfs_layers(G1, max_node): + nodes_to_add = dlevel_nodes.copy() + while nodes_to_add: + max_used_degree = max(used_degrees[n] for n in nodes_to_add) + max_used_degree_nodes = [ + n for n in nodes_to_add if used_degrees[n] == max_used_degree + ] + max_degree = max(G1.degree[n] for n in max_used_degree_nodes) + max_degree_nodes = [ + n for n in max_used_degree_nodes if G1.degree[n] == max_degree + ] + next_node = min( + max_degree_nodes, key=lambda x: label_rarity[G1_labels[x]] + ) + + node_order.append(next_node) + for node in G1.neighbors(next_node): + used_degrees[node] += 1 + + nodes_to_add.remove(next_node) + label_rarity[G1_labels[next_node]] -= 1 + V1_unordered.discard(next_node) + + return node_order + + +def _find_candidates( + u, graph_params, state_params, G1_degree +): # todo: make the 4th argument the degree of u + """Given node u of G1, finds the candidates of u from G2. + + Parameters + ---------- + u: Graph node + The node from G1 for which to find the candidates from G2. + + graph_params: namedtuple + Contains all the Graph-related parameters: + + G1,G2: NetworkX Graph or MultiGraph instances. + The two graphs to check for isomorphism or monomorphism + + G1_labels,G2_labels: dict + The label of every node in G1 and G2 respectively + + state_params: namedtuple + Contains all the State-related parameters: + + mapping: dict + The mapping as extended so far. Maps nodes of G1 to nodes of G2 + + reverse_mapping: dict + The reverse mapping as extended so far. Maps nodes from G2 to nodes + of G1. It's basically "mapping" reversed + + T1, T2: set + Ti contains uncovered neighbors of covered nodes from Gi, i.e. nodes + that are not in the mapping, but are neighbors of nodes that are. + + T1_tilde, T2_tilde: set + Ti_tilde contains all the nodes from Gi, that are neither in the + mapping nor in Ti + + Returns + ------- + candidates: set + The nodes from G2 which are candidates for u. + """ + G1, G2, G1_labels, _, _, nodes_of_G2Labels, G2_nodes_of_degree = graph_params + mapping, reverse_mapping, _, _, _, _, _, _, T2_tilde, _ = state_params + + covered_nbrs = [nbr for nbr in G1[u] if nbr in mapping] + if not covered_nbrs: + candidates = set(nodes_of_G2Labels[G1_labels[u]]) + candidates.intersection_update(G2_nodes_of_degree[G1_degree[u]]) + candidates.intersection_update(T2_tilde) + candidates.difference_update(reverse_mapping) + if G1.is_multigraph(): + candidates.difference_update( + { + node + for node in candidates + if G1.number_of_edges(u, u) != G2.number_of_edges(node, node) + } + ) + return candidates + + nbr1 = covered_nbrs[0] + common_nodes = set(G2[mapping[nbr1]]) + + for nbr1 in covered_nbrs[1:]: + common_nodes.intersection_update(G2[mapping[nbr1]]) + + common_nodes.difference_update(reverse_mapping) + common_nodes.intersection_update(G2_nodes_of_degree[G1_degree[u]]) + common_nodes.intersection_update(nodes_of_G2Labels[G1_labels[u]]) + if G1.is_multigraph(): + common_nodes.difference_update( + { + node + for node in common_nodes + if G1.number_of_edges(u, u) != G2.number_of_edges(node, node) + } + ) + return common_nodes + + +def _find_candidates_Di(u, graph_params, state_params, G1_degree): + G1, G2, G1_labels, _, _, nodes_of_G2Labels, G2_nodes_of_degree = graph_params + mapping, reverse_mapping, _, _, _, _, _, _, T2_tilde, _ = state_params + + covered_successors = [succ for succ in G1[u] if succ in mapping] + covered_predecessors = [pred for pred in G1.pred[u] if pred in mapping] + + if not (covered_successors or covered_predecessors): + candidates = set(nodes_of_G2Labels[G1_labels[u]]) + candidates.intersection_update(G2_nodes_of_degree[G1_degree[u]]) + candidates.intersection_update(T2_tilde) + candidates.difference_update(reverse_mapping) + if G1.is_multigraph(): + candidates.difference_update( + { + node + for node in candidates + if G1.number_of_edges(u, u) != G2.number_of_edges(node, node) + } + ) + return candidates + + if covered_successors: + succ1 = covered_successors[0] + common_nodes = set(G2.pred[mapping[succ1]]) + + for succ1 in covered_successors[1:]: + common_nodes.intersection_update(G2.pred[mapping[succ1]]) + else: + pred1 = covered_predecessors.pop() + common_nodes = set(G2[mapping[pred1]]) + + for pred1 in covered_predecessors: + common_nodes.intersection_update(G2[mapping[pred1]]) + + common_nodes.difference_update(reverse_mapping) + common_nodes.intersection_update(G2_nodes_of_degree[G1_degree[u]]) + common_nodes.intersection_update(nodes_of_G2Labels[G1_labels[u]]) + if G1.is_multigraph(): + common_nodes.difference_update( + { + node + for node in common_nodes + if G1.number_of_edges(u, u) != G2.number_of_edges(node, node) + } + ) + return common_nodes + + +def _feasibility(node1, node2, graph_params, state_params): + """Given a candidate pair of nodes u and v from G1 and G2 respectively, + checks if it's feasible to extend the mapping, i.e. if u and v can be matched. + + Notes + ----- + This function performs all the necessary checking by applying both consistency + and cutting rules. + + Parameters + ---------- + node1, node2: Graph node + The candidate pair of nodes being checked for matching + + graph_params: namedtuple + Contains all the Graph-related parameters: + + G1,G2: NetworkX Graph or MultiGraph instances. + The two graphs to check for isomorphism or monomorphism + + G1_labels,G2_labels: dict + The label of every node in G1 and G2 respectively + + state_params: namedtuple + Contains all the State-related parameters: + + mapping: dict + The mapping as extended so far. Maps nodes of G1 to nodes of G2 + + reverse_mapping: dict + The reverse mapping as extended so far. Maps nodes from G2 to nodes + of G1. It's basically "mapping" reversed + + T1, T2: set + Ti contains uncovered neighbors of covered nodes from Gi, i.e. nodes + that are not in the mapping, but are neighbors of nodes that are. + + T1_out, T2_out: set + Ti_out contains all the nodes from Gi, that are neither in the mapping + nor in Ti + + Returns + ------- + True if all checks are successful, False otherwise. + """ + G1 = graph_params.G1 + + if _cut_PT(node1, node2, graph_params, state_params): + return False + + if G1.is_multigraph(): + if not _consistent_PT(node1, node2, graph_params, state_params): + return False + + return True + + +def _cut_PT(u, v, graph_params, state_params): + """Implements the cutting rules for the ISO problem. + + Parameters + ---------- + u, v: Graph node + The two candidate nodes being examined. + + graph_params: namedtuple + Contains all the Graph-related parameters: + + G1,G2: NetworkX Graph or MultiGraph instances. + The two graphs to check for isomorphism or monomorphism + + G1_labels,G2_labels: dict + The label of every node in G1 and G2 respectively + + state_params: namedtuple + Contains all the State-related parameters: + + mapping: dict + The mapping as extended so far. Maps nodes of G1 to nodes of G2 + + reverse_mapping: dict + The reverse mapping as extended so far. Maps nodes from G2 to nodes + of G1. It's basically "mapping" reversed + + T1, T2: set + Ti contains uncovered neighbors of covered nodes from Gi, i.e. nodes + that are not in the mapping, but are neighbors of nodes that are. + + T1_tilde, T2_tilde: set + Ti_out contains all the nodes from Gi, that are neither in the + mapping nor in Ti + + Returns + ------- + True if we should prune this branch, i.e. the node pair failed the cutting checks. False otherwise. + """ + G1, G2, G1_labels, G2_labels, _, _, _ = graph_params + ( + _, + _, + T1, + T1_in, + T1_tilde, + _, + T2, + T2_in, + T2_tilde, + _, + ) = state_params + + u_labels_predecessors, v_labels_predecessors = {}, {} + if G1.is_directed(): + u_labels_predecessors = nx.utils.groups( + {n1: G1_labels[n1] for n1 in G1.pred[u]} + ) + v_labels_predecessors = nx.utils.groups( + {n2: G2_labels[n2] for n2 in G2.pred[v]} + ) + + if set(u_labels_predecessors.keys()) != set(v_labels_predecessors.keys()): + return True + + u_labels_successors = nx.utils.groups({n1: G1_labels[n1] for n1 in G1[u]}) + v_labels_successors = nx.utils.groups({n2: G2_labels[n2] for n2 in G2[v]}) + + # if the neighbors of u, do not have the same labels as those of v, NOT feasible. + if set(u_labels_successors.keys()) != set(v_labels_successors.keys()): + return True + + for label, G1_nbh in u_labels_successors.items(): + G2_nbh = v_labels_successors[label] + + if G1.is_multigraph(): + # Check for every neighbor in the neighborhood, if u-nbr1 has same edges as v-nbr2 + u_nbrs_edges = sorted(G1.number_of_edges(u, x) for x in G1_nbh) + v_nbrs_edges = sorted(G2.number_of_edges(v, x) for x in G2_nbh) + if any( + u_nbr_edges != v_nbr_edges + for u_nbr_edges, v_nbr_edges in zip(u_nbrs_edges, v_nbrs_edges) + ): + return True + + if len(T1.intersection(G1_nbh)) != len(T2.intersection(G2_nbh)): + return True + if len(T1_tilde.intersection(G1_nbh)) != len(T2_tilde.intersection(G2_nbh)): + return True + if G1.is_directed() and len(T1_in.intersection(G1_nbh)) != len( + T2_in.intersection(G2_nbh) + ): + return True + + if not G1.is_directed(): + return False + + for label, G1_pred in u_labels_predecessors.items(): + G2_pred = v_labels_predecessors[label] + + if G1.is_multigraph(): + # Check for every neighbor in the neighborhood, if u-nbr1 has same edges as v-nbr2 + u_pred_edges = sorted(G1.number_of_edges(u, x) for x in G1_pred) + v_pred_edges = sorted(G2.number_of_edges(v, x) for x in G2_pred) + if any( + u_nbr_edges != v_nbr_edges + for u_nbr_edges, v_nbr_edges in zip(u_pred_edges, v_pred_edges) + ): + return True + + if len(T1.intersection(G1_pred)) != len(T2.intersection(G2_pred)): + return True + if len(T1_tilde.intersection(G1_pred)) != len(T2_tilde.intersection(G2_pred)): + return True + if len(T1_in.intersection(G1_pred)) != len(T2_in.intersection(G2_pred)): + return True + + return False + + +def _consistent_PT(u, v, graph_params, state_params): + """Checks the consistency of extending the mapping using the current node pair. + + Parameters + ---------- + u, v: Graph node + The two candidate nodes being examined. + + graph_params: namedtuple + Contains all the Graph-related parameters: + + G1,G2: NetworkX Graph or MultiGraph instances. + The two graphs to check for isomorphism or monomorphism + + G1_labels,G2_labels: dict + The label of every node in G1 and G2 respectively + + state_params: namedtuple + Contains all the State-related parameters: + + mapping: dict + The mapping as extended so far. Maps nodes of G1 to nodes of G2 + + reverse_mapping: dict + The reverse mapping as extended so far. Maps nodes from G2 to nodes of G1. + It's basically "mapping" reversed + + T1, T2: set + Ti contains uncovered neighbors of covered nodes from Gi, i.e. nodes + that are not in the mapping, but are neighbors of nodes that are. + + T1_out, T2_out: set + Ti_out contains all the nodes from Gi, that are neither in the mapping + nor in Ti + + Returns + ------- + True if the pair passes all the consistency checks successfully. False otherwise. + """ + G1, G2 = graph_params.G1, graph_params.G2 + mapping, reverse_mapping = state_params.mapping, state_params.reverse_mapping + + for neighbor in G1[u]: + if neighbor in mapping: + if G1.number_of_edges(u, neighbor) != G2.number_of_edges( + v, mapping[neighbor] + ): + return False + + for neighbor in G2[v]: + if neighbor in reverse_mapping: + if G1.number_of_edges(u, reverse_mapping[neighbor]) != G2.number_of_edges( + v, neighbor + ): + return False + + if not G1.is_directed(): + return True + + for predecessor in G1.pred[u]: + if predecessor in mapping: + if G1.number_of_edges(predecessor, u) != G2.number_of_edges( + mapping[predecessor], v + ): + return False + + for predecessor in G2.pred[v]: + if predecessor in reverse_mapping: + if G1.number_of_edges( + reverse_mapping[predecessor], u + ) != G2.number_of_edges(predecessor, v): + return False + + return True + + +def _update_Tinout(new_node1, new_node2, graph_params, state_params): + """Updates the Ti/Ti_out (i=1,2) when a new node pair u-v is added to the mapping. + + Notes + ----- + This function should be called right after the feasibility checks are passed, + and node1 is mapped to node2. The purpose of this function is to avoid brute + force computing of Ti/Ti_out by iterating over all nodes of the graph and + checking which nodes satisfy the necessary conditions. Instead, in every step + of the algorithm we focus exclusively on the two nodes that are being added + to the mapping, incrementally updating Ti/Ti_out. + + Parameters + ---------- + new_node1, new_node2: Graph node + The two new nodes, added to the mapping. + + graph_params: namedtuple + Contains all the Graph-related parameters: + + G1,G2: NetworkX Graph or MultiGraph instances. + The two graphs to check for isomorphism or monomorphism + + G1_labels,G2_labels: dict + The label of every node in G1 and G2 respectively + + state_params: namedtuple + Contains all the State-related parameters: + + mapping: dict + The mapping as extended so far. Maps nodes of G1 to nodes of G2 + + reverse_mapping: dict + The reverse mapping as extended so far. Maps nodes from G2 to nodes of G1. + It's basically "mapping" reversed + + T1, T2: set + Ti contains uncovered neighbors of covered nodes from Gi, i.e. nodes + that are not in the mapping, but are neighbors of nodes that are. + + T1_tilde, T2_tilde: set + Ti_out contains all the nodes from Gi, that are neither in the mapping nor in Ti + """ + G1, G2, _, _, _, _, _ = graph_params + ( + mapping, + reverse_mapping, + T1, + T1_in, + T1_tilde, + T1_tilde_in, + T2, + T2_in, + T2_tilde, + T2_tilde_in, + ) = state_params + + uncovered_successors_G1 = {succ for succ in G1[new_node1] if succ not in mapping} + uncovered_successors_G2 = { + succ for succ in G2[new_node2] if succ not in reverse_mapping + } + + # Add the uncovered neighbors of node1 and node2 in T1 and T2 respectively + T1.update(uncovered_successors_G1) + T2.update(uncovered_successors_G2) + T1.discard(new_node1) + T2.discard(new_node2) + + T1_tilde.difference_update(uncovered_successors_G1) + T2_tilde.difference_update(uncovered_successors_G2) + T1_tilde.discard(new_node1) + T2_tilde.discard(new_node2) + + if not G1.is_directed(): + return + + uncovered_predecessors_G1 = { + pred for pred in G1.pred[new_node1] if pred not in mapping + } + uncovered_predecessors_G2 = { + pred for pred in G2.pred[new_node2] if pred not in reverse_mapping + } + + T1_in.update(uncovered_predecessors_G1) + T2_in.update(uncovered_predecessors_G2) + T1_in.discard(new_node1) + T2_in.discard(new_node2) + + T1_tilde.difference_update(uncovered_predecessors_G1) + T2_tilde.difference_update(uncovered_predecessors_G2) + T1_tilde.discard(new_node1) + T2_tilde.discard(new_node2) + + +def _restore_Tinout(popped_node1, popped_node2, graph_params, state_params): + """Restores the previous version of Ti/Ti_out when a node pair is deleted + from the mapping. + + Parameters + ---------- + popped_node1, popped_node2: Graph node + The two nodes deleted from the mapping. + + graph_params: namedtuple + Contains all the Graph-related parameters: + + G1,G2: NetworkX Graph or MultiGraph instances. + The two graphs to check for isomorphism or monomorphism + + G1_labels,G2_labels: dict + The label of every node in G1 and G2 respectively + + state_params: namedtuple + Contains all the State-related parameters: + + mapping: dict + The mapping as extended so far. Maps nodes of G1 to nodes of G2 + + reverse_mapping: dict + The reverse mapping as extended so far. Maps nodes from G2 to nodes of G1. + It's basically "mapping" reversed + + T1, T2: set + Ti contains uncovered neighbors of covered nodes from Gi, i.e. nodes + that are not in the mapping, but are neighbors of nodes that are. + + T1_tilde, T2_tilde: set + Ti_out contains all the nodes from Gi, that are neither in the mapping + nor in Ti + """ + # If the node we want to remove from the mapping, has at least one covered + # neighbor, add it to T1. + G1, G2, _, _, _, _, _ = graph_params + ( + mapping, + reverse_mapping, + T1, + T1_in, + T1_tilde, + T1_tilde_in, + T2, + T2_in, + T2_tilde, + T2_tilde_in, + ) = state_params + + is_added = False + for neighbor in G1[popped_node1]: + if neighbor in mapping: + # if a neighbor of the excluded node1 is in the mapping, keep node1 in T1 + is_added = True + T1.add(popped_node1) + else: + # check if its neighbor has another connection with a covered node. + # If not, only then exclude it from T1 + if any(nbr in mapping for nbr in G1[neighbor]): + continue + T1.discard(neighbor) + T1_tilde.add(neighbor) + + # Case where the node is not present in neither the mapping nor T1. + # By definition, it should belong to T1_tilde + if not is_added: + T1_tilde.add(popped_node1) + + is_added = False + for neighbor in G2[popped_node2]: + if neighbor in reverse_mapping: + is_added = True + T2.add(popped_node2) + else: + if any(nbr in reverse_mapping for nbr in G2[neighbor]): + continue + T2.discard(neighbor) + T2_tilde.add(neighbor) + + if not is_added: + T2_tilde.add(popped_node2) + + +def _restore_Tinout_Di(popped_node1, popped_node2, graph_params, state_params): + # If the node we want to remove from the mapping, has at least one covered neighbor, add it to T1. + G1, G2, _, _, _, _, _ = graph_params + ( + mapping, + reverse_mapping, + T1, + T1_in, + T1_tilde, + T1_tilde_in, + T2, + T2_in, + T2_tilde, + T2_tilde_in, + ) = state_params + + is_added = False + for successor in G1[popped_node1]: + if successor in mapping: + # if a neighbor of the excluded node1 is in the mapping, keep node1 in T1 + is_added = True + T1_in.add(popped_node1) + else: + # check if its neighbor has another connection with a covered node. + # If not, only then exclude it from T1 + if not any(pred in mapping for pred in G1.pred[successor]): + T1.discard(successor) + + if not any(succ in mapping for succ in G1[successor]): + T1_in.discard(successor) + + if successor not in T1: + if successor not in T1_in: + T1_tilde.add(successor) + + for predecessor in G1.pred[popped_node1]: + if predecessor in mapping: + # if a neighbor of the excluded node1 is in the mapping, keep node1 in T1 + is_added = True + T1.add(popped_node1) + else: + # check if its neighbor has another connection with a covered node. + # If not, only then exclude it from T1 + if not any(pred in mapping for pred in G1.pred[predecessor]): + T1.discard(predecessor) + + if not any(succ in mapping for succ in G1[predecessor]): + T1_in.discard(predecessor) + + if not (predecessor in T1 or predecessor in T1_in): + T1_tilde.add(predecessor) + + # Case where the node is not present in neither the mapping nor T1. + # By definition it should belong to T1_tilde + if not is_added: + T1_tilde.add(popped_node1) + + is_added = False + for successor in G2[popped_node2]: + if successor in reverse_mapping: + is_added = True + T2_in.add(popped_node2) + else: + if not any(pred in reverse_mapping for pred in G2.pred[successor]): + T2.discard(successor) + + if not any(succ in reverse_mapping for succ in G2[successor]): + T2_in.discard(successor) + + if successor not in T2: + if successor not in T2_in: + T2_tilde.add(successor) + + for predecessor in G2.pred[popped_node2]: + if predecessor in reverse_mapping: + # if a neighbor of the excluded node1 is in the mapping, keep node1 in T1 + is_added = True + T2.add(popped_node2) + else: + # check if its neighbor has another connection with a covered node. + # If not, only then exclude it from T1 + if not any(pred in reverse_mapping for pred in G2.pred[predecessor]): + T2.discard(predecessor) + + if not any(succ in reverse_mapping for succ in G2[predecessor]): + T2_in.discard(predecessor) + + if not (predecessor in T2 or predecessor in T2_in): + T2_tilde.add(predecessor) + + if not is_added: + T2_tilde.add(popped_node2) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/vf2userfunc.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/vf2userfunc.py new file mode 100644 index 0000000000000000000000000000000000000000..6fcf8a15f6ec0ef517d225a9d0095cfe5dc26ab2 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/isomorphism/vf2userfunc.py @@ -0,0 +1,192 @@ +""" +Module to simplify the specification of user-defined equality functions for +node and edge attributes during isomorphism checks. + +During the construction of an isomorphism, the algorithm considers two +candidate nodes n1 in G1 and n2 in G2. The graphs G1 and G2 are then +compared with respect to properties involving n1 and n2, and if the outcome +is good, then the candidate nodes are considered isomorphic. NetworkX +provides a simple mechanism for users to extend the comparisons to include +node and edge attributes. + +Node attributes are handled by the node_match keyword. When considering +n1 and n2, the algorithm passes their node attribute dictionaries to +node_match, and if it returns False, then n1 and n2 cannot be +considered to be isomorphic. + +Edge attributes are handled by the edge_match keyword. When considering +n1 and n2, the algorithm must verify that outgoing edges from n1 are +commensurate with the outgoing edges for n2. If the graph is directed, +then a similar check is also performed for incoming edges. + +Focusing only on outgoing edges, we consider pairs of nodes (n1, v1) from +G1 and (n2, v2) from G2. For graphs and digraphs, there is only one edge +between (n1, v1) and only one edge between (n2, v2). Those edge attribute +dictionaries are passed to edge_match, and if it returns False, then +n1 and n2 cannot be considered isomorphic. For multigraphs and +multidigraphs, there can be multiple edges between (n1, v1) and also +multiple edges between (n2, v2). Now, there must exist an isomorphism +from "all the edges between (n1, v1)" to "all the edges between (n2, v2)". +So, all of the edge attribute dictionaries are passed to edge_match, and +it must determine if there is an isomorphism between the two sets of edges. +""" + +from . import isomorphvf2 as vf2 + +__all__ = ["GraphMatcher", "DiGraphMatcher", "MultiGraphMatcher", "MultiDiGraphMatcher"] + + +def _semantic_feasibility(self, G1_node, G2_node): + """Returns True if mapping G1_node to G2_node is semantically feasible.""" + # Make sure the nodes match + if self.node_match is not None: + nm = self.node_match(self.G1.nodes[G1_node], self.G2.nodes[G2_node]) + if not nm: + return False + + # Make sure the edges match + if self.edge_match is not None: + # Cached lookups + G1nbrs = self.G1_adj[G1_node] + G2nbrs = self.G2_adj[G2_node] + core_1 = self.core_1 + edge_match = self.edge_match + + for neighbor in G1nbrs: + # G1_node is not in core_1, so we must handle R_self separately + if neighbor == G1_node: + if G2_node in G2nbrs and not edge_match( + G1nbrs[G1_node], G2nbrs[G2_node] + ): + return False + elif neighbor in core_1: + G2_nbr = core_1[neighbor] + if G2_nbr in G2nbrs and not edge_match( + G1nbrs[neighbor], G2nbrs[G2_nbr] + ): + return False + # syntactic check has already verified that neighbors are symmetric + + return True + + +class GraphMatcher(vf2.GraphMatcher): + """VF2 isomorphism checker for undirected graphs.""" + + def __init__(self, G1, G2, node_match=None, edge_match=None): + """Initialize graph matcher. + + Parameters + ---------- + G1, G2: graph + The graphs to be tested. + + node_match: callable + A function that returns True iff node n1 in G1 and n2 in G2 + should be considered equal during the isomorphism test. The + function will be called like:: + + node_match(G1.nodes[n1], G2.nodes[n2]) + + That is, the function will receive the node attribute dictionaries + of the nodes under consideration. If None, then no attributes are + considered when testing for an isomorphism. + + edge_match: callable + A function that returns True iff the edge attribute dictionary for + the pair of nodes (u1, v1) in G1 and (u2, v2) in G2 should be + considered equal during the isomorphism test. The function will be + called like:: + + edge_match(G1[u1][v1], G2[u2][v2]) + + That is, the function will receive the edge attribute dictionaries + of the edges under consideration. If None, then no attributes are + considered when testing for an isomorphism. + + """ + vf2.GraphMatcher.__init__(self, G1, G2) + + self.node_match = node_match + self.edge_match = edge_match + + # These will be modified during checks to minimize code repeat. + self.G1_adj = self.G1.adj + self.G2_adj = self.G2.adj + + semantic_feasibility = _semantic_feasibility + + +class DiGraphMatcher(vf2.DiGraphMatcher): + """VF2 isomorphism checker for directed graphs.""" + + def __init__(self, G1, G2, node_match=None, edge_match=None): + """Initialize graph matcher. + + Parameters + ---------- + G1, G2 : graph + The graphs to be tested. + + node_match : callable + A function that returns True iff node n1 in G1 and n2 in G2 + should be considered equal during the isomorphism test. The + function will be called like:: + + node_match(G1.nodes[n1], G2.nodes[n2]) + + That is, the function will receive the node attribute dictionaries + of the nodes under consideration. If None, then no attributes are + considered when testing for an isomorphism. + + edge_match : callable + A function that returns True iff the edge attribute dictionary for + the pair of nodes (u1, v1) in G1 and (u2, v2) in G2 should be + considered equal during the isomorphism test. The function will be + called like:: + + edge_match(G1[u1][v1], G2[u2][v2]) + + That is, the function will receive the edge attribute dictionaries + of the edges under consideration. If None, then no attributes are + considered when testing for an isomorphism. + + """ + vf2.DiGraphMatcher.__init__(self, G1, G2) + + self.node_match = node_match + self.edge_match = edge_match + + # These will be modified during checks to minimize code repeat. + self.G1_adj = self.G1.adj + self.G2_adj = self.G2.adj + + def semantic_feasibility(self, G1_node, G2_node): + """Returns True if mapping G1_node to G2_node is semantically feasible.""" + + # Test node_match and also test edge_match on successors + feasible = _semantic_feasibility(self, G1_node, G2_node) + if not feasible: + return False + + # Test edge_match on predecessors + self.G1_adj = self.G1.pred + self.G2_adj = self.G2.pred + feasible = _semantic_feasibility(self, G1_node, G2_node) + self.G1_adj = self.G1.adj + self.G2_adj = self.G2.adj + + return feasible + + +# The "semantics" of edge_match are different for multi(di)graphs, but +# the implementation is the same. So, technically we do not need to +# provide "multi" versions, but we do so to match NetworkX's base classes. + + +class MultiGraphMatcher(GraphMatcher): + """VF2 isomorphism checker for undirected multigraphs.""" + + +class MultiDiGraphMatcher(DiGraphMatcher): + """VF2 isomorphism checker for directed multigraphs.""" diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/minors/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/minors/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..cf15ddb592541a959149842a4d581cf9f0a3e5e1 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/minors/__init__.py @@ -0,0 +1,27 @@ +""" +Subpackages related to graph-minor problems. + +In graph theory, an undirected graph H is called a minor of the graph G if H +can be formed from G by deleting edges and vertices and by contracting edges +[1]_. + +References +---------- +.. [1] https://en.wikipedia.org/wiki/Graph_minor +""" + +from networkx.algorithms.minors.contraction import ( + contracted_edge, + contracted_nodes, + equivalence_classes, + identified_nodes, + quotient_graph, +) + +__all__ = [ + "contracted_edge", + "contracted_nodes", + "equivalence_classes", + "identified_nodes", + "quotient_graph", +] diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/minors/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/minors/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..100fc010f416280a46767d72b3410fcf64994d02 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/minors/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/minors/__pycache__/contraction.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/minors/__pycache__/contraction.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ad09ad1167af668f8316ff443914d55ded1f316e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/minors/__pycache__/contraction.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/minors/contraction.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/minors/contraction.py new file mode 100644 index 0000000000000000000000000000000000000000..c6537432cde46ffb84f185fa4819964e70995484 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/minors/contraction.py @@ -0,0 +1,738 @@ +"""Provides functions for computing minors of a graph.""" + +from itertools import chain, combinations, permutations, product + +import networkx as nx +from networkx import density +from networkx.exception import NetworkXException +from networkx.utils import arbitrary_element + +__all__ = [ + "contracted_edge", + "contracted_nodes", + "equivalence_classes", + "identified_nodes", + "quotient_graph", +] + +chaini = chain.from_iterable + + +def equivalence_classes(iterable, relation): + """Returns equivalence classes of `relation` when applied to `iterable`. + + The equivalence classes, or blocks, consist of objects from `iterable` + which are all equivalent. They are defined to be equivalent if the + `relation` function returns `True` when passed any two objects from that + class, and `False` otherwise. To define an equivalence relation the + function must be reflexive, symmetric and transitive. + + Parameters + ---------- + iterable : list, tuple, or set + An iterable of elements/nodes. + + relation : function + A Boolean-valued function that implements an equivalence relation + (reflexive, symmetric, transitive binary relation) on the elements + of `iterable` - it must take two elements and return `True` if + they are related, or `False` if not. + + Returns + ------- + set of frozensets + A set of frozensets representing the partition induced by the equivalence + relation function `relation` on the elements of `iterable`. Each + member set in the return set represents an equivalence class, or + block, of the partition. + + Duplicate elements will be ignored so it makes the most sense for + `iterable` to be a :class:`set`. + + Notes + ----- + This function does not check that `relation` represents an equivalence + relation. You can check that your equivalence classes provide a partition + using `is_partition`. + + Examples + -------- + Let `X` be the set of integers from `0` to `9`, and consider an equivalence + relation `R` on `X` of congruence modulo `3`: this means that two integers + `x` and `y` in `X` are equivalent under `R` if they leave the same + remainder when divided by `3`, i.e. `(x - y) mod 3 = 0`. + + The equivalence classes of this relation are `{0, 3, 6, 9}`, `{1, 4, 7}`, + `{2, 5, 8}`: `0`, `3`, `6`, `9` are all divisible by `3` and leave zero + remainder; `1`, `4`, `7` leave remainder `1`; while `2`, `5` and `8` leave + remainder `2`. We can see this by calling `equivalence_classes` with + `X` and a function implementation of `R`. + + >>> X = set(range(10)) + >>> def mod3(x, y): + ... return (x - y) % 3 == 0 + >>> equivalence_classes(X, mod3) # doctest: +SKIP + {frozenset({1, 4, 7}), frozenset({8, 2, 5}), frozenset({0, 9, 3, 6})} + """ + # For simplicity of implementation, we initialize the return value as a + # list of lists, then convert it to a set of sets at the end of the + # function. + blocks = [] + # Determine the equivalence class for each element of the iterable. + for y in iterable: + # Each element y must be in *exactly one* equivalence class. + # + # Each block is guaranteed to be non-empty + for block in blocks: + x = arbitrary_element(block) + if relation(x, y): + block.append(y) + break + else: + # If the element y is not part of any known equivalence class, it + # must be in its own, so we create a new singleton equivalence + # class for it. + blocks.append([y]) + return {frozenset(block) for block in blocks} + + +@nx._dispatchable(edge_attrs="weight", returns_graph=True) +def quotient_graph( + G, + partition, + edge_relation=None, + node_data=None, + edge_data=None, + weight="weight", + relabel=False, + create_using=None, +): + """Returns the quotient graph of `G` under the specified equivalence + relation on nodes. + + Parameters + ---------- + G : NetworkX graph + The graph for which to return the quotient graph with the + specified node relation. + + partition : function, or dict or list of lists, tuples or sets + If a function, this function must represent an equivalence + relation on the nodes of `G`. It must take two arguments *u* + and *v* and return True exactly when *u* and *v* are in the + same equivalence class. The equivalence classes form the nodes + in the returned graph. + + If a dict of lists/tuples/sets, the keys can be any meaningful + block labels, but the values must be the block lists/tuples/sets + (one list/tuple/set per block), and the blocks must form a valid + partition of the nodes of the graph. That is, each node must be + in exactly one block of the partition. + + If a list of sets, the list must form a valid partition of + the nodes of the graph. That is, each node must be in exactly + one block of the partition. + + edge_relation : Boolean function with two arguments + This function must represent an edge relation on the *blocks* of + the `partition` of `G`. It must take two arguments, *B* and *C*, + each one a set of nodes, and return True exactly when there should be + an edge joining block *B* to block *C* in the returned graph. + + If `edge_relation` is not specified, it is assumed to be the + following relation. Block *B* is related to block *C* if and + only if some node in *B* is adjacent to some node in *C*, + according to the edge set of `G`. + + node_data : function + This function takes one argument, *B*, a set of nodes in `G`, + and must return a dictionary representing the node data + attributes to set on the node representing *B* in the quotient graph. + If None, the following node attributes will be set: + + * 'graph', the subgraph of the graph `G` that this block + represents, + * 'nnodes', the number of nodes in this block, + * 'nedges', the number of edges within this block, + * 'density', the density of the subgraph of `G` that this + block represents. + + edge_data : function + This function takes two arguments, *B* and *C*, each one a set + of nodes, and must return a dictionary representing the edge + data attributes to set on the edge joining *B* and *C*, should + there be an edge joining *B* and *C* in the quotient graph (if + no such edge occurs in the quotient graph as determined by + `edge_relation`, then the output of this function is ignored). + + If the quotient graph would be a multigraph, this function is + not applied, since the edge data from each edge in the graph + `G` appears in the edges of the quotient graph. + + weight : string or None, optional (default="weight") + The name of an edge attribute that holds the numerical value + used as a weight. If None then each edge has weight 1. + + relabel : bool + If True, relabel the nodes of the quotient graph to be + nonnegative integers. Otherwise, the nodes are identified with + :class:`frozenset` instances representing the blocks given in + `partition`. + + create_using : NetworkX graph constructor, optional (default=nx.Graph) + Graph type to create. If graph instance, then cleared before populated. + + Returns + ------- + NetworkX graph + The quotient graph of `G` under the equivalence relation + specified by `partition`. If the partition were given as a + list of :class:`set` instances and `relabel` is False, + each node will be a :class:`frozenset` corresponding to the same + :class:`set`. + + Raises + ------ + NetworkXException + If the given partition is not a valid partition of the nodes of + `G`. + + Examples + -------- + The quotient graph of the complete bipartite graph under the "same + neighbors" equivalence relation is `K_2`. Under this relation, two nodes + are equivalent if they are not adjacent but have the same neighbor set. + + >>> G = nx.complete_bipartite_graph(2, 3) + >>> same_neighbors = lambda u, v: (u not in G[v] and v not in G[u] and G[u] == G[v]) + >>> Q = nx.quotient_graph(G, same_neighbors) + >>> K2 = nx.complete_graph(2) + >>> nx.is_isomorphic(Q, K2) + True + + The quotient graph of a directed graph under the "same strongly connected + component" equivalence relation is the condensation of the graph (see + :func:`condensation`). This example comes from the Wikipedia article + *`Strongly connected component`_*. + + >>> G = nx.DiGraph() + >>> edges = [ + ... "ab", + ... "be", + ... "bf", + ... "bc", + ... "cg", + ... "cd", + ... "dc", + ... "dh", + ... "ea", + ... "ef", + ... "fg", + ... "gf", + ... "hd", + ... "hf", + ... ] + >>> G.add_edges_from(tuple(x) for x in edges) + >>> components = list(nx.strongly_connected_components(G)) + >>> sorted(sorted(component) for component in components) + [['a', 'b', 'e'], ['c', 'd', 'h'], ['f', 'g']] + >>> + >>> C = nx.condensation(G, components) + >>> component_of = C.graph["mapping"] + >>> same_component = lambda u, v: component_of[u] == component_of[v] + >>> Q = nx.quotient_graph(G, same_component) + >>> nx.is_isomorphic(C, Q) + True + + Node identification can be represented as the quotient of a graph under the + equivalence relation that places the two nodes in one block and each other + node in its own singleton block. + + >>> K24 = nx.complete_bipartite_graph(2, 4) + >>> K34 = nx.complete_bipartite_graph(3, 4) + >>> C = nx.contracted_nodes(K34, 1, 2) + >>> nodes = {1, 2} + >>> is_contracted = lambda u, v: u in nodes and v in nodes + >>> Q = nx.quotient_graph(K34, is_contracted) + >>> nx.is_isomorphic(Q, C) + True + >>> nx.is_isomorphic(Q, K24) + True + + The blockmodeling technique described in [1]_ can be implemented as a + quotient graph. + + >>> G = nx.path_graph(6) + >>> partition = [{0, 1}, {2, 3}, {4, 5}] + >>> M = nx.quotient_graph(G, partition, relabel=True) + >>> list(M.edges()) + [(0, 1), (1, 2)] + + Here is the sample example but using partition as a dict of block sets. + + >>> G = nx.path_graph(6) + >>> partition = {0: {0, 1}, 2: {2, 3}, 4: {4, 5}} + >>> M = nx.quotient_graph(G, partition, relabel=True) + >>> list(M.edges()) + [(0, 1), (1, 2)] + + Partitions can be represented in various ways: + + 0. a list/tuple/set of block lists/tuples/sets + 1. a dict with block labels as keys and blocks lists/tuples/sets as values + 2. a dict with block lists/tuples/sets as keys and block labels as values + 3. a function from nodes in the original iterable to block labels + 4. an equivalence relation function on the target iterable + + As `quotient_graph` is designed to accept partitions represented as (0), (1) or + (4) only, the `equivalence_classes` function can be used to get the partitions + in the right form, in order to call `quotient_graph`. + + .. _Strongly connected component: https://en.wikipedia.org/wiki/Strongly_connected_component + + References + ---------- + .. [1] Patrick Doreian, Vladimir Batagelj, and Anuska Ferligoj. + *Generalized Blockmodeling*. + Cambridge University Press, 2004. + + """ + # If the user provided an equivalence relation as a function to compute + # the blocks of the partition on the nodes of G induced by the + # equivalence relation. + if callable(partition): + # equivalence_classes always return partition of whole G. + partition = equivalence_classes(G, partition) + if not nx.community.is_partition(G, partition): + raise nx.NetworkXException( + "Input `partition` is not an equivalence relation for nodes of G" + ) + return _quotient_graph( + G, + partition, + edge_relation, + node_data, + edge_data, + weight, + relabel, + create_using, + ) + + # If the partition is a dict, it is assumed to be one where the keys are + # user-defined block labels, and values are block lists, tuples or sets. + if isinstance(partition, dict): + partition = list(partition.values()) + + # If the user provided partition as a collection of sets. Then we + # need to check if partition covers all of G nodes. If the answer + # is 'No' then we need to prepare suitable subgraph view. + partition_nodes = set().union(*partition) + if len(partition_nodes) != len(G): + G = G.subgraph(partition_nodes) + # Each node in the graph/subgraph must be in exactly one block. + if not nx.community.is_partition(G, partition): + raise NetworkXException("each node must be in exactly one part of `partition`") + return _quotient_graph( + G, + partition, + edge_relation, + node_data, + edge_data, + weight, + relabel, + create_using, + ) + + +def _quotient_graph( + G, partition, edge_relation, node_data, edge_data, weight, relabel, create_using +): + """Construct the quotient graph assuming input has been checked""" + if create_using is None: + H = G.__class__() + else: + H = nx.empty_graph(0, create_using) + # By default set some basic information about the subgraph that each block + # represents on the nodes in the quotient graph. + if node_data is None: + + def node_data(b): + S = G.subgraph(b) + return { + "graph": S, + "nnodes": len(S), + "nedges": S.number_of_edges(), + "density": density(S), + } + + # Each block of the partition becomes a node in the quotient graph. + partition = [frozenset(b) for b in partition] + H.add_nodes_from((b, node_data(b)) for b in partition) + # By default, the edge relation is the relation defined as follows. B is + # adjacent to C if a node in B is adjacent to a node in C, according to the + # edge set of G. + # + # This is not a particularly efficient implementation of this relation: + # there are O(n^2) pairs to check and each check may require O(log n) time + # (to check set membership). This can certainly be parallelized. + if edge_relation is None: + + def edge_relation(b, c): + return any(v in G[u] for u, v in product(b, c)) + + # By default, sum the weights of the edges joining pairs of nodes across + # blocks to get the weight of the edge joining those two blocks. + if edge_data is None: + + def edge_data(b, c): + edgedata = ( + d + for u, v, d in G.edges(b | c, data=True) + if (u in b and v in c) or (u in c and v in b) + ) + return {"weight": sum(d.get(weight, 1) for d in edgedata)} + + block_pairs = permutations(H, 2) if H.is_directed() else combinations(H, 2) + # In a multigraph, add one edge in the quotient graph for each edge + # in the original graph. + if H.is_multigraph(): + edges = chaini( + ( + (b, c, G.get_edge_data(u, v, default={})) + for u, v in product(b, c) + if v in G[u] + ) + for b, c in block_pairs + if edge_relation(b, c) + ) + # In a simple graph, apply the edge data function to each pair of + # blocks to determine the edge data attributes to apply to each edge + # in the quotient graph. + else: + edges = ( + (b, c, edge_data(b, c)) for (b, c) in block_pairs if edge_relation(b, c) + ) + H.add_edges_from(edges) + # If requested by the user, relabel the nodes to be integers, + # numbered in increasing order from zero in the same order as the + # iteration order of `partition`. + if relabel: + # Can't use nx.convert_node_labels_to_integers() here since we + # want the order of iteration to be the same for backward + # compatibility with the nx.blockmodel() function. + labels = {b: i for i, b in enumerate(partition)} + H = nx.relabel_nodes(H, labels) + return H + + +@nx._dispatchable( + preserve_all_attrs=True, mutates_input={"not copy": 4}, returns_graph=True +) +def contracted_nodes( + G, u, v, self_loops=True, copy=True, *, store_contraction_as="contraction" +): + """Returns the graph that results from contracting `u` and `v`. + + Node contraction identifies the two nodes as a single node incident to any + edge that was incident to the original two nodes. + Information about the contracted nodes and any modified edges are stored on + the output graph in a ``"contraction"`` attribute - see Examples for details. + + Parameters + ---------- + G : NetworkX graph + The graph whose nodes will be contracted. + + u, v : nodes + Must be nodes in `G`. + + self_loops : Boolean + If this is True, any edges joining `u` and `v` in `G` become + self-loops on the new node in the returned graph. + + copy : Boolean + If this is True (the default), make a copy of + `G` and return that instead of directly changing `G`. + + store_contraction_as : str or None, default="contraction" + Name of the node/edge attribute where information about the contraction + should be stored. By default information about the contracted node and + any contracted edges is stored in a ``"contraction"`` attribute on the + resulting node and edge. If `None`, information about the contracted + nodes/edges and their data are not stored. + + Returns + ------- + Networkx graph + If `copy` is True, + A new graph object of the same type as `G` (leaving `G` unmodified) + with `u` and `v` identified in a single node. The right node `v` + will be merged into the node `u`, so only `u` will appear in the + returned graph. + If `copy` is False, + Modifies `G` with `u` and `v` identified in a single node. + The right node `v` will be merged into the node `u`, so + only `u` will appear in the returned graph. + + Notes + ----- + For multigraphs, the edge keys for the realigned edges may + not be the same as the edge keys for the old edges. This is + natural because edge keys are unique only within each pair of nodes. + + This function is also available as `identified_nodes`. + + Examples + -------- + Contracting two nonadjacent nodes of the cycle graph on four nodes `C_4` + yields the path graph (ignoring parallel edges): + + >>> G = nx.cycle_graph(4) + >>> M = nx.contracted_nodes(G, 1, 3) + >>> P3 = nx.path_graph(3) + >>> nx.is_isomorphic(M, P3) + True + + Information about the contracted nodes is stored on the resulting graph in + a ``"contraction"`` attribute. For instance, the contracted node is stored + as an attribute on ``u``: + + >>> H = nx.contracted_nodes(P3, 0, 2) + >>> H.nodes(data=True) + NodeDataView({0: {'contraction': {2: {}}}, 1: {}}) + + Any node attributes on the contracted node are also preserved: + + >>> nx.set_node_attributes(P3, dict(enumerate("rgb")), name="color") + >>> P3.nodes(data=True) + NodeDataView({0: {'color': 'r'}, 1: {'color': 'g'}, 2: {'color': 'b'}}) + >>> H = nx.contracted_nodes(P3, 0, 2) + >>> H.nodes[0] + {'color': 'r', 'contraction': {2: {'color': 'b'}}} + + Edges are handled similarly: when ``u`` and ``v`` are adjacent to a third node + ``w``, the edge ``(v, w)`` will be contracted into the edge ``(u, w)`` with + its attributes stored into a ``"contraction"`` attribute on edge ``(u, w)``: + + >>> nx.set_edge_attributes(P3, {(0, 1): 10, (1, 2): 100}, name="weight") + >>> P3.edges(data=True) + EdgeDataView([(0, 1, {'weight': 10}), (1, 2, {'weight': 100})]) + >>> H = nx.contracted_nodes(P3, 0, 2) + >>> H.edges(data=True) + EdgeDataView([(0, 1, {'weight': 10, 'contraction': {(2, 1): {'weight': 100}}})]) + + Attributes from contracted nodes/edges can be combined with those of the + nodes/edges onto which they were contracted: + + >>> # Concatenate colors of contracted nodes + >>> for u, cdict in H.nodes(data="contraction"): + ... if cdict is not None: + ... H.nodes[u]["color"] += "".join(n["color"] for n in cdict.values()) + ... del H.nodes[u]["contraction"] # Remove contraction attr (optional) + >>> H.nodes(data=True) + NodeDataView({0: {'color': 'rb'}, 1: {'color': 'g'}}) + >>> # Sum contracted edge weights + >>> for u, v, cdict in H.edges(data="contraction"): + ... if cdict is not None: + ... H[u][v]["weight"] += sum(n["weight"] for n in cdict.values()) + ... del H.edges[(u, v)]["contraction"] # Remove contraction attr (optional) + >>> H.edges(data=True) + EdgeDataView([(0, 1, {'weight': 110})]) + + If `G` is a multigraph, then a new edge is added instead. Any edge attributes + are still preserved: + + >>> MG = nx.MultiGraph(P3) + >>> MH = nx.contracted_nodes(MG, 0, 2) + >>> MH.edges(keys=True, data=True) + MultiEdgeDataView([(0, 1, 0, {'weight': 10}), (0, 1, 1, {'weight': 100})]) + + If ``selfloops=True`` (the default), any edges adjoining `u` and `v` become + self-loops on ``u`` in the resulting graph: + + >>> G = nx.Graph([(1, 2)]) + >>> H = nx.contracted_nodes(G, 1, 2) + >>> H.nodes, H.edges + (NodeView((1,)), EdgeView([(1, 1)])) + >>> H = nx.contracted_nodes(G, 1, 2, self_loops=False) + >>> H.nodes, H.edges + (NodeView((1,)), EdgeView([])) + + Note however that any self loops in the original graph `G` are preserved: + + >>> G = nx.Graph([(1, 2), (2, 2)]) + >>> H = nx.contracted_nodes(G, 1, 2, self_loops=False) + >>> H.nodes, H.edges + (NodeView((1,)), EdgeView([(1, 1)])) + + The same reasoning applies to MultiGraphs: + + >>> MG = nx.MultiGraph([(1, 2), (2, 2)]) + >>> # Edge (1, 1, 0) in MH corresponds to edge (2, 2) in MG + >>> MH = nx.contracted_nodes(MG, 1, 2, self_loops=False) + >>> MH.edges(keys=True) + MultiEdgeView([(1, 1, 0)]) + >>> # MH has two (1, 1) edges - one from edge (2, 2) in MG, and one + >>> # resulting from the contraction of 2->1 + >>> MH = nx.contracted_nodes(MG, 1, 2, self_loops=True) + >>> MH.edges(keys=True) + MultiEdgeView([(1, 1, 0), (1, 1, 1)]) + + + In a ``MultiDiGraph`` with a self loop, the in and out edges will + be treated separately as edges, so while contracting a node which + has a self loop the contraction will add multiple edges: + + >>> G = nx.MultiDiGraph([(1, 2), (2, 2)]) + >>> H = nx.contracted_nodes(G, 1, 2) + >>> list(H.edges()) # edge 1->2, 2->2, 2<-2 from the original Graph G + [(1, 1), (1, 1), (1, 1)] + >>> H = nx.contracted_nodes(G, 1, 2, self_loops=False) + >>> list(H.edges()) # edge 2->2, 2<-2 from the original Graph G + [(1, 1), (1, 1)] + + See Also + -------- + contracted_edge + quotient_graph + + """ + # Copying has significant overhead and can be disabled if needed + H = G.copy() if copy else G + + # edge code uses G.edges(v) instead of G.adj[v] to handle multiedges + if H.is_directed(): + edges_to_remap = chain(G.in_edges(v, data=True), G.out_edges(v, data=True)) + else: + edges_to_remap = G.edges(v, data=True) + + # If the H=G, the generators change as H changes + # This makes the edges_to_remap independent of H + if not copy: + edges_to_remap = list(edges_to_remap) + + v_data = H.nodes[v] + H.remove_node(v) + + # A bit of input munging to extract whether contraction info should be + # stored, and if so bind to a shorter name + if _store_contraction := (store_contraction_as is not None): + contraction = store_contraction_as + + for prev_w, prev_x, d in edges_to_remap: + w = prev_w if prev_w != v else u + x = prev_x if prev_x != v else u + + if ({prev_w, prev_x} == {u, v}) and not self_loops: + continue + + if not H.has_edge(w, x) or G.is_multigraph(): + H.add_edge(w, x, **d) + continue + + # Store information about the contracted edge iff `store_contraction` is not None + if _store_contraction: + if contraction in H.edges[(w, x)]: + H.edges[(w, x)][contraction][(prev_w, prev_x)] = d + else: + H.edges[(w, x)][contraction] = {(prev_w, prev_x): d} + + # Store information about the contracted node iff `store_contraction` + if _store_contraction: + if contraction in H.nodes[u]: + H.nodes[u][contraction][v] = v_data + else: + H.nodes[u][contraction] = {v: v_data} + + return H + + +identified_nodes = contracted_nodes + + +@nx._dispatchable( + preserve_all_attrs=True, mutates_input={"not copy": 3}, returns_graph=True +) +def contracted_edge( + G, edge, self_loops=True, copy=True, *, store_contraction_as="contraction" +): + """Returns the graph that results from contracting the specified edge. + + Edge contraction identifies the two endpoints of the edge as a single node + incident to any edge that was incident to the original two nodes. A graph + that results from edge contraction is called a *minor* of the original + graph. + + Parameters + ---------- + G : NetworkX graph + The graph whose edge will be contracted. + + edge : tuple + Must be a pair of nodes in `G`. + + self_loops : Boolean + If this is True, any edges (including `edge`) joining the + endpoints of `edge` in `G` become self-loops on the new node in the + returned graph. + + copy : Boolean (default True) + If this is True, a the contraction will be performed on a copy of `G`, + otherwise the contraction will happen in place. + + store_contraction_as : str or None, default="contraction" + Name of the node/edge attribute where information about the contraction + should be stored. By default information about the contracted node and + any contracted edges is stored in a ``"contraction"`` attribute on the + resulting node and edge. If `None`, information about the contracted + nodes/edges and their data are not stored. + + Returns + ------- + Networkx graph + A new graph object of the same type as `G` (leaving `G` unmodified) + with endpoints of `edge` identified in a single node. The right node + of `edge` will be merged into the left one, so only the left one will + appear in the returned graph. + + Raises + ------ + ValueError + If `edge` is not an edge in `G`. + + Examples + -------- + Attempting to contract two nonadjacent nodes yields an error: + + >>> G = nx.cycle_graph(4) + >>> nx.contracted_edge(G, (1, 3)) + Traceback (most recent call last): + ... + ValueError: Edge (1, 3) does not exist in graph G; cannot contract it + + Contracting two adjacent nodes in the cycle graph on *n* nodes yields the + cycle graph on *n - 1* nodes: + + >>> C5 = nx.cycle_graph(5) + >>> C4 = nx.cycle_graph(4) + >>> M = nx.contracted_edge(C5, (0, 1), self_loops=False) + >>> nx.is_isomorphic(M, C4) + True + + See also + -------- + contracted_nodes + quotient_graph + + """ + u, v = edge[:2] + if not G.has_edge(u, v): + raise ValueError(f"Edge {edge} does not exist in graph G; cannot contract it") + return contracted_nodes( + G, + u, + v, + self_loops=self_loops, + copy=copy, + store_contraction_as=store_contraction_as, + ) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/minors/tests/__pycache__/test_contraction.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/minors/tests/__pycache__/test_contraction.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bf5854089880991a7d50742c592fede21863c617 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/minors/tests/__pycache__/test_contraction.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/minors/tests/test_contraction.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/minors/tests/test_contraction.py new file mode 100644 index 0000000000000000000000000000000000000000..2fdfe575b5da0b5aa5a0fdb073926d04149f4161 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/minors/tests/test_contraction.py @@ -0,0 +1,544 @@ +"""Unit tests for the :mod:`networkx.algorithms.minors.contraction` module.""" + +import pytest + +import networkx as nx +from networkx.utils import arbitrary_element, edges_equal, nodes_equal + + +def test_quotient_graph_complete_multipartite(): + """Tests that the quotient graph of the complete *n*-partite graph + under the "same neighbors" node relation is the complete graph on *n* + nodes. + + """ + G = nx.complete_multipartite_graph(2, 3, 4) + # Two nodes are equivalent if they are not adjacent but have the same + # neighbor set. + + def same_neighbors(u, v): + return u not in G[v] and v not in G[u] and G[u] == G[v] + + expected = nx.complete_graph(3) + actual = nx.quotient_graph(G, same_neighbors) + # It won't take too long to run a graph isomorphism algorithm on such + # small graphs. + assert nx.is_isomorphic(expected, actual) + + +def test_quotient_graph_complete_bipartite(): + """Tests that the quotient graph of the complete bipartite graph under + the "same neighbors" node relation is `K_2`. + + """ + G = nx.complete_bipartite_graph(2, 3) + # Two nodes are equivalent if they are not adjacent but have the same + # neighbor set. + + def same_neighbors(u, v): + return u not in G[v] and v not in G[u] and G[u] == G[v] + + expected = nx.complete_graph(2) + actual = nx.quotient_graph(G, same_neighbors) + # It won't take too long to run a graph isomorphism algorithm on such + # small graphs. + assert nx.is_isomorphic(expected, actual) + + +def test_quotient_graph_edge_relation(): + """Tests for specifying an alternate edge relation for the quotient + graph. + + """ + G = nx.path_graph(5) + + def identity(u, v): + return u == v + + def same_parity(b, c): + return arbitrary_element(b) % 2 == arbitrary_element(c) % 2 + + actual = nx.quotient_graph(G, identity, same_parity) + expected = nx.Graph() + expected.add_edges_from([(0, 2), (0, 4), (2, 4)]) + expected.add_edge(1, 3) + assert nx.is_isomorphic(actual, expected) + + +def test_condensation_as_quotient(): + """This tests that the condensation of a graph can be viewed as the + quotient graph under the "in the same connected component" equivalence + relation. + + """ + # This example graph comes from the file `test_strongly_connected.py`. + G = nx.DiGraph() + G.add_edges_from( + [ + (1, 2), + (2, 3), + (2, 11), + (2, 12), + (3, 4), + (4, 3), + (4, 5), + (5, 6), + (6, 5), + (6, 7), + (7, 8), + (7, 9), + (7, 10), + (8, 9), + (9, 7), + (10, 6), + (11, 2), + (11, 4), + (11, 6), + (12, 6), + (12, 11), + ] + ) + scc = list(nx.strongly_connected_components(G)) + C = nx.condensation(G, scc) + component_of = C.graph["mapping"] + # Two nodes are equivalent if they are in the same connected component. + + def same_component(u, v): + return component_of[u] == component_of[v] + + Q = nx.quotient_graph(G, same_component) + assert nx.is_isomorphic(C, Q) + + +def test_path(): + G = nx.path_graph(6) + partition = [{0, 1}, {2, 3}, {4, 5}] + M = nx.quotient_graph(G, partition, relabel=True) + assert nodes_equal(M, [0, 1, 2]) + assert edges_equal(M.edges(), [(0, 1), (1, 2)]) + for n in M: + assert M.nodes[n]["nedges"] == 1 + assert M.nodes[n]["nnodes"] == 2 + assert M.nodes[n]["density"] == 1 + + +def test_path__partition_provided_as_dict_of_lists(): + G = nx.path_graph(6) + partition = {0: [0, 1], 2: [2, 3], 4: [4, 5]} + M = nx.quotient_graph(G, partition, relabel=True) + assert nodes_equal(M, [0, 1, 2]) + assert edges_equal(M.edges(), [(0, 1), (1, 2)]) + for n in M: + assert M.nodes[n]["nedges"] == 1 + assert M.nodes[n]["nnodes"] == 2 + assert M.nodes[n]["density"] == 1 + + +def test_path__partition_provided_as_dict_of_tuples(): + G = nx.path_graph(6) + partition = {0: (0, 1), 2: (2, 3), 4: (4, 5)} + M = nx.quotient_graph(G, partition, relabel=True) + assert nodes_equal(M, [0, 1, 2]) + assert edges_equal(M.edges(), [(0, 1), (1, 2)]) + for n in M: + assert M.nodes[n]["nedges"] == 1 + assert M.nodes[n]["nnodes"] == 2 + assert M.nodes[n]["density"] == 1 + + +def test_path__partition_provided_as_dict_of_sets(): + G = nx.path_graph(6) + partition = {0: {0, 1}, 2: {2, 3}, 4: {4, 5}} + M = nx.quotient_graph(G, partition, relabel=True) + assert nodes_equal(M, [0, 1, 2]) + assert edges_equal(M.edges(), [(0, 1), (1, 2)]) + for n in M: + assert M.nodes[n]["nedges"] == 1 + assert M.nodes[n]["nnodes"] == 2 + assert M.nodes[n]["density"] == 1 + + +def test_multigraph_path(): + G = nx.MultiGraph(nx.path_graph(6)) + partition = [{0, 1}, {2, 3}, {4, 5}] + M = nx.quotient_graph(G, partition, relabel=True) + assert nodes_equal(M, [0, 1, 2]) + assert edges_equal(M.edges(), [(0, 1), (1, 2)]) + for n in M: + assert M.nodes[n]["nedges"] == 1 + assert M.nodes[n]["nnodes"] == 2 + assert M.nodes[n]["density"] == 1 + + +def test_directed_path(): + G = nx.DiGraph() + nx.add_path(G, range(6)) + partition = [{0, 1}, {2, 3}, {4, 5}] + M = nx.quotient_graph(G, partition, relabel=True) + assert nodes_equal(M, [0, 1, 2]) + assert edges_equal(M.edges(), [(0, 1), (1, 2)], directed=True) + for n in M: + assert M.nodes[n]["nedges"] == 1 + assert M.nodes[n]["nnodes"] == 2 + assert M.nodes[n]["density"] == 0.5 + + +def test_directed_multigraph_path(): + G = nx.MultiDiGraph() + nx.add_path(G, range(6)) + partition = [{0, 1}, {2, 3}, {4, 5}] + M = nx.quotient_graph(G, partition, relabel=True) + assert nodes_equal(M, [0, 1, 2]) + assert edges_equal(M.edges(), [(0, 1), (1, 2)], directed=True) + for n in M: + assert M.nodes[n]["nedges"] == 1 + assert M.nodes[n]["nnodes"] == 2 + assert M.nodes[n]["density"] == 0.5 + + +def test_overlapping_blocks(): + with pytest.raises(nx.NetworkXException): + G = nx.path_graph(6) + partition = [{0, 1, 2}, {2, 3}, {4, 5}] + nx.quotient_graph(G, partition) + + +def test_weighted_path(): + G = nx.path_graph(6) + for i in range(5): + G[i][i + 1]["w"] = i + 1 + partition = [{0, 1}, {2, 3}, {4, 5}] + M = nx.quotient_graph(G, partition, weight="w", relabel=True) + assert nodes_equal(M, [0, 1, 2]) + assert edges_equal(M.edges(), [(0, 1), (1, 2)]) + assert M[0][1]["weight"] == 2 + assert M[1][2]["weight"] == 4 + for n in M: + assert M.nodes[n]["nedges"] == 1 + assert M.nodes[n]["nnodes"] == 2 + assert M.nodes[n]["density"] == 1 + + +def test_barbell(): + G = nx.barbell_graph(3, 0) + partition = [{0, 1, 2}, {3, 4, 5}] + M = nx.quotient_graph(G, partition, relabel=True) + assert nodes_equal(M, [0, 1]) + assert edges_equal(M.edges(), [(0, 1)]) + for n in M: + assert M.nodes[n]["nedges"] == 3 + assert M.nodes[n]["nnodes"] == 3 + assert M.nodes[n]["density"] == 1 + + +def test_barbell_plus(): + G = nx.barbell_graph(3, 0) + # Add an extra edge joining the bells. + G.add_edge(0, 5) + partition = [{0, 1, 2}, {3, 4, 5}] + M = nx.quotient_graph(G, partition, relabel=True) + assert nodes_equal(M, [0, 1]) + assert edges_equal(M.edges(), [(0, 1)]) + assert M[0][1]["weight"] == 2 + for n in M: + assert M.nodes[n]["nedges"] == 3 + assert M.nodes[n]["nnodes"] == 3 + assert M.nodes[n]["density"] == 1 + + +def test_blockmodel(): + G = nx.path_graph(6) + partition = [[0, 1], [2, 3], [4, 5]] + M = nx.quotient_graph(G, partition, relabel=True) + assert nodes_equal(M.nodes(), [0, 1, 2]) + assert edges_equal(M.edges(), [(0, 1), (1, 2)]) + for n in M.nodes(): + assert M.nodes[n]["nedges"] == 1 + assert M.nodes[n]["nnodes"] == 2 + assert M.nodes[n]["density"] == 1.0 + + +def test_multigraph_blockmodel(): + G = nx.MultiGraph(nx.path_graph(6)) + partition = [[0, 1], [2, 3], [4, 5]] + M = nx.quotient_graph(G, partition, create_using=nx.MultiGraph(), relabel=True) + assert nodes_equal(M.nodes(), [0, 1, 2]) + assert edges_equal(M.edges(), [(0, 1), (1, 2)]) + for n in M.nodes(): + assert M.nodes[n]["nedges"] == 1 + assert M.nodes[n]["nnodes"] == 2 + assert M.nodes[n]["density"] == 1.0 + + +def test_quotient_graph_incomplete_partition(): + G = nx.path_graph(6) + partition = [] + H = nx.quotient_graph(G, partition, relabel=True) + assert nodes_equal(H.nodes(), []) + assert edges_equal(H.edges(), []) + + partition = [[0, 1], [2, 3], [5]] + H = nx.quotient_graph(G, partition, relabel=True) + assert nodes_equal(H.nodes(), [0, 1, 2]) + assert edges_equal(H.edges(), [(0, 1)]) + + +@pytest.mark.parametrize("store_contraction_as", ("contraction", "c", None)) +@pytest.mark.parametrize("copy", (True, False)) +@pytest.mark.parametrize("selfloops", (True, False)) +def test_undirected_node_contraction(store_contraction_as, copy, selfloops): + """Tests for node contraction in an undirected graph.""" + G = nx.cycle_graph(4) + actual = nx.contracted_nodes( + G, + 0, + 1, + copy=copy, + self_loops=selfloops, + store_contraction_as=store_contraction_as, + ) + + expected = nx.cycle_graph(3) + if selfloops: + expected.add_edge(0, 0) + + assert nx.is_isomorphic(actual, expected) + + if not copy: + assert actual is G + + # Test contracted node attributes + if store_contraction_as is not None: + assert actual.nodes[0][store_contraction_as] == {1: {}} + else: + assert actual.nodes[0] == {} + # There should be no contracted edges for this case + assert all(d == {} for _, _, d in actual.edges(data=True)) + + +@pytest.mark.parametrize("store_contraction_as", ("contraction", "c", None)) +@pytest.mark.parametrize("copy", (True, False)) +@pytest.mark.parametrize("selfloops", (True, False)) +def test_directed_node_contraction(store_contraction_as, copy, selfloops): + """Tests for node contraction in a directed graph.""" + G = nx.DiGraph(nx.cycle_graph(4)) + actual = nx.contracted_nodes( + G, + 0, + 1, + copy=copy, + self_loops=selfloops, + store_contraction_as=store_contraction_as, + ) + + expected = nx.DiGraph(nx.cycle_graph(3)) + if selfloops: + expected.add_edge(0, 0) + + assert nx.is_isomorphic(actual, expected) + + if not copy: + assert actual is G + # Test contracted node attributes + if store_contraction_as is not None: + assert actual.nodes[0][store_contraction_as] == {1: {}} + else: + assert actual.nodes[0] == {} + # Test contracted edge attributes (only relevant if self loops is enabled) + if selfloops and store_contraction_as: + assert actual.edges[(0, 0)][store_contraction_as] == {(1, 0): {}} + else: + assert all(d == {} for _, _, d in actual.edges(data=True)) + + +@pytest.mark.parametrize("store_contraction_as", ("contraction", "c", None)) +@pytest.mark.parametrize("copy", (True, False)) +@pytest.mark.parametrize("selfloops", (True, False)) +def test_contracted_nodes_multigraph(store_contraction_as, copy, selfloops): + """Tests that using a MultiGraph creates multiple edges. `store_contraction_as` + has no effect for multigraphs.""" + G = nx.path_graph(3, create_using=nx.MultiGraph) + G.add_edges_from([(0, 1), (0, 0), (0, 2)]) + actual = nx.contracted_nodes( + G, + 0, + 2, + copy=copy, + self_loops=selfloops, + store_contraction_as=store_contraction_as, + ) + # Two (0, 1) edges from G, another from the contraction of edge (1, 2) + expected = nx.MultiGraph([(0, 1), (0, 1), (0, 1), (0, 0)]) + # One (0, 0) edge from G, another from the contraction of edge (0, 2), but + # only if `selfloops` is True + if selfloops: + expected.add_edge(0, 0) + + assert edges_equal(actual.edges, expected.edges) + if not copy: + assert actual is G + + +def test_multigraph_keys(): + """Tests that multiedge keys are reset in new graph.""" + G = nx.path_graph(3, create_using=nx.MultiGraph()) + G.add_edge(0, 1, 5) + G.add_edge(0, 0, 0) + G.add_edge(0, 2, 5) + actual = nx.contracted_nodes(G, 0, 2) + expected = nx.MultiGraph() + expected.add_edge(0, 1, 0) + expected.add_edge(0, 1, 5) + expected.add_edge(0, 1, 2) # keyed as 2 b/c 2 edges already in G + expected.add_edge(0, 0, 0) + expected.add_edge(0, 0, 1) # this comes from (0, 2, 5) + assert edges_equal(actual.edges, expected.edges) + + +@pytest.mark.parametrize("store_contraction_as", ("contraction", "c", None)) +@pytest.mark.parametrize("copy", (True, False)) +@pytest.mark.parametrize("selfloops", (True, False)) +def test_node_attributes(store_contraction_as, copy, selfloops): + """Tests that node contraction preserves node attributes.""" + G = nx.cycle_graph(4) + # Add some data to the two nodes being contracted. + G.nodes[0]["foo"] = "bar" + G.nodes[1]["baz"] = "xyzzy" + actual = nx.contracted_nodes( + G, + 0, + 1, + copy=copy, + self_loops=selfloops, + store_contraction_as=store_contraction_as, + ) + # We expect that contracting the nodes 0 and 1 in C_4 yields K_3, but + # with nodes labeled 0, 2, and 3. + expected = nx.complete_graph(3) + expected = nx.relabel_nodes(expected, {1: 2, 2: 3}) + expected.nodes[0]["foo"] = "bar" + # ... and a self-loop (0, 0), if self_loops=True + if selfloops: + expected.add_edge(0, 0) + + if store_contraction_as: + cdict = {1: {"baz": "xyzzy"}} + expected.nodes[0].update({"foo": "bar", store_contraction_as: cdict}) + + assert nx.is_isomorphic(actual, expected) + assert actual.nodes(data=True) == expected.nodes(data=True) + if not copy: + assert actual is G + + +@pytest.mark.parametrize("store_contraction_as", ("contraction", "c", None)) +def test_edge_attributes(store_contraction_as): + """Tests that node contraction preserves edge attributes.""" + # Shape: src1 --> dest <-- src2 + G = nx.DiGraph([("src1", "dest"), ("src2", "dest")]) + G["src1"]["dest"]["value"] = "src1-->dest" + G["src2"]["dest"]["value"] = "src2-->dest" + + # New Shape: src1 --> dest + H = nx.contracted_nodes( + G, "src1", "src2", store_contraction_as=store_contraction_as + ) + assert H.edges[("src1", "dest")]["value"] == "src1-->dest" # Should be unchanged + if store_contraction_as: + assert ( + H.edges[("src1", "dest")][store_contraction_as][("src2", "dest")]["value"] + == "src2-->dest" + ) + else: + assert store_contraction_as not in H.edges[("src1", "dest")] + + G = nx.MultiDiGraph(G) + # New Shape: src1 -(x2)-> dest + H = nx.contracted_nodes( + G, "src1", "src2", store_contraction_as=store_contraction_as + ) + # store_contraction should not affect multigraphs + assert len(H.edges(("src1", "dest"))) == 2 + assert H.edges[("src1", "dest", 0)]["value"] == "src1-->dest" + assert H.edges[("src1", "dest", 1)]["value"] == "src2-->dest" + + +def test_contract_loop_graph(): + """Tests for node contraction when nodes have loops.""" + G = nx.cycle_graph(4) + G.add_edge(0, 0) + actual = nx.contracted_nodes(G, 0, 1) + expected = nx.complete_graph([0, 2, 3]) + expected.add_edge(0, 0) + assert edges_equal(actual.edges, expected.edges) + actual = nx.contracted_nodes(G, 1, 0) + expected = nx.complete_graph([1, 2, 3]) + expected.add_edge(1, 1) + assert edges_equal(actual.edges, expected.edges) + + +@pytest.mark.parametrize("store_contraction_as", ("contraction", "c", None)) +@pytest.mark.parametrize("copy", (True, False)) +@pytest.mark.parametrize("selfloops", (True, False)) +def test_undirected_edge_contraction(store_contraction_as, copy, selfloops): + """Tests for node contraction in an undirected graph.""" + G = nx.cycle_graph(4) + actual = nx.contracted_edge( + G, + (0, 1), + copy=copy, + self_loops=selfloops, + store_contraction_as=store_contraction_as, + ) + + expected = nx.cycle_graph(3) + if selfloops: + expected.add_edge(0, 0) + + assert nx.is_isomorphic(actual, expected) + + if not copy: + assert actual is G + + # Test contracted node attributes + if store_contraction_as is not None: + assert actual.nodes[0][store_contraction_as] == {1: {}} + else: + assert actual.nodes[0] == {} + # There should be no contracted edges for this case + assert all(d == {} for _, _, d in actual.edges(data=True)) + + +@pytest.mark.parametrize("edge", [(0, 1), (0, 1, 0)]) +@pytest.mark.parametrize("store_contraction_as", ("contraction", "c", None)) +@pytest.mark.parametrize("copy", [True, False]) +@pytest.mark.parametrize("selfloops", [True, False]) +def test_multigraph_edge_contraction(edge, store_contraction_as, copy, selfloops): + """Tests for edge contraction in a multigraph""" + G = nx.cycle_graph(4, create_using=nx.MultiGraph) + actual = nx.contracted_edge( + G, + edge, + copy=copy, + self_loops=selfloops, + store_contraction_as=store_contraction_as, + ) + expected = nx.relabel_nodes( + nx.complete_graph(3, create_using=nx.MultiGraph), {0: 0, 1: 2, 2: 3} + ) + if selfloops: + expected.add_edge(0, 0) + + assert edges_equal(actual.edges, expected.edges) + if not copy: + assert actual is G + + +def test_nonexistent_edge(): + """Tests that attempting to contract a nonexistent edge raises an + exception. + + """ + G = nx.cycle_graph(4) + with pytest.raises(ValueError): + nx.contracted_edge(G, (0, 2)) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..21002d14d18612dc509ab4f0c926e5712a961418 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/__pycache__/all.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/__pycache__/all.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7d4b41ae0aa677167f4f9a4323e200a8a516dd2f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/__pycache__/all.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/__pycache__/binary.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/__pycache__/binary.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f8abb551e9a831f7191f08b4c3bf215ff8ecdd1a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/__pycache__/binary.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/__pycache__/product.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/__pycache__/product.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..94bfc1c3687a783b13da5dca3738b249dc4c879c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/__pycache__/product.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/__pycache__/unary.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/__pycache__/unary.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ff66ea2a4bedf568312b91f32d2306de63035327 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/__pycache__/unary.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/tests/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/tests/test_all.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/tests/test_all.py new file mode 100644 index 0000000000000000000000000000000000000000..c694d35eb687127dc9064286866597fcafc9f5b7 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/tests/test_all.py @@ -0,0 +1,328 @@ +import pytest + +import networkx as nx +from networkx.utils import edges_equal + + +def test_union_all_attributes(): + g = nx.Graph() + g.add_node(0, x=4) + g.add_node(1, x=5) + g.add_edge(0, 1, size=5) + g.graph["name"] = "g" + + h = g.copy() + h.graph["name"] = "h" + h.graph["attr"] = "attr" + h.nodes[0]["x"] = 7 + + j = g.copy() + j.graph["name"] = "j" + j.graph["attr"] = "attr" + j.nodes[0]["x"] = 7 + + ghj = nx.union_all([g, h, j], rename=("g", "h", "j")) + assert set(ghj.nodes()) == {"h0", "h1", "g0", "g1", "j0", "j1"} + for n in ghj: + graph, node = n + assert ghj.nodes[n] == eval(graph).nodes[int(node)] + + assert ghj.graph["attr"] == "attr" + assert ghj.graph["name"] == "j" # j graph attributes take precedent + + +def test_intersection_all(): + G = nx.Graph() + H = nx.Graph() + R = nx.Graph(awesome=True) + G.add_nodes_from([1, 2, 3, 4]) + G.add_edge(1, 2) + G.add_edge(2, 3) + H.add_nodes_from([1, 2, 3, 4]) + H.add_edge(2, 3) + H.add_edge(3, 4) + R.add_nodes_from([1, 2, 3, 4]) + R.add_edge(2, 3) + R.add_edge(4, 1) + I = nx.intersection_all([G, H, R]) + assert set(I.nodes()) == {1, 2, 3, 4} + assert sorted(I.edges()) == [(2, 3)] + assert I.graph == {} + + +def test_intersection_all_different_node_sets(): + G = nx.Graph() + H = nx.Graph() + R = nx.Graph() + G.add_nodes_from([1, 2, 3, 4, 6, 7]) + G.add_edge(1, 2) + G.add_edge(2, 3) + G.add_edge(6, 7) + H.add_nodes_from([1, 2, 3, 4]) + H.add_edge(2, 3) + H.add_edge(3, 4) + R.add_nodes_from([1, 2, 3, 4, 8, 9]) + R.add_edge(2, 3) + R.add_edge(4, 1) + R.add_edge(8, 9) + I = nx.intersection_all([G, H, R]) + assert set(I.nodes()) == {1, 2, 3, 4} + assert sorted(I.edges()) == [(2, 3)] + + +def test_intersection_all_attributes(): + g = nx.Graph() + g.add_node(0, x=4) + g.add_node(1, x=5) + g.add_edge(0, 1, size=5) + g.graph["name"] = "g" + + h = g.copy() + h.graph["name"] = "h" + h.graph["attr"] = "attr" + h.nodes[0]["x"] = 7 + + gh = nx.intersection_all([g, h]) + assert set(gh.nodes()) == set(g.nodes()) + assert set(gh.nodes()) == set(h.nodes()) + assert sorted(gh.edges()) == sorted(g.edges()) + + +def test_intersection_all_attributes_different_node_sets(): + g = nx.Graph() + g.add_node(0, x=4) + g.add_node(1, x=5) + g.add_edge(0, 1, size=5) + g.graph["name"] = "g" + + h = g.copy() + g.add_node(2) + h.graph["name"] = "h" + h.graph["attr"] = "attr" + h.nodes[0]["x"] = 7 + + gh = nx.intersection_all([g, h]) + assert set(gh.nodes()) == set(h.nodes()) + assert sorted(gh.edges()) == sorted(g.edges()) + + +def test_intersection_all_multigraph_attributes(): + g = nx.MultiGraph() + g.add_edge(0, 1, key=0) + g.add_edge(0, 1, key=1) + g.add_edge(0, 1, key=2) + h = nx.MultiGraph() + h.add_edge(0, 1, key=0) + h.add_edge(0, 1, key=3) + gh = nx.intersection_all([g, h]) + assert set(gh.nodes()) == set(g.nodes()) + assert set(gh.nodes()) == set(h.nodes()) + assert sorted(gh.edges()) == [(0, 1)] + assert sorted(gh.edges(keys=True)) == [(0, 1, 0)] + + +def test_intersection_all_multigraph_attributes_different_node_sets(): + g = nx.MultiGraph() + g.add_edge(0, 1, key=0) + g.add_edge(0, 1, key=1) + g.add_edge(0, 1, key=2) + g.add_edge(1, 2, key=1) + g.add_edge(1, 2, key=2) + h = nx.MultiGraph() + h.add_edge(0, 1, key=0) + h.add_edge(0, 1, key=2) + h.add_edge(0, 1, key=3) + gh = nx.intersection_all([g, h]) + assert set(gh.nodes()) == set(h.nodes()) + assert sorted(gh.edges()) == [(0, 1), (0, 1)] + assert sorted(gh.edges(keys=True)) == [(0, 1, 0), (0, 1, 2)] + + +def test_intersection_all_digraph(): + g = nx.DiGraph() + g.add_edges_from([(1, 2), (2, 3)]) + h = nx.DiGraph() + h.add_edges_from([(2, 1), (2, 3)]) + gh = nx.intersection_all([g, h]) + assert sorted(gh.edges()) == [(2, 3)] + + +def test_union_all_and_compose_all(): + K3 = nx.complete_graph(3) + P3 = nx.path_graph(3) + + G1 = nx.DiGraph() + G1.add_edge("A", "B") + G1.add_edge("A", "C") + G1.add_edge("A", "D") + G2 = nx.DiGraph() + G2.add_edge("1", "2") + G2.add_edge("1", "3") + G2.add_edge("1", "4") + + G = nx.union_all([G1, G2]) + H = nx.compose_all([G1, G2]) + assert edges_equal(G.edges(), H.edges(), directed=True) + assert not G.has_edge("A", "1") + pytest.raises(nx.NetworkXError, nx.union, K3, P3) + H1 = nx.union_all([H, G1], rename=("H", "G1")) + assert sorted(H1.nodes()) == [ + "G1A", + "G1B", + "G1C", + "G1D", + "H1", + "H2", + "H3", + "H4", + "HA", + "HB", + "HC", + "HD", + ] + + H2 = nx.union_all([H, G2], rename=("H", "")) + assert sorted(H2.nodes()) == [ + "1", + "2", + "3", + "4", + "H1", + "H2", + "H3", + "H4", + "HA", + "HB", + "HC", + "HD", + ] + + assert not H1.has_edge("NB", "NA") + + G = nx.compose_all([G, G]) + assert edges_equal(G.edges(), H.edges(), directed=True) + + G2 = nx.union_all([G2, G2], rename=("", "copy")) + assert sorted(G2.nodes()) == [ + "1", + "2", + "3", + "4", + "copy1", + "copy2", + "copy3", + "copy4", + ] + + assert sorted(G2.neighbors("copy4")) == [] + assert sorted(G2.neighbors("copy1")) == ["copy2", "copy3", "copy4"] + assert len(G) == 8 + assert nx.number_of_edges(G) == 6 + + E = nx.disjoint_union_all([G, G]) + assert len(E) == 16 + assert nx.number_of_edges(E) == 12 + + E = nx.disjoint_union_all([G1, G2]) + assert sorted(E.nodes()) == [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + + G1 = nx.DiGraph() + G1.add_edge("A", "B") + G2 = nx.DiGraph() + G2.add_edge(1, 2) + G3 = nx.DiGraph() + G3.add_edge(11, 22) + G4 = nx.union_all([G1, G2, G3], rename=("G1", "G2", "G3")) + assert sorted(G4.nodes()) == ["G1A", "G1B", "G21", "G22", "G311", "G322"] + + +def test_union_all_multigraph(): + G = nx.MultiGraph() + G.add_edge(1, 2, key=0) + G.add_edge(1, 2, key=1) + H = nx.MultiGraph() + H.add_edge(3, 4, key=0) + H.add_edge(3, 4, key=1) + GH = nx.union_all([G, H]) + assert set(GH) == set(G) | set(H) + assert set(GH.edges(keys=True)) == set(G.edges(keys=True)) | set(H.edges(keys=True)) + + +def test_input_output(): + l = [nx.Graph([(1, 2)]), nx.Graph([(3, 4)], awesome=True)] + U = nx.disjoint_union_all(l) + assert len(l) == 2 + assert U.graph["awesome"] + C = nx.compose_all(l) + assert len(l) == 2 + l = [nx.Graph([(1, 2)]), nx.Graph([(1, 2)])] + R = nx.intersection_all(l) + assert len(l) == 2 + + +def test_mixed_type_union(): + with pytest.raises(nx.NetworkXError): + G = nx.Graph() + H = nx.MultiGraph() + I = nx.Graph() + U = nx.union_all([G, H, I]) + with pytest.raises(nx.NetworkXError): + X = nx.Graph() + Y = nx.DiGraph() + XY = nx.union_all([X, Y]) + + +def test_mixed_type_disjoint_union(): + with pytest.raises(nx.NetworkXError): + G = nx.Graph() + H = nx.MultiGraph() + I = nx.Graph() + U = nx.disjoint_union_all([G, H, I]) + with pytest.raises(nx.NetworkXError): + X = nx.Graph() + Y = nx.DiGraph() + XY = nx.disjoint_union_all([X, Y]) + + +def test_mixed_type_intersection(): + with pytest.raises(nx.NetworkXError): + G = nx.Graph() + H = nx.MultiGraph() + I = nx.Graph() + U = nx.intersection_all([G, H, I]) + with pytest.raises(nx.NetworkXError): + X = nx.Graph() + Y = nx.DiGraph() + XY = nx.intersection_all([X, Y]) + + +def test_mixed_type_compose(): + with pytest.raises(nx.NetworkXError): + G = nx.Graph() + H = nx.MultiGraph() + I = nx.Graph() + U = nx.compose_all([G, H, I]) + with pytest.raises(nx.NetworkXError): + X = nx.Graph() + Y = nx.DiGraph() + XY = nx.compose_all([X, Y]) + + +def test_empty_union(): + with pytest.raises(ValueError): + nx.union_all([]) + + +def test_empty_disjoint_union(): + with pytest.raises(ValueError): + nx.disjoint_union_all([]) + + +def test_empty_compose_all(): + with pytest.raises(ValueError): + nx.compose_all([]) + + +def test_empty_intersection_all(): + with pytest.raises(ValueError): + nx.intersection_all([]) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/tests/test_binary.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/tests/test_binary.py new file mode 100644 index 0000000000000000000000000000000000000000..70a199d52ad984e2d315fde8a0fb72d37e77849c --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/tests/test_binary.py @@ -0,0 +1,451 @@ +import pytest + +import networkx as nx +from networkx.utils import edges_equal + + +def test_union_attributes(): + g = nx.Graph() + g.add_node(0, x=4) + g.add_node(1, x=5) + g.add_edge(0, 1, size=5) + g.graph["name"] = "g" + + h = g.copy() + h.graph["name"] = "h" + h.graph["attr"] = "attr" + h.nodes[0]["x"] = 7 + + gh = nx.union(g, h, rename=("g", "h")) + assert set(gh.nodes()) == {"h0", "h1", "g0", "g1"} + for n in gh: + graph, node = n + assert gh.nodes[n] == eval(graph).nodes[int(node)] + + assert gh.graph["attr"] == "attr" + assert gh.graph["name"] == "h" # h graph attributes take precedent + + +def test_intersection(): + G = nx.Graph() + H = nx.Graph() + G.add_nodes_from([1, 2, 3, 4]) + G.add_edge(1, 2) + G.add_edge(2, 3) + H.add_nodes_from([1, 2, 3, 4]) + H.add_edge(2, 3) + H.add_edge(3, 4) + I = nx.intersection(G, H) + assert set(I.nodes()) == {1, 2, 3, 4} + assert sorted(I.edges()) == [(2, 3)] + + +def test_intersection_node_sets_different(): + G = nx.Graph() + H = nx.Graph() + G.add_nodes_from([1, 2, 3, 4, 7]) + G.add_edge(1, 2) + G.add_edge(2, 3) + H.add_nodes_from([1, 2, 3, 4, 5, 6]) + H.add_edge(2, 3) + H.add_edge(3, 4) + H.add_edge(5, 6) + I = nx.intersection(G, H) + assert set(I.nodes()) == {1, 2, 3, 4} + assert sorted(I.edges()) == [(2, 3)] + + +def test_intersection_attributes(): + g = nx.Graph() + g.add_node(0, x=4) + g.add_node(1, x=5) + g.add_edge(0, 1, size=5) + g.graph["name"] = "g" + + h = g.copy() + h.graph["name"] = "h" + h.graph["attr"] = "attr" + h.nodes[0]["x"] = 7 + gh = nx.intersection(g, h) + + assert set(gh.nodes()) == set(g.nodes()) + assert set(gh.nodes()) == set(h.nodes()) + assert sorted(gh.edges()) == sorted(g.edges()) + + +def test_intersection_attributes_node_sets_different(): + g = nx.Graph() + g.add_node(0, x=4) + g.add_node(1, x=5) + g.add_node(2, x=3) + g.add_edge(0, 1, size=5) + g.graph["name"] = "g" + + h = g.copy() + h.graph["name"] = "h" + h.graph["attr"] = "attr" + h.nodes[0]["x"] = 7 + h.remove_node(2) + + gh = nx.intersection(g, h) + assert set(gh.nodes()) == set(h.nodes()) + assert sorted(gh.edges()) == sorted(g.edges()) + + +def test_intersection_multigraph_attributes(): + g = nx.MultiGraph() + g.add_edge(0, 1, key=0) + g.add_edge(0, 1, key=1) + g.add_edge(0, 1, key=2) + h = nx.MultiGraph() + h.add_edge(0, 1, key=0) + h.add_edge(0, 1, key=3) + gh = nx.intersection(g, h) + assert set(gh.nodes()) == set(g.nodes()) + assert set(gh.nodes()) == set(h.nodes()) + assert sorted(gh.edges()) == [(0, 1)] + assert sorted(gh.edges(keys=True)) == [(0, 1, 0)] + + +def test_intersection_multigraph_attributes_node_set_different(): + g = nx.MultiGraph() + g.add_edge(0, 1, key=0) + g.add_edge(0, 1, key=1) + g.add_edge(0, 1, key=2) + g.add_edge(0, 2, key=2) + g.add_edge(0, 2, key=1) + h = nx.MultiGraph() + h.add_edge(0, 1, key=0) + h.add_edge(0, 1, key=3) + gh = nx.intersection(g, h) + assert set(gh.nodes()) == set(h.nodes()) + assert sorted(gh.edges()) == [(0, 1)] + assert sorted(gh.edges(keys=True)) == [(0, 1, 0)] + + +def test_difference(): + G = nx.Graph() + H = nx.Graph() + G.add_nodes_from([1, 2, 3, 4]) + G.add_edge(1, 2) + G.add_edge(2, 3) + H.add_nodes_from([1, 2, 3, 4]) + H.add_edge(2, 3) + H.add_edge(3, 4) + D = nx.difference(G, H) + assert set(D.nodes()) == {1, 2, 3, 4} + assert sorted(D.edges()) == [(1, 2)] + D = nx.difference(H, G) + assert set(D.nodes()) == {1, 2, 3, 4} + assert sorted(D.edges()) == [(3, 4)] + D = nx.symmetric_difference(G, H) + assert set(D.nodes()) == {1, 2, 3, 4} + assert sorted(D.edges()) == [(1, 2), (3, 4)] + + +def test_difference2(): + G = nx.Graph() + H = nx.Graph() + G.add_nodes_from([1, 2, 3, 4]) + H.add_nodes_from([1, 2, 3, 4]) + G.add_edge(1, 2) + H.add_edge(1, 2) + G.add_edge(2, 3) + D = nx.difference(G, H) + assert set(D.nodes()) == {1, 2, 3, 4} + assert sorted(D.edges()) == [(2, 3)] + D = nx.difference(H, G) + assert set(D.nodes()) == {1, 2, 3, 4} + assert sorted(D.edges()) == [] + H.add_edge(3, 4) + D = nx.difference(H, G) + assert set(D.nodes()) == {1, 2, 3, 4} + assert sorted(D.edges()) == [(3, 4)] + + +def test_difference_attributes(): + g = nx.Graph() + g.add_node(0, x=4) + g.add_node(1, x=5) + g.add_edge(0, 1, size=5) + g.graph["name"] = "g" + + h = g.copy() + h.graph["name"] = "h" + h.graph["attr"] = "attr" + h.nodes[0]["x"] = 7 + + gh = nx.difference(g, h) + assert set(gh.nodes()) == set(g.nodes()) + assert set(gh.nodes()) == set(h.nodes()) + assert sorted(gh.edges()) == [] + # node and graph data should not be copied over + assert gh.nodes.data() != g.nodes.data() + assert gh.graph != g.graph + + +def test_difference_multigraph_attributes(): + g = nx.MultiGraph() + g.add_edge(0, 1, key=0) + g.add_edge(0, 1, key=1) + g.add_edge(0, 1, key=2) + h = nx.MultiGraph() + h.add_edge(0, 1, key=0) + h.add_edge(0, 1, key=3) + gh = nx.difference(g, h) + assert set(gh.nodes()) == set(g.nodes()) + assert set(gh.nodes()) == set(h.nodes()) + assert sorted(gh.edges()) == [(0, 1), (0, 1)] + assert sorted(gh.edges(keys=True)) == [(0, 1, 1), (0, 1, 2)] + + +def test_difference_raise(): + G = nx.path_graph(4) + H = nx.path_graph(3) + pytest.raises(nx.NetworkXError, nx.difference, G, H) + pytest.raises(nx.NetworkXError, nx.symmetric_difference, G, H) + + +def test_symmetric_difference_multigraph(): + g = nx.MultiGraph() + g.add_edge(0, 1, key=0) + g.add_edge(0, 1, key=1) + g.add_edge(0, 1, key=2) + h = nx.MultiGraph() + h.add_edge(0, 1, key=0) + h.add_edge(0, 1, key=3) + gh = nx.symmetric_difference(g, h) + assert set(gh.nodes()) == set(g.nodes()) + assert set(gh.nodes()) == set(h.nodes()) + assert sorted(gh.edges()) == 3 * [(0, 1)] + assert sorted(sorted(e) for e in gh.edges(keys=True)) == [ + [0, 1, 1], + [0, 1, 2], + [0, 1, 3], + ] + + +def test_union_and_compose(): + K3 = nx.complete_graph(3) + P3 = nx.path_graph(3) + + G1 = nx.DiGraph() + G1.add_edge("A", "B") + G1.add_edge("A", "C") + G1.add_edge("A", "D") + G2 = nx.DiGraph() + G2.add_edge("1", "2") + G2.add_edge("1", "3") + G2.add_edge("1", "4") + + G = nx.union(G1, G2) + H = nx.compose(G1, G2) + assert edges_equal(G.edges(), H.edges(), directed=True) + assert not G.has_edge("A", 1) + pytest.raises(nx.NetworkXError, nx.union, K3, P3) + H1 = nx.union(H, G1, rename=("H", "G1")) + assert sorted(H1.nodes()) == [ + "G1A", + "G1B", + "G1C", + "G1D", + "H1", + "H2", + "H3", + "H4", + "HA", + "HB", + "HC", + "HD", + ] + + H2 = nx.union(H, G2, rename=("H", "")) + assert sorted(H2.nodes()) == [ + "1", + "2", + "3", + "4", + "H1", + "H2", + "H3", + "H4", + "HA", + "HB", + "HC", + "HD", + ] + + assert not H1.has_edge("NB", "NA") + + G = nx.compose(G, G) + assert edges_equal(G.edges(), H.edges(), directed=True) + + G2 = nx.union(G2, G2, rename=("", "copy")) + assert sorted(G2.nodes()) == [ + "1", + "2", + "3", + "4", + "copy1", + "copy2", + "copy3", + "copy4", + ] + + assert sorted(G2.neighbors("copy4")) == [] + assert sorted(G2.neighbors("copy1")) == ["copy2", "copy3", "copy4"] + assert len(G) == 8 + assert nx.number_of_edges(G) == 6 + + E = nx.disjoint_union(G, G) + assert len(E) == 16 + assert nx.number_of_edges(E) == 12 + + E = nx.disjoint_union(G1, G2) + assert sorted(E.nodes()) == [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + + G = nx.Graph() + H = nx.Graph() + G.add_nodes_from([(1, {"a1": 1})]) + H.add_nodes_from([(1, {"b1": 1})]) + R = nx.compose(G, H) + assert R.nodes == {1: {"a1": 1, "b1": 1}} + + +def test_union_multigraph(): + G = nx.MultiGraph() + G.add_edge(1, 2, key=0) + G.add_edge(1, 2, key=1) + H = nx.MultiGraph() + H.add_edge(3, 4, key=0) + H.add_edge(3, 4, key=1) + GH = nx.union(G, H) + assert set(GH) == set(G) | set(H) + assert set(GH.edges(keys=True)) == set(G.edges(keys=True)) | set(H.edges(keys=True)) + + +def test_disjoint_union_multigraph(): + G = nx.MultiGraph() + G.add_edge(0, 1, key=0) + G.add_edge(0, 1, key=1) + H = nx.MultiGraph() + H.add_edge(2, 3, key=0) + H.add_edge(2, 3, key=1) + GH = nx.disjoint_union(G, H) + assert set(GH) == set(G) | set(H) + assert set(GH.edges(keys=True)) == set(G.edges(keys=True)) | set(H.edges(keys=True)) + + +def test_compose_multigraph(): + G = nx.MultiGraph() + G.add_edge(1, 2, key=0) + G.add_edge(1, 2, key=1) + H = nx.MultiGraph() + H.add_edge(3, 4, key=0) + H.add_edge(3, 4, key=1) + GH = nx.compose(G, H) + assert set(GH) == set(G) | set(H) + assert set(GH.edges(keys=True)) == set(G.edges(keys=True)) | set(H.edges(keys=True)) + H.add_edge(1, 2, key=2) + GH = nx.compose(G, H) + assert set(GH) == set(G) | set(H) + assert set(GH.edges(keys=True)) == set(G.edges(keys=True)) | set(H.edges(keys=True)) + + +def test_full_join_graph(): + # Simple Graphs + G = nx.Graph() + G.add_node(0) + G.add_edge(1, 2) + H = nx.Graph() + H.add_edge(3, 4) + + U = nx.full_join(G, H) + assert set(U) == set(G) | set(H) + assert len(U) == len(G) + len(H) + assert len(U.edges()) == len(G.edges()) + len(H.edges()) + len(G) * len(H) + + # Rename + U = nx.full_join(G, H, rename=("g", "h")) + assert set(U) == {"g0", "g1", "g2", "h3", "h4"} + assert len(U) == len(G) + len(H) + assert len(U.edges()) == len(G.edges()) + len(H.edges()) + len(G) * len(H) + + # Rename graphs with string-like nodes + G = nx.Graph() + G.add_node("a") + G.add_edge("b", "c") + H = nx.Graph() + H.add_edge("d", "e") + + U = nx.full_join(G, H, rename=("g", "h")) + assert set(U) == {"ga", "gb", "gc", "hd", "he"} + assert len(U) == len(G) + len(H) + assert len(U.edges()) == len(G.edges()) + len(H.edges()) + len(G) * len(H) + + # DiGraphs + G = nx.DiGraph() + G.add_node(0) + G.add_edge(1, 2) + H = nx.DiGraph() + H.add_edge(3, 4) + + U = nx.full_join(G, H) + assert set(U) == set(G) | set(H) + assert len(U) == len(G) + len(H) + assert len(U.edges()) == len(G.edges()) + len(H.edges()) + len(G) * len(H) * 2 + + # DiGraphs Rename + U = nx.full_join(G, H, rename=("g", "h")) + assert set(U) == {"g0", "g1", "g2", "h3", "h4"} + assert len(U) == len(G) + len(H) + assert len(U.edges()) == len(G.edges()) + len(H.edges()) + len(G) * len(H) * 2 + + +def test_full_join_multigraph(): + # MultiGraphs + G = nx.MultiGraph() + G.add_node(0) + G.add_edge(1, 2) + H = nx.MultiGraph() + H.add_edge(3, 4) + + U = nx.full_join(G, H) + assert set(U) == set(G) | set(H) + assert len(U) == len(G) + len(H) + assert len(U.edges()) == len(G.edges()) + len(H.edges()) + len(G) * len(H) + + # MultiGraphs rename + U = nx.full_join(G, H, rename=("g", "h")) + assert set(U) == {"g0", "g1", "g2", "h3", "h4"} + assert len(U) == len(G) + len(H) + assert len(U.edges()) == len(G.edges()) + len(H.edges()) + len(G) * len(H) + + # MultiDiGraphs + G = nx.MultiDiGraph() + G.add_node(0) + G.add_edge(1, 2) + H = nx.MultiDiGraph() + H.add_edge(3, 4) + + U = nx.full_join(G, H) + assert set(U) == set(G) | set(H) + assert len(U) == len(G) + len(H) + assert len(U.edges()) == len(G.edges()) + len(H.edges()) + len(G) * len(H) * 2 + + # MultiDiGraphs rename + U = nx.full_join(G, H, rename=("g", "h")) + assert set(U) == {"g0", "g1", "g2", "h3", "h4"} + assert len(U) == len(G) + len(H) + assert len(U.edges()) == len(G.edges()) + len(H.edges()) + len(G) * len(H) * 2 + + +def test_mixed_type_union(): + G = nx.Graph() + H = nx.MultiGraph() + pytest.raises(nx.NetworkXError, nx.union, G, H) + pytest.raises(nx.NetworkXError, nx.disjoint_union, G, H) + pytest.raises(nx.NetworkXError, nx.intersection, G, H) + pytest.raises(nx.NetworkXError, nx.difference, G, H) + pytest.raises(nx.NetworkXError, nx.symmetric_difference, G, H) + pytest.raises(nx.NetworkXError, nx.compose, G, H) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/tests/test_product.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/tests/test_product.py new file mode 100644 index 0000000000000000000000000000000000000000..8ee54b93012c79531f2732da282072754da82046 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/tests/test_product.py @@ -0,0 +1,491 @@ +import pytest + +import networkx as nx +from networkx.utils import edges_equal + + +def test_tensor_product_raises(): + with pytest.raises(nx.NetworkXError): + P = nx.tensor_product(nx.DiGraph(), nx.Graph()) + + +def test_tensor_product_null(): + null = nx.null_graph() + empty10 = nx.empty_graph(10) + K3 = nx.complete_graph(3) + K10 = nx.complete_graph(10) + P3 = nx.path_graph(3) + P10 = nx.path_graph(10) + # null graph + G = nx.tensor_product(null, null) + assert nx.is_isomorphic(G, null) + # null_graph X anything = null_graph and v.v. + G = nx.tensor_product(null, empty10) + assert nx.is_isomorphic(G, null) + G = nx.tensor_product(null, K3) + assert nx.is_isomorphic(G, null) + G = nx.tensor_product(null, K10) + assert nx.is_isomorphic(G, null) + G = nx.tensor_product(null, P3) + assert nx.is_isomorphic(G, null) + G = nx.tensor_product(null, P10) + assert nx.is_isomorphic(G, null) + G = nx.tensor_product(empty10, null) + assert nx.is_isomorphic(G, null) + G = nx.tensor_product(K3, null) + assert nx.is_isomorphic(G, null) + G = nx.tensor_product(K10, null) + assert nx.is_isomorphic(G, null) + G = nx.tensor_product(P3, null) + assert nx.is_isomorphic(G, null) + G = nx.tensor_product(P10, null) + assert nx.is_isomorphic(G, null) + + +def test_tensor_product_size(): + P5 = nx.path_graph(5) + K3 = nx.complete_graph(3) + K5 = nx.complete_graph(5) + + G = nx.tensor_product(P5, K3) + assert nx.number_of_nodes(G) == 5 * 3 + G = nx.tensor_product(K3, K5) + assert nx.number_of_nodes(G) == 3 * 5 + + +def test_tensor_product_combinations(): + # basic smoke test, more realistic tests would be useful + P5 = nx.path_graph(5) + K3 = nx.complete_graph(3) + G = nx.tensor_product(P5, K3) + assert nx.number_of_nodes(G) == 5 * 3 + G = nx.tensor_product(P5, nx.MultiGraph(K3)) + assert nx.number_of_nodes(G) == 5 * 3 + G = nx.tensor_product(nx.MultiGraph(P5), K3) + assert nx.number_of_nodes(G) == 5 * 3 + G = nx.tensor_product(nx.MultiGraph(P5), nx.MultiGraph(K3)) + assert nx.number_of_nodes(G) == 5 * 3 + + G = nx.tensor_product(nx.DiGraph(P5), nx.DiGraph(K3)) + assert nx.number_of_nodes(G) == 5 * 3 + + +def test_tensor_product_classic_result(): + K2 = nx.complete_graph(2) + G = nx.petersen_graph() + G = nx.tensor_product(G, K2) + assert nx.is_isomorphic(G, nx.desargues_graph()) + + G = nx.cycle_graph(5) + G = nx.tensor_product(G, K2) + assert nx.is_isomorphic(G, nx.cycle_graph(10)) + + G = nx.tetrahedral_graph() + G = nx.tensor_product(G, K2) + assert nx.is_isomorphic(G, nx.cubical_graph()) + + +def test_tensor_product_random(): + G = nx.erdos_renyi_graph(10, 2 / 10.0) + H = nx.erdos_renyi_graph(10, 2 / 10.0) + GH = nx.tensor_product(G, H) + + for u_G, u_H in GH.nodes(): + for v_G, v_H in GH.nodes(): + if H.has_edge(u_H, v_H) and G.has_edge(u_G, v_G): + assert GH.has_edge((u_G, u_H), (v_G, v_H)) + else: + assert not GH.has_edge((u_G, u_H), (v_G, v_H)) + + +def test_cartesian_product_multigraph(): + G = nx.MultiGraph() + G.add_edge(1, 2, key=0) + G.add_edge(1, 2, key=1) + H = nx.MultiGraph() + H.add_edge(3, 4, key=0) + H.add_edge(3, 4, key=1) + GH = nx.cartesian_product(G, H) + assert set(GH) == {(1, 3), (2, 3), (2, 4), (1, 4)} + assert {(frozenset([u, v]), k) for u, v, k in GH.edges(keys=True)} == { + (frozenset([u, v]), k) + for u, v, k in [ + ((1, 3), (2, 3), 0), + ((1, 3), (2, 3), 1), + ((1, 3), (1, 4), 0), + ((1, 3), (1, 4), 1), + ((2, 3), (2, 4), 0), + ((2, 3), (2, 4), 1), + ((2, 4), (1, 4), 0), + ((2, 4), (1, 4), 1), + ] + } + + +def test_cartesian_product_raises(): + with pytest.raises(nx.NetworkXError): + P = nx.cartesian_product(nx.DiGraph(), nx.Graph()) + + +def test_cartesian_product_null(): + null = nx.null_graph() + empty10 = nx.empty_graph(10) + K3 = nx.complete_graph(3) + K10 = nx.complete_graph(10) + P3 = nx.path_graph(3) + P10 = nx.path_graph(10) + # null graph + G = nx.cartesian_product(null, null) + assert nx.is_isomorphic(G, null) + # null_graph X anything = null_graph and v.v. + G = nx.cartesian_product(null, empty10) + assert nx.is_isomorphic(G, null) + G = nx.cartesian_product(null, K3) + assert nx.is_isomorphic(G, null) + G = nx.cartesian_product(null, K10) + assert nx.is_isomorphic(G, null) + G = nx.cartesian_product(null, P3) + assert nx.is_isomorphic(G, null) + G = nx.cartesian_product(null, P10) + assert nx.is_isomorphic(G, null) + G = nx.cartesian_product(empty10, null) + assert nx.is_isomorphic(G, null) + G = nx.cartesian_product(K3, null) + assert nx.is_isomorphic(G, null) + G = nx.cartesian_product(K10, null) + assert nx.is_isomorphic(G, null) + G = nx.cartesian_product(P3, null) + assert nx.is_isomorphic(G, null) + G = nx.cartesian_product(P10, null) + assert nx.is_isomorphic(G, null) + + +def test_cartesian_product_size(): + # order(GXH)=order(G)*order(H) + K5 = nx.complete_graph(5) + P5 = nx.path_graph(5) + K3 = nx.complete_graph(3) + G = nx.cartesian_product(P5, K3) + assert nx.number_of_nodes(G) == 5 * 3 + assert nx.number_of_edges(G) == nx.number_of_edges(P5) * nx.number_of_nodes( + K3 + ) + nx.number_of_edges(K3) * nx.number_of_nodes(P5) + G = nx.cartesian_product(K3, K5) + assert nx.number_of_nodes(G) == 3 * 5 + assert nx.number_of_edges(G) == nx.number_of_edges(K5) * nx.number_of_nodes( + K3 + ) + nx.number_of_edges(K3) * nx.number_of_nodes(K5) + + +def test_cartesian_product_classic(): + # test some classic product graphs + P2 = nx.path_graph(2) + P3 = nx.path_graph(3) + # cube = 2-path X 2-path + G = nx.cartesian_product(P2, P2) + G = nx.cartesian_product(P2, G) + assert nx.is_isomorphic(G, nx.cubical_graph()) + + # 3x3 grid + G = nx.cartesian_product(P3, P3) + assert nx.is_isomorphic(G, nx.grid_2d_graph(3, 3)) + + +def test_cartesian_product_random(): + G = nx.erdos_renyi_graph(10, 2 / 10.0) + H = nx.erdos_renyi_graph(10, 2 / 10.0) + GH = nx.cartesian_product(G, H) + + for u_G, u_H in GH.nodes(): + for v_G, v_H in GH.nodes(): + if (u_G == v_G and H.has_edge(u_H, v_H)) or ( + u_H == v_H and G.has_edge(u_G, v_G) + ): + assert GH.has_edge((u_G, u_H), (v_G, v_H)) + else: + assert not GH.has_edge((u_G, u_H), (v_G, v_H)) + + +def test_lexicographic_product_raises(): + with pytest.raises(nx.NetworkXError): + P = nx.lexicographic_product(nx.DiGraph(), nx.Graph()) + + +def test_lexicographic_product_null(): + null = nx.null_graph() + empty10 = nx.empty_graph(10) + K3 = nx.complete_graph(3) + K10 = nx.complete_graph(10) + P3 = nx.path_graph(3) + P10 = nx.path_graph(10) + # null graph + G = nx.lexicographic_product(null, null) + assert nx.is_isomorphic(G, null) + # null_graph X anything = null_graph and v.v. + G = nx.lexicographic_product(null, empty10) + assert nx.is_isomorphic(G, null) + G = nx.lexicographic_product(null, K3) + assert nx.is_isomorphic(G, null) + G = nx.lexicographic_product(null, K10) + assert nx.is_isomorphic(G, null) + G = nx.lexicographic_product(null, P3) + assert nx.is_isomorphic(G, null) + G = nx.lexicographic_product(null, P10) + assert nx.is_isomorphic(G, null) + G = nx.lexicographic_product(empty10, null) + assert nx.is_isomorphic(G, null) + G = nx.lexicographic_product(K3, null) + assert nx.is_isomorphic(G, null) + G = nx.lexicographic_product(K10, null) + assert nx.is_isomorphic(G, null) + G = nx.lexicographic_product(P3, null) + assert nx.is_isomorphic(G, null) + G = nx.lexicographic_product(P10, null) + assert nx.is_isomorphic(G, null) + + +def test_lexicographic_product_size(): + K5 = nx.complete_graph(5) + P5 = nx.path_graph(5) + K3 = nx.complete_graph(3) + G = nx.lexicographic_product(P5, K3) + assert nx.number_of_nodes(G) == 5 * 3 + G = nx.lexicographic_product(K3, K5) + assert nx.number_of_nodes(G) == 3 * 5 + + +def test_lexicographic_product_combinations(): + P5 = nx.path_graph(5) + K3 = nx.complete_graph(3) + G = nx.lexicographic_product(P5, K3) + assert nx.number_of_nodes(G) == 5 * 3 + G = nx.lexicographic_product(nx.MultiGraph(P5), K3) + assert nx.number_of_nodes(G) == 5 * 3 + G = nx.lexicographic_product(P5, nx.MultiGraph(K3)) + assert nx.number_of_nodes(G) == 5 * 3 + G = nx.lexicographic_product(nx.MultiGraph(P5), nx.MultiGraph(K3)) + assert nx.number_of_nodes(G) == 5 * 3 + + # No classic easily found classic results for lexicographic product + + +def test_lexicographic_product_random(): + G = nx.erdos_renyi_graph(10, 2 / 10.0) + H = nx.erdos_renyi_graph(10, 2 / 10.0) + GH = nx.lexicographic_product(G, H) + + for u_G, u_H in GH.nodes(): + for v_G, v_H in GH.nodes(): + if G.has_edge(u_G, v_G) or (u_G == v_G and H.has_edge(u_H, v_H)): + assert GH.has_edge((u_G, u_H), (v_G, v_H)) + else: + assert not GH.has_edge((u_G, u_H), (v_G, v_H)) + + +def test_strong_product_raises(): + with pytest.raises(nx.NetworkXError): + P = nx.strong_product(nx.DiGraph(), nx.Graph()) + + +def test_strong_product_null(): + null = nx.null_graph() + empty10 = nx.empty_graph(10) + K3 = nx.complete_graph(3) + K10 = nx.complete_graph(10) + P3 = nx.path_graph(3) + P10 = nx.path_graph(10) + # null graph + G = nx.strong_product(null, null) + assert nx.is_isomorphic(G, null) + # null_graph X anything = null_graph and v.v. + G = nx.strong_product(null, empty10) + assert nx.is_isomorphic(G, null) + G = nx.strong_product(null, K3) + assert nx.is_isomorphic(G, null) + G = nx.strong_product(null, K10) + assert nx.is_isomorphic(G, null) + G = nx.strong_product(null, P3) + assert nx.is_isomorphic(G, null) + G = nx.strong_product(null, P10) + assert nx.is_isomorphic(G, null) + G = nx.strong_product(empty10, null) + assert nx.is_isomorphic(G, null) + G = nx.strong_product(K3, null) + assert nx.is_isomorphic(G, null) + G = nx.strong_product(K10, null) + assert nx.is_isomorphic(G, null) + G = nx.strong_product(P3, null) + assert nx.is_isomorphic(G, null) + G = nx.strong_product(P10, null) + assert nx.is_isomorphic(G, null) + + +def test_strong_product_size(): + K5 = nx.complete_graph(5) + P5 = nx.path_graph(5) + K3 = nx.complete_graph(3) + G = nx.strong_product(P5, K3) + assert nx.number_of_nodes(G) == 5 * 3 + G = nx.strong_product(K3, K5) + assert nx.number_of_nodes(G) == 3 * 5 + + +def test_strong_product_combinations(): + P5 = nx.path_graph(5) + K3 = nx.complete_graph(3) + G = nx.strong_product(P5, K3) + assert nx.number_of_nodes(G) == 5 * 3 + G = nx.strong_product(nx.MultiGraph(P5), K3) + assert nx.number_of_nodes(G) == 5 * 3 + G = nx.strong_product(P5, nx.MultiGraph(K3)) + assert nx.number_of_nodes(G) == 5 * 3 + G = nx.strong_product(nx.MultiGraph(P5), nx.MultiGraph(K3)) + assert nx.number_of_nodes(G) == 5 * 3 + + # No classic easily found classic results for strong product + + +def test_strong_product_random(): + G = nx.erdos_renyi_graph(10, 2 / 10.0) + H = nx.erdos_renyi_graph(10, 2 / 10.0) + GH = nx.strong_product(G, H) + + for u_G, u_H in GH.nodes(): + for v_G, v_H in GH.nodes(): + if ( + (u_G == v_G and H.has_edge(u_H, v_H)) + or (u_H == v_H and G.has_edge(u_G, v_G)) + or (G.has_edge(u_G, v_G) and H.has_edge(u_H, v_H)) + ): + assert GH.has_edge((u_G, u_H), (v_G, v_H)) + else: + assert not GH.has_edge((u_G, u_H), (v_G, v_H)) + + +def test_graph_power_raises(): + with pytest.raises(nx.NetworkXNotImplemented): + nx.power(nx.MultiDiGraph(), 2) + + +def test_graph_power(): + # wikipedia example for graph power + G = nx.cycle_graph(7) + G.add_edge(6, 7) + G.add_edge(7, 8) + G.add_edge(8, 9) + G.add_edge(9, 2) + H = nx.power(G, 2) + + assert edges_equal( + list(H.edges()), + [ + (0, 1), + (0, 2), + (0, 5), + (0, 6), + (0, 7), + (1, 9), + (1, 2), + (1, 3), + (1, 6), + (2, 3), + (2, 4), + (2, 8), + (2, 9), + (3, 4), + (3, 5), + (3, 9), + (4, 5), + (4, 6), + (5, 6), + (5, 7), + (6, 7), + (6, 8), + (7, 8), + (7, 9), + (8, 9), + ], + ) + + +def test_graph_power_negative(): + with pytest.raises(ValueError): + nx.power(nx.Graph(), -1) + + +def test_rooted_product_raises(): + with pytest.raises(nx.NodeNotFound): + nx.rooted_product(nx.Graph(), nx.path_graph(2), 10) + + +def test_rooted_product(): + G = nx.cycle_graph(5) + H = nx.Graph() + H.add_edges_from([("a", "b"), ("b", "c"), ("b", "d")]) + R = nx.rooted_product(G, H, "a") + assert len(R) == len(G) * len(H) + assert R.size() == G.size() + len(G) * H.size() + + +def test_corona_product(): + G = nx.cycle_graph(3) + H = nx.path_graph(2) + C = nx.corona_product(G, H) + assert len(C) == (len(G) * len(H)) + len(G) + assert C.size() == G.size() + len(G) * H.size() + len(G) * len(H) + + +def test_modular_product(): + G = nx.path_graph(3) + H = nx.path_graph(4) + M = nx.modular_product(G, H) + assert len(M) == len(G) * len(H) + + assert edges_equal( + list(M.edges()), + [ + ((0, 0), (1, 1)), + ((0, 0), (2, 2)), + ((0, 0), (2, 3)), + ((0, 1), (1, 0)), + ((0, 1), (1, 2)), + ((0, 1), (2, 3)), + ((0, 2), (1, 1)), + ((0, 2), (1, 3)), + ((0, 2), (2, 0)), + ((0, 3), (1, 2)), + ((0, 3), (2, 0)), + ((0, 3), (2, 1)), + ((1, 0), (2, 1)), + ((1, 1), (2, 0)), + ((1, 1), (2, 2)), + ((1, 2), (2, 1)), + ((1, 2), (2, 3)), + ((1, 3), (2, 2)), + ], + ) + + +def test_modular_product_raises(): + G = nx.Graph([(0, 1), (1, 2), (2, 0)]) + H = nx.Graph([(0, 1), (1, 2), (2, 0)]) + DG = nx.DiGraph([(0, 1), (1, 2), (2, 0)]) + DH = nx.DiGraph([(0, 1), (1, 2), (2, 0)]) + with pytest.raises(nx.NetworkXNotImplemented): + nx.modular_product(G, DH) + with pytest.raises(nx.NetworkXNotImplemented): + nx.modular_product(DG, H) + with pytest.raises(nx.NetworkXNotImplemented): + nx.modular_product(DG, DH) + + MG = nx.MultiGraph([(0, 1), (1, 2), (2, 0), (0, 1)]) + MH = nx.MultiGraph([(0, 1), (1, 2), (2, 0), (0, 1)]) + with pytest.raises(nx.NetworkXNotImplemented): + nx.modular_product(G, MH) + with pytest.raises(nx.NetworkXNotImplemented): + nx.modular_product(MG, H) + with pytest.raises(nx.NetworkXNotImplemented): + nx.modular_product(MG, MH) + with pytest.raises(nx.NetworkXNotImplemented): + # check multigraph with no multiedges + nx.modular_product(nx.MultiGraph(G), H) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/tests/test_unary.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/tests/test_unary.py new file mode 100644 index 0000000000000000000000000000000000000000..d68e55cd9c9fa37459b497c32a7a095576c306c3 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/operators/tests/test_unary.py @@ -0,0 +1,55 @@ +import pytest + +import networkx as nx + + +def test_complement(): + null = nx.null_graph() + empty1 = nx.empty_graph(1) + empty10 = nx.empty_graph(10) + K3 = nx.complete_graph(3) + K5 = nx.complete_graph(5) + K10 = nx.complete_graph(10) + P2 = nx.path_graph(2) + P3 = nx.path_graph(3) + P5 = nx.path_graph(5) + P10 = nx.path_graph(10) + # complement of the complete graph is empty + + G = nx.complement(K3) + assert nx.is_isomorphic(G, nx.empty_graph(3)) + G = nx.complement(K5) + assert nx.is_isomorphic(G, nx.empty_graph(5)) + # for any G, G=complement(complement(G)) + P3cc = nx.complement(nx.complement(P3)) + assert nx.is_isomorphic(P3, P3cc) + nullcc = nx.complement(nx.complement(null)) + assert nx.is_isomorphic(null, nullcc) + b = nx.bull_graph() + bcc = nx.complement(nx.complement(b)) + assert nx.is_isomorphic(b, bcc) + + +def test_complement_2(): + G1 = nx.DiGraph() + G1.add_edge("A", "B") + G1.add_edge("A", "C") + G1.add_edge("A", "D") + G1C = nx.complement(G1) + assert sorted(G1C.edges()) == [ + ("B", "A"), + ("B", "C"), + ("B", "D"), + ("C", "A"), + ("C", "B"), + ("C", "D"), + ("D", "A"), + ("D", "B"), + ("D", "C"), + ] + + +def test_reverse1(): + # Other tests for reverse are done by the DiGraph and MultiDigraph. + G1 = nx.Graph() + pytest.raises(nx.NetworkXError, nx.reverse, G1) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/shortest_paths/tests/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/shortest_paths/tests/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a339fdacdb18f93fe3780e2dcc7053f2ac1edb5f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/shortest_paths/tests/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/shortest_paths/tests/__pycache__/test_astar.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/shortest_paths/tests/__pycache__/test_astar.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..63fc8ef2fedc0a5f1794554dbddd07e5e3163b9e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/shortest_paths/tests/__pycache__/test_astar.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/shortest_paths/tests/__pycache__/test_dense.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/shortest_paths/tests/__pycache__/test_dense.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..990e56839f4ccdcaec3338cf7a87939cd4ac14e4 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/shortest_paths/tests/__pycache__/test_dense.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/shortest_paths/tests/__pycache__/test_dense_numpy.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/shortest_paths/tests/__pycache__/test_dense_numpy.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..58f3ec4f9731fd9a1d53d92c201f744be2fbe354 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/shortest_paths/tests/__pycache__/test_dense_numpy.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/shortest_paths/tests/__pycache__/test_generic.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/shortest_paths/tests/__pycache__/test_generic.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4234f8600bd2004a67469816d352c2ff1cf0d6d7 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/shortest_paths/tests/__pycache__/test_generic.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/shortest_paths/tests/__pycache__/test_unweighted.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/shortest_paths/tests/__pycache__/test_unweighted.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..35c91bf826df5e7dac2a25796f0ab2e640c62d14 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/shortest_paths/tests/__pycache__/test_unweighted.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/shortest_paths/tests/__pycache__/test_weighted.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/shortest_paths/tests/__pycache__/test_weighted.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..eb4105529854372e9836b8a9fbb6e93a1f5c75ea Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/shortest_paths/tests/__pycache__/test_weighted.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a2901dfd976e9f5752e8d7c69dcd4299961b01cd Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_asteroidal.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_asteroidal.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..289309dcd8cf6f01bde8ee4b060f8eb77b75b2c0 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_asteroidal.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_boundary.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_boundary.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..43a81c57e84bb311027f322fd981597ea36bb585 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_boundary.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_bridges.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_bridges.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9945adb53243d4fa1a7d125ec4677d8ed173da62 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_bridges.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_broadcasting.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_broadcasting.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f8a5166b14ddb89400809269c94bcb44c6fa73de Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_broadcasting.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_chains.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_chains.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..10924cf9bc24397064e2627d40a82f6eeebdc73d Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_chains.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_chordal.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_chordal.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..15d222cc7332bc25b9f8dc2736f9c933136dd3cb Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_chordal.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_clique.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_clique.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8e9e99578dc03dd2f7c3802e519e739e5243675d Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_clique.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_cluster.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_cluster.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a360ed2489148a64e4aac47842c43464dedce123 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_cluster.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_communicability.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_communicability.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b2f9a9284f776954c1de9ed32c8265d3087ca88d Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_communicability.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_core.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_core.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..447f768d272964c4b7432e98613fab48677ccc8d Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_core.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_covering.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_covering.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7e7d97b039d93463ae0f33868ec4d270562c36e0 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_covering.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_cuts.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_cuts.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7057b3ceaebcc94dea574f164c2fc496d6d76fad Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_cuts.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_cycles.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_cycles.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..80813b5df7f28d80f27bf1f0abc27720c007b706 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_cycles.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_d_separation.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_d_separation.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e87000c0776a609ea71c7903a15fe530634c002a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_d_separation.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_dag.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_dag.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7aca34044d67409b7cb1fb826db0680c8c066961 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_dag.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_distance_measures.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_distance_measures.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9523258b657de7bcd0e133e5bd2ac72b105ab925 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_distance_measures.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_distance_regular.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_distance_regular.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7327b08c219a4ed15aa0cad4c65e81b4db377cda Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_distance_regular.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_dominance.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_dominance.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fdb5dc3c2e59319d802462f7c9675c11296e00c1 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_dominance.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_dominating.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_dominating.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9a5fbe49d35336da893481604793fa3593e05506 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_dominating.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_efficiency.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_efficiency.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5c701d143e39ae294000da1b9f71506786d93a0b Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_efficiency.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_euler.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_euler.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bf568d2cd1d48c76b8590d224cd1e03c655f4c69 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_euler.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_graph_hashing.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_graph_hashing.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..df893d2edacb3213218179f1214e6be94fc29dd9 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_graph_hashing.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_graphical.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_graphical.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fbf8d2306373d4f5082008f6406a50d5ab8bcdda Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_graphical.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_hierarchy.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_hierarchy.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5ac23a6493bca1ce34b5b4929c727540ad505083 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_hierarchy.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_hybrid.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_hybrid.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..84674670c8e825c8250a8da2a9b40f0e2c40ca92 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_hybrid.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_isolate.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_isolate.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..014daf37bcbf05f7fa2520f719471b0cdefb4273 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_isolate.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_link_prediction.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_link_prediction.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b5433bf1dcd26ee61a4c2ba3ea996fe6767e75bb Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_link_prediction.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_lowest_common_ancestors.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_lowest_common_ancestors.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a3c61729c1f8a0eb45f4c69325628282b1a97041 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_lowest_common_ancestors.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_matching.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_matching.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..baf3909501db4e94e6052c791f00f4633c6489e6 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_matching.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_max_weight_clique.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_max_weight_clique.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7cc3ee7a19fdae63632161b6d52306dc242ce8b2 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_max_weight_clique.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_mis.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_mis.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..caa80103c58caa6788d34f529698cf9efff35525 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_mis.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_moral.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_moral.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f8880ef3aca7294a4d9c3850a8334ea9086454da Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_moral.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_node_classification.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_node_classification.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..970315cf17ddd04dcb3e6de3a8af50eacf9a8b47 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_node_classification.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_non_randomness.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_non_randomness.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9ef3806a693897bae54859c74a71142c8ef450af Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_non_randomness.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_perfect_graph.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_perfect_graph.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..29487119222c1d2fbcb36dba379fd995cc472c5e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_perfect_graph.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_planar_drawing.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_planar_drawing.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a6ab75e0ee8f50a42ec5da4bda136ed4693e3fc6 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_planar_drawing.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_planarity.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_planarity.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2c124fa074ec451becbacc05230ff339758c2632 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_planarity.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_polynomials.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_polynomials.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5ddea8f7ac121e1c9a203e31cca79948a8f0106b Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_polynomials.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_reciprocity.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_reciprocity.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fd54e3376702481698cf5943cb8cad8968d1992d Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_reciprocity.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_regular.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_regular.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d9925534e9130d7dc5476c479e2c28f9e4c89ae3 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_regular.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_richclub.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_richclub.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3957bb5a2a6ff8d51cee75ffa45dd788aaab2814 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_richclub.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_similarity.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_similarity.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0d4505ac191d32d6a83d43c6a0290349a2b9dfc0 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_similarity.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_simple_paths.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_simple_paths.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..468f5bcfab92ef643ed44ff2cd11a968bf9ddf2f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_simple_paths.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_smallworld.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_smallworld.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..45440a67a1c2b6d7192fad31db8e0a4704745b42 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_smallworld.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_smetric.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_smetric.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3ed1b4f4fff456c89e727583564d6fac74cde5e8 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_smetric.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_sparsifiers.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_sparsifiers.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7e7e5b11d9ed83b3aaa7099d90746eaf5d832c6c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_sparsifiers.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_structuralholes.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_structuralholes.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..958d91efc52ace9fa4f44b25dfb2bd90ae89b895 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_structuralholes.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_summarization.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_summarization.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..96bcc93a9d5fd476b3c0efaf8588879cbd8118e5 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_summarization.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_swap.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_swap.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c5da5630ca875613cd3cd04d30970b6ff8f9909f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_swap.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_threshold.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_threshold.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..911fd32e5818b059c752f941105052f574395d9e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_threshold.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_time_dependent.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_time_dependent.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4cd42e161590808c20b685157c9b812c41316d4c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_time_dependent.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_tournament.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_tournament.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..48670593ae4411720ad2bd2ba650cb2363b1008a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_tournament.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_triads.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_triads.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cc25e363da154c6f5855b34447cdce48f83b81bc Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_triads.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_vitality.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_vitality.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..780264fb250d87e856a5e23bfc68e4bbf99a1bbd Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_vitality.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_voronoi.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_voronoi.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ef8050340f4323fd47486173f82974b7d242a45b Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_voronoi.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_walks.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_walks.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4739912fcc9c46b45427b053482afee6f951a6f4 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_walks.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_wiener.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_wiener.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2ab7b03f6fe791607c172688e595354195517ce8 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/__pycache__/test_wiener.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_asteroidal.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_asteroidal.py new file mode 100644 index 0000000000000000000000000000000000000000..67131b2d05026317b496d06e6b382836c8c26367 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_asteroidal.py @@ -0,0 +1,23 @@ +import networkx as nx + + +def test_is_at_free(): + is_at_free = nx.asteroidal.is_at_free + + cycle = nx.cycle_graph(6) + assert not is_at_free(cycle) + + path = nx.path_graph(6) + assert is_at_free(path) + + small_graph = nx.complete_graph(2) + assert is_at_free(small_graph) + + petersen = nx.petersen_graph() + assert not is_at_free(petersen) + + clique = nx.complete_graph(6) + assert is_at_free(clique) + + line_clique = nx.line_graph(clique) + assert not is_at_free(line_clique) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_boundary.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_boundary.py new file mode 100644 index 0000000000000000000000000000000000000000..856be465556941fe6f2bfc2c8bab6d4b508cf999 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_boundary.py @@ -0,0 +1,154 @@ +"""Unit tests for the :mod:`networkx.algorithms.boundary` module.""" + +from itertools import combinations + +import pytest + +import networkx as nx +from networkx import convert_node_labels_to_integers as cnlti +from networkx.utils import edges_equal + + +class TestNodeBoundary: + """Unit tests for the :func:`~networkx.node_boundary` function.""" + + def test_null_graph(self): + """Tests that the null graph has empty node boundaries.""" + null = nx.null_graph() + assert nx.node_boundary(null, []) == set() + assert nx.node_boundary(null, [], []) == set() + assert nx.node_boundary(null, [1, 2, 3]) == set() + assert nx.node_boundary(null, [1, 2, 3], [4, 5, 6]) == set() + assert nx.node_boundary(null, [1, 2, 3], [3, 4, 5]) == set() + + def test_path_graph(self): + P10 = cnlti(nx.path_graph(10), first_label=1) + assert nx.node_boundary(P10, []) == set() + assert nx.node_boundary(P10, [], []) == set() + assert nx.node_boundary(P10, [1, 2, 3]) == {4} + assert nx.node_boundary(P10, [4, 5, 6]) == {3, 7} + assert nx.node_boundary(P10, [3, 4, 5, 6, 7]) == {2, 8} + assert nx.node_boundary(P10, [8, 9, 10]) == {7} + assert nx.node_boundary(P10, [4, 5, 6], [9, 10]) == set() + + def test_complete_graph(self): + K10 = cnlti(nx.complete_graph(10), first_label=1) + assert nx.node_boundary(K10, []) == set() + assert nx.node_boundary(K10, [], []) == set() + assert nx.node_boundary(K10, [1, 2, 3]) == {4, 5, 6, 7, 8, 9, 10} + assert nx.node_boundary(K10, [4, 5, 6]) == {1, 2, 3, 7, 8, 9, 10} + assert nx.node_boundary(K10, [3, 4, 5, 6, 7]) == {1, 2, 8, 9, 10} + assert nx.node_boundary(K10, [4, 5, 6], []) == set() + assert nx.node_boundary(K10, K10) == set() + assert nx.node_boundary(K10, [1, 2, 3], [3, 4, 5]) == {4, 5} + + def test_petersen(self): + """Check boundaries in the petersen graph + + cheeger(G,k)=min(|bdy(S)|/|S| for |S|=k, 0>> list(cycles("abc")) + [('a', 'b', 'c'), ('b', 'c', 'a'), ('c', 'a', 'b')] + + """ + n = len(seq) + cycled_seq = cycle(seq) + for x in seq: + yield tuple(islice(cycled_seq, n)) + next(cycled_seq) + + +def cyclic_equals(seq1, seq2): + """Decide whether two sequences are equal up to cyclic permutations. + + For example:: + + >>> cyclic_equals("xyz", "zxy") + True + >>> cyclic_equals("xyz", "zyx") + False + + """ + # Cast seq2 to a tuple since `cycles()` yields tuples. + seq2 = tuple(seq2) + return any(x == tuple(seq2) for x in cycles(seq1)) + + +class TestChainDecomposition: + """Unit tests for the chain decomposition function.""" + + def assertContainsChain(self, chain, expected): + # A cycle could be expressed in two different orientations, one + # forward and one backward, so we need to check for cyclic + # equality in both orientations. + reversed_chain = list(reversed([tuple(reversed(e)) for e in chain])) + for candidate in expected: + if cyclic_equals(chain, candidate): + break + if cyclic_equals(reversed_chain, candidate): + break + else: + self.fail("chain not found") + + def test_decomposition(self): + edges = [ + # DFS tree edges. + (1, 2), + (2, 3), + (3, 4), + (3, 5), + (5, 6), + (6, 7), + (7, 8), + (5, 9), + (9, 10), + # Nontree edges. + (1, 3), + (1, 4), + (2, 5), + (5, 10), + (6, 8), + ] + G = nx.Graph(edges) + expected = [ + [(1, 3), (3, 2), (2, 1)], + [(1, 4), (4, 3)], + [(2, 5), (5, 3)], + [(5, 10), (10, 9), (9, 5)], + [(6, 8), (8, 7), (7, 6)], + ] + chains = list(nx.chain_decomposition(G, root=1)) + assert len(chains) == len(expected) + + def test_barbell_graph(self): + # The (3, 0) barbell graph has two triangles joined by a single edge. + G = nx.barbell_graph(3, 0) + chains = list(nx.chain_decomposition(G, root=0)) + expected = [[(0, 1), (1, 2), (2, 0)], [(3, 4), (4, 5), (5, 3)]] + assert len(chains) == len(expected) + for chain in chains: + self.assertContainsChain(chain, expected) + + def test_disconnected_graph(self): + """Test for a graph with multiple connected components.""" + G = nx.barbell_graph(3, 0) + H = nx.barbell_graph(3, 0) + mapping = dict(zip(range(6), "abcdef")) + nx.relabel_nodes(H, mapping, copy=False) + G = nx.union(G, H) + chains = list(nx.chain_decomposition(G)) + expected = [ + [(0, 1), (1, 2), (2, 0)], + [(3, 4), (4, 5), (5, 3)], + [("a", "b"), ("b", "c"), ("c", "a")], + [("d", "e"), ("e", "f"), ("f", "d")], + ] + assert len(chains) == len(expected) + for chain in chains: + self.assertContainsChain(chain, expected) + + def test_disconnected_graph_root_node(self): + """Test for a single component of a disconnected graph.""" + G = nx.barbell_graph(3, 0) + H = nx.barbell_graph(3, 0) + mapping = dict(zip(range(6), "abcdef")) + nx.relabel_nodes(H, mapping, copy=False) + G = nx.union(G, H) + chains = list(nx.chain_decomposition(G, root="a")) + expected = [ + [("a", "b"), ("b", "c"), ("c", "a")], + [("d", "e"), ("e", "f"), ("f", "d")], + ] + assert len(chains) == len(expected) + for chain in chains: + self.assertContainsChain(chain, expected) + + def test_chain_decomposition_root_not_in_G(self): + """Test chain decomposition when root is not in graph""" + G = nx.Graph() + G.add_nodes_from([1, 2, 3]) + with pytest.raises(nx.NodeNotFound): + nx.has_bridges(G, root=6) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_chordal.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_chordal.py new file mode 100644 index 0000000000000000000000000000000000000000..148b22f2632d722522483b556f11285a8e823126 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_chordal.py @@ -0,0 +1,129 @@ +import pytest + +import networkx as nx + + +class TestMCS: + @classmethod + def setup_class(cls): + # simple graph + connected_chordal_G = nx.Graph() + connected_chordal_G.add_edges_from( + [ + (1, 2), + (1, 3), + (2, 3), + (2, 4), + (3, 4), + (3, 5), + (3, 6), + (4, 5), + (4, 6), + (5, 6), + ] + ) + cls.connected_chordal_G = connected_chordal_G + + chordal_G = nx.Graph() + chordal_G.add_edges_from( + [ + (1, 2), + (1, 3), + (2, 3), + (2, 4), + (3, 4), + (3, 5), + (3, 6), + (4, 5), + (4, 6), + (5, 6), + (7, 8), + ] + ) + chordal_G.add_node(9) + cls.chordal_G = chordal_G + + non_chordal_G = nx.Graph() + non_chordal_G.add_edges_from([(1, 2), (1, 3), (2, 4), (2, 5), (3, 4), (3, 5)]) + cls.non_chordal_G = non_chordal_G + + self_loop_G = nx.Graph() + self_loop_G.add_edges_from([(1, 1)]) + cls.self_loop_G = self_loop_G + + @pytest.mark.parametrize("G", (nx.DiGraph(), nx.MultiGraph(), nx.MultiDiGraph())) + def test_is_chordal_not_implemented(self, G): + with pytest.raises(nx.NetworkXNotImplemented): + nx.is_chordal(G) + + def test_is_chordal(self): + assert not nx.is_chordal(self.non_chordal_G) + assert nx.is_chordal(self.chordal_G) + assert nx.is_chordal(self.connected_chordal_G) + assert nx.is_chordal(nx.Graph()) + assert nx.is_chordal(nx.complete_graph(3)) + assert nx.is_chordal(nx.cycle_graph(3)) + assert not nx.is_chordal(nx.cycle_graph(5)) + assert nx.is_chordal(self.self_loop_G) + + def test_induced_nodes(self): + G = nx.generators.classic.path_graph(10) + Induced_nodes = nx.find_induced_nodes(G, 1, 9, 2) + assert Induced_nodes == {1, 2, 3, 4, 5, 6, 7, 8, 9} + pytest.raises( + nx.NetworkXTreewidthBoundExceeded, nx.find_induced_nodes, G, 1, 9, 1 + ) + Induced_nodes = nx.find_induced_nodes(self.chordal_G, 1, 6) + assert Induced_nodes == {1, 2, 4, 6} + pytest.raises(nx.NetworkXError, nx.find_induced_nodes, self.non_chordal_G, 1, 5) + + def test_graph_treewidth(self): + with pytest.raises(nx.NetworkXError, match="Input graph is not chordal"): + nx.chordal_graph_treewidth(self.non_chordal_G) + + def test_chordal_find_cliques(self): + cliques = { + frozenset([9]), + frozenset([7, 8]), + frozenset([1, 2, 3]), + frozenset([2, 3, 4]), + frozenset([3, 4, 5, 6]), + } + assert set(nx.chordal_graph_cliques(self.chordal_G)) == cliques + with pytest.raises(nx.NetworkXError, match="Input graph is not chordal"): + set(nx.chordal_graph_cliques(self.non_chordal_G)) + with pytest.raises(nx.NetworkXError, match="Input graph is not chordal"): + set(nx.chordal_graph_cliques(self.self_loop_G)) + + def test_chordal_find_cliques_path(self): + G = nx.path_graph(10) + cliqueset = nx.chordal_graph_cliques(G) + for u, v in G.edges(): + assert frozenset([u, v]) in cliqueset or frozenset([v, u]) in cliqueset + + def test_chordal_find_cliquesCC(self): + cliques = {frozenset([1, 2, 3]), frozenset([2, 3, 4]), frozenset([3, 4, 5, 6])} + cgc = nx.chordal_graph_cliques + assert set(cgc(self.connected_chordal_G)) == cliques + + def test_complete_to_chordal_graph(self): + fgrg = nx.fast_gnp_random_graph + test_graphs = [ + nx.barbell_graph(6, 2), + nx.cycle_graph(15), + nx.wheel_graph(20), + nx.grid_graph([10, 4]), + nx.ladder_graph(15), + nx.star_graph(5), + nx.bull_graph(), + fgrg(20, 0.3, seed=1), + ] + for G in test_graphs: + H, a = nx.complete_to_chordal_graph(G) + assert nx.is_chordal(H) + assert len(a) == H.number_of_nodes() + if nx.is_chordal(G): + assert G.number_of_edges() == H.number_of_edges() + assert set(a.values()) == {0} + else: + assert len(set(a.values())) == H.number_of_nodes() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_clique.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_clique.py new file mode 100644 index 0000000000000000000000000000000000000000..118b3093cf3fd12ffe458983b37549faf78c83c3 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_clique.py @@ -0,0 +1,300 @@ +import pytest + +import networkx as nx +from networkx import convert_node_labels_to_integers as cnlti + + +class TestCliques: + def setup_method(self): + z = [3, 4, 3, 4, 2, 4, 2, 1, 1, 1, 1] + self.G = cnlti(nx.generators.havel_hakimi_graph(z), first_label=1) + self.cl = list(nx.find_cliques(self.G)) + H = nx.complete_graph(6) + H = nx.relabel_nodes(H, {i: i + 1 for i in range(6)}) + H.remove_edges_from([(2, 6), (2, 5), (2, 4), (1, 3), (5, 3)]) + self.H = H + + def test_find_cliques1(self): + cl = list(nx.find_cliques(self.G)) + rcl = nx.find_cliques_recursive(self.G) + expected = [[2, 6, 1, 3], [2, 6, 4], [5, 4, 7], [8, 9], [10, 11]] + assert sorted(map(sorted, cl)) == sorted(map(sorted, rcl)) + assert sorted(map(sorted, cl)) == sorted(map(sorted, expected)) + + def test_selfloops(self): + self.G.add_edge(1, 1) + cl = list(nx.find_cliques(self.G)) + rcl = list(nx.find_cliques_recursive(self.G)) + assert set(map(frozenset, cl)) == set(map(frozenset, rcl)) + answer = [{2, 6, 1, 3}, {2, 6, 4}, {5, 4, 7}, {8, 9}, {10, 11}] + assert len(answer) == len(cl) + assert all(set(c) in answer for c in cl) + + def test_find_cliques2(self): + hcl = list(nx.find_cliques(self.H)) + assert sorted(map(sorted, hcl)) == [[1, 2], [1, 4, 5, 6], [2, 3], [3, 4, 6]] + + def test_find_cliques3(self): + # all cliques are [[2, 6, 1, 3], [2, 6, 4], [5, 4, 7], [8, 9], [10, 11]] + + cl = list(nx.find_cliques(self.G, [2])) + rcl = nx.find_cliques_recursive(self.G, [2]) + expected = [[2, 6, 1, 3], [2, 6, 4]] + assert sorted(map(sorted, rcl)) == sorted(map(sorted, expected)) + assert sorted(map(sorted, cl)) == sorted(map(sorted, expected)) + + cl = list(nx.find_cliques(self.G, [2, 3])) + rcl = nx.find_cliques_recursive(self.G, [2, 3]) + expected = [[2, 6, 1, 3]] + assert sorted(map(sorted, rcl)) == sorted(map(sorted, expected)) + assert sorted(map(sorted, cl)) == sorted(map(sorted, expected)) + + cl = list(nx.find_cliques(self.G, [2, 6, 4])) + rcl = nx.find_cliques_recursive(self.G, [2, 6, 4]) + expected = [[2, 6, 4]] + assert sorted(map(sorted, rcl)) == sorted(map(sorted, expected)) + assert sorted(map(sorted, cl)) == sorted(map(sorted, expected)) + + cl = list(nx.find_cliques(self.G, [2, 6, 4])) + rcl = nx.find_cliques_recursive(self.G, [2, 6, 4]) + expected = [[2, 6, 4]] + assert sorted(map(sorted, rcl)) == sorted(map(sorted, expected)) + assert sorted(map(sorted, cl)) == sorted(map(sorted, expected)) + + with pytest.raises(ValueError): + list(nx.find_cliques(self.G, [2, 6, 4, 1])) + + with pytest.raises(ValueError): + list(nx.find_cliques_recursive(self.G, [2, 6, 4, 1])) + + def test_find_cliques_directed(self): + G = nx.path_graph(4, create_using=nx.DiGraph) + msg = "not implemented for directed" + with pytest.raises(nx.NetworkXNotImplemented, match=msg): + list(nx.find_cliques(G)) + + with pytest.raises(nx.NetworkXNotImplemented, match=msg): + list(nx.find_cliques_recursive(G)) + + def test_number_of_cliques(self): + G = self.G + assert nx.number_of_cliques(G, 1) == 1 + assert list(nx.number_of_cliques(G, [1]).values()) == [1] + assert list(nx.number_of_cliques(G, [1, 2]).values()) == [1, 2] + assert nx.number_of_cliques(G, [1, 2]) == {1: 1, 2: 2} + assert nx.number_of_cliques(G, 2) == 2 + assert nx.number_of_cliques(G) == { + 1: 1, + 2: 2, + 3: 1, + 4: 2, + 5: 1, + 6: 2, + 7: 1, + 8: 1, + 9: 1, + 10: 1, + 11: 1, + } + assert nx.number_of_cliques(G, nodes=list(G)) == { + 1: 1, + 2: 2, + 3: 1, + 4: 2, + 5: 1, + 6: 2, + 7: 1, + 8: 1, + 9: 1, + 10: 1, + 11: 1, + } + assert nx.number_of_cliques(G, nodes=[2, 3, 4]) == {2: 2, 3: 1, 4: 2} + assert nx.number_of_cliques(G, cliques=self.cl) == { + 1: 1, + 2: 2, + 3: 1, + 4: 2, + 5: 1, + 6: 2, + 7: 1, + 8: 1, + 9: 1, + 10: 1, + 11: 1, + } + assert nx.number_of_cliques(G, list(G), cliques=self.cl) == { + 1: 1, + 2: 2, + 3: 1, + 4: 2, + 5: 1, + 6: 2, + 7: 1, + 8: 1, + 9: 1, + 10: 1, + 11: 1, + } + + def test_node_clique_number(self): + G = self.G + assert nx.node_clique_number(G, 1) == 4 + assert list(nx.node_clique_number(G, [1]).values()) == [4] + assert list(nx.node_clique_number(G, [1, 2]).values()) == [4, 4] + assert nx.node_clique_number(G, [1, 2]) == {1: 4, 2: 4} + assert nx.node_clique_number(G, 1) == 4 + assert nx.node_clique_number(G) == { + 1: 4, + 2: 4, + 3: 4, + 4: 3, + 5: 3, + 6: 4, + 7: 3, + 8: 2, + 9: 2, + 10: 2, + 11: 2, + } + assert nx.node_clique_number(G, cliques=self.cl) == { + 1: 4, + 2: 4, + 3: 4, + 4: 3, + 5: 3, + 6: 4, + 7: 3, + 8: 2, + 9: 2, + 10: 2, + 11: 2, + } + assert nx.node_clique_number(G, [1, 2], cliques=self.cl) == {1: 4, 2: 4} + assert nx.node_clique_number(G, 1, cliques=self.cl) == 4 + + def test_make_clique_bipartite(self): + G = self.G + B = nx.make_clique_bipartite(G) + assert sorted(B) == [-5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + # Project onto the nodes of the original graph. + H = nx.projected_graph(B, range(1, 12)) + assert H.adj == G.adj + # Project onto the nodes representing the cliques. + H1 = nx.projected_graph(B, range(-5, 0)) + # Relabel the negative numbers as positive ones. + H1 = nx.relabel_nodes(H1, {-v: v for v in range(1, 6)}) + assert sorted(H1) == [1, 2, 3, 4, 5] + + def test_make_max_clique_graph(self): + """Tests that the maximal clique graph is the same as the bipartite + clique graph after being projected onto the nodes representing the + cliques. + + """ + G = self.G + B = nx.make_clique_bipartite(G) + # Project onto the nodes representing the cliques. + H1 = nx.projected_graph(B, range(-5, 0)) + # Relabel the negative numbers as nonnegative ones, starting at + # 0. + H1 = nx.relabel_nodes(H1, {-v: v - 1 for v in range(1, 6)}) + H2 = nx.make_max_clique_graph(G) + assert H1.adj == H2.adj + + def test_directed(self): + with pytest.raises(nx.NetworkXNotImplemented): + next(nx.find_cliques(nx.DiGraph())) + + def test_find_cliques_trivial(self): + G = nx.Graph() + assert sorted(nx.find_cliques(G)) == [] + assert sorted(nx.find_cliques_recursive(G)) == [] + + def test_make_max_clique_graph_create_using(self): + G = nx.Graph([(1, 2), (3, 1), (4, 1), (5, 6)]) + E = nx.Graph([(0, 1), (0, 2), (1, 2)]) + E.add_node(3) + assert nx.is_isomorphic(nx.make_max_clique_graph(G, create_using=nx.Graph), E) + + +class TestEnumerateAllCliques: + def test_paper_figure_4(self): + # Same graph as given in Fig. 4 of paper enumerate_all_cliques is + # based on. + # http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1559964&isnumber=33129 + G = nx.Graph() + edges_fig_4 = [ + ("a", "b"), + ("a", "c"), + ("a", "d"), + ("a", "e"), + ("b", "c"), + ("b", "d"), + ("b", "e"), + ("c", "d"), + ("c", "e"), + ("d", "e"), + ("f", "b"), + ("f", "c"), + ("f", "g"), + ("g", "f"), + ("g", "c"), + ("g", "d"), + ("g", "e"), + ] + G.add_edges_from(edges_fig_4) + + cliques = list(nx.enumerate_all_cliques(G)) + clique_sizes = list(map(len, cliques)) + assert sorted(clique_sizes) == clique_sizes + + expected_cliques = [ + ["a"], + ["b"], + ["c"], + ["d"], + ["e"], + ["f"], + ["g"], + ["a", "b"], + ["a", "b", "d"], + ["a", "b", "d", "e"], + ["a", "b", "e"], + ["a", "c"], + ["a", "c", "d"], + ["a", "c", "d", "e"], + ["a", "c", "e"], + ["a", "d"], + ["a", "d", "e"], + ["a", "e"], + ["b", "c"], + ["b", "c", "d"], + ["b", "c", "d", "e"], + ["b", "c", "e"], + ["b", "c", "f"], + ["b", "d"], + ["b", "d", "e"], + ["b", "e"], + ["b", "f"], + ["c", "d"], + ["c", "d", "e"], + ["c", "d", "e", "g"], + ["c", "d", "g"], + ["c", "e"], + ["c", "e", "g"], + ["c", "f"], + ["c", "f", "g"], + ["c", "g"], + ["d", "e"], + ["d", "e", "g"], + ["d", "g"], + ["e", "g"], + ["f", "g"], + ["a", "b", "c"], + ["a", "b", "c", "d"], + ["a", "b", "c", "d", "e"], + ["a", "b", "c", "e"], + ] + + assert sorted(map(sorted, cliques)) == sorted(map(sorted, expected_cliques)) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_cluster.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_cluster.py new file mode 100644 index 0000000000000000000000000000000000000000..f4741b420af781cec73c86e917af6ad68fa091a7 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_cluster.py @@ -0,0 +1,678 @@ +import pytest + +import networkx as nx + + +def test_square_clustering_adjacent_squares(): + G = nx.Graph([(1, 2), (1, 3), (2, 4), (3, 4), (3, 5), (4, 6), (5, 6)]) + # Corner nodes: C_4 == 0.5, central face nodes: C_4 = 1 / 3 + expected = {1: 0.5, 2: 0.5, 3: 1 / 3, 4: 1 / 3, 5: 0.5, 6: 0.5} + assert nx.square_clustering(G) == expected + + +def test_square_clustering_2d_grid(): + G = nx.grid_2d_graph(3, 3) + # Central node: 4 squares out of 20 potential + expected = { + (0, 0): 1 / 3, + (0, 1): 0.25, + (0, 2): 1 / 3, + (1, 0): 0.25, + (1, 1): 0.2, + (1, 2): 0.25, + (2, 0): 1 / 3, + (2, 1): 0.25, + (2, 2): 1 / 3, + } + assert nx.square_clustering(G) == expected + + +def test_square_clustering_multiple_squares_non_complete(): + """An example where all nodes are part of all squares, but not every node + is connected to every other.""" + G = nx.Graph([(0, 1), (0, 2), (1, 3), (2, 3), (1, 4), (2, 4), (1, 5), (2, 5)]) + expected = {n: 1 for n in G} + assert nx.square_clustering(G) == expected + + +class TestTriangles: + def test_empty(self): + G = nx.Graph() + assert list(nx.triangles(G).values()) == [] + + def test_path(self): + G = nx.path_graph(10) + assert list(nx.triangles(G).values()) == [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + assert nx.triangles(G) == { + 0: 0, + 1: 0, + 2: 0, + 3: 0, + 4: 0, + 5: 0, + 6: 0, + 7: 0, + 8: 0, + 9: 0, + } + + def test_cubical(self): + G = nx.cubical_graph() + assert list(nx.triangles(G).values()) == [0, 0, 0, 0, 0, 0, 0, 0] + assert nx.triangles(G, 1) == 0 + assert list(nx.triangles(G, [1, 2]).values()) == [0, 0] + assert nx.triangles(G, 1) == 0 + assert nx.triangles(G, [1, 2]) == {1: 0, 2: 0} + + def test_k5(self): + G = nx.complete_graph(5) + assert list(nx.triangles(G).values()) == [6, 6, 6, 6, 6] + assert sum(nx.triangles(G).values()) / 3 == 10 + assert nx.triangles(G, 1) == 6 + G.remove_edge(1, 2) + assert list(nx.triangles(G).values()) == [5, 3, 3, 5, 5] + assert nx.triangles(G, 1) == 3 + G.add_edge(3, 3) # ignore self-edges + assert list(nx.triangles(G).values()) == [5, 3, 3, 5, 5] + assert nx.triangles(G, 3) == 5 + + +def test_all_triangles_non_integer_nodes(): + G = nx.Graph() + G.add_edges_from( + [ + ("a", "b"), + ("b", "c"), + ("c", "a"), # triangle: a-b-c + ] + ) + expected = {frozenset({"a", "b", "c"})} + assert {frozenset(t) for t in nx.all_triangles(G)} == expected + + +def test_all_triangles_overlapping(): + G = nx.Graph() + G.add_edges_from( + [ + (0, 1), + (1, 2), + (2, 0), # triangle: 0-1-2 + (0, 2), + (2, 3), + (3, 0), # triangle: 0-2-3 + ] + ) + expected = {frozenset({0, 1, 2}), frozenset({0, 2, 3})} + assert {frozenset(t) for t in nx.all_triangles(G)} == expected + + +def test_all_triangles_subset(): + G = nx.Graph() + G.add_edges_from( + [ + (0, 1), + (1, 2), + (2, 0), # triangle: 0-1-2 + (2, 3), + (3, 4), + (4, 2), # triangle: 2-3-4 + ] + ) + assert {frozenset(t) for t in nx.all_triangles(G, nbunch=[0, 1])} == { + frozenset({0, 1, 2}) + } + + +def test_all_triangles_subset_empty(): + G = nx.Graph() + G.add_edges_from( + [ + (0, 1), + (1, 2), + (2, 0), # triangle: 0-1-2 + (2, 3), + (3, 4), + (4, 2), # triangle: 2-3-4 + (5, 2), + ] + ) + assert list(nx.all_triangles(G, nbunch=[5])) == [] + + +def test_all_triangles_no_triangles(): + G = nx.path_graph(4) + assert list(nx.all_triangles(G)) == [] + + +def test_all_triangles_complete_graph_exact(): + G = nx.complete_graph(4) + + expected = { + frozenset({0, 1, 2}), + frozenset({0, 1, 3}), + frozenset({0, 2, 3}), + frozenset({1, 2, 3}), + } + + assert {frozenset(t) for t in nx.all_triangles(G)} == expected + + +def test_all_triangles_directed_graph(): + G = nx.DiGraph() + G.add_edges_from([(0, 1), (1, 2), (2, 0)]) + with pytest.raises(nx.NetworkXNotImplemented): + list(nx.all_triangles(G)) + + +@pytest.mark.parametrize("graph_type", [nx.Graph, nx.MultiGraph]) +def test_all_triangles_multiedges(graph_type): + G = graph_type() + G.add_edges_from([(0, 1), (0, 2), (1, 2), (1, 2)]) + assert {frozenset(t) for t in nx.all_triangles(G)} == {frozenset({0, 1, 2})} + + +class TestDirectedClustering: + def test_clustering(self): + G = nx.DiGraph() + assert list(nx.clustering(G).values()) == [] + assert nx.clustering(G) == {} + + def test_path(self): + G = nx.path_graph(10, create_using=nx.DiGraph()) + assert list(nx.clustering(G).values()) == [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ] + assert nx.clustering(G) == { + 0: 0, + 1: 0, + 2: 0, + 3: 0, + 4: 0, + 5: 0, + 6: 0, + 7: 0, + 8: 0, + 9: 0, + } + assert nx.clustering(G, 0) == 0 + + def test_k5(self): + G = nx.complete_graph(5, create_using=nx.DiGraph()) + assert list(nx.clustering(G).values()) == [1, 1, 1, 1, 1] + assert nx.average_clustering(G) == 1 + G.remove_edge(1, 2) + assert list(nx.clustering(G).values()) == [ + 11 / 12, + 1, + 1, + 11 / 12, + 11 / 12, + ] + assert nx.clustering(G, [1, 4]) == {1: 1, 4: 11 / 12} + G.remove_edge(2, 1) + assert list(nx.clustering(G).values()) == [ + 5 / 6, + 1, + 1, + 5 / 6, + 5 / 6, + ] + assert nx.clustering(G, [1, 4]) == {1: 1, 4: 0.83333333333333337} + assert nx.clustering(G, 4) == 5 / 6 + + def test_triangle_and_edge(self): + G = nx.cycle_graph(3, create_using=nx.DiGraph()) + G.add_edge(0, 4) + assert nx.clustering(G)[0] == 1 / 6 + + +class TestDirectedWeightedClustering: + @classmethod + def setup_class(cls): + global np + np = pytest.importorskip("numpy") + + def test_clustering(self): + G = nx.DiGraph() + assert list(nx.clustering(G, weight="weight").values()) == [] + assert nx.clustering(G) == {} + + def test_path(self): + G = nx.path_graph(10, create_using=nx.DiGraph()) + assert list(nx.clustering(G, weight="weight").values()) == [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ] + assert nx.clustering(G, weight="weight") == { + 0: 0, + 1: 0, + 2: 0, + 3: 0, + 4: 0, + 5: 0, + 6: 0, + 7: 0, + 8: 0, + 9: 0, + } + + def test_k5(self): + G = nx.complete_graph(5, create_using=nx.DiGraph()) + assert list(nx.clustering(G, weight="weight").values()) == [1, 1, 1, 1, 1] + assert nx.average_clustering(G, weight="weight") == 1 + G.remove_edge(1, 2) + assert list(nx.clustering(G, weight="weight").values()) == [ + 11 / 12, + 1, + 1, + 11 / 12, + 11 / 12, + ] + assert nx.clustering(G, [1, 4], weight="weight") == {1: 1, 4: 11 / 12} + G.remove_edge(2, 1) + assert list(nx.clustering(G, weight="weight").values()) == [ + 5 / 6, + 1, + 1, + 5 / 6, + 5 / 6, + ] + assert nx.clustering(G, [1, 4], weight="weight") == { + 1: 1, + 4: 0.83333333333333337, + } + + def test_triangle_and_edge(self): + G = nx.cycle_graph(3, create_using=nx.DiGraph()) + G.add_edge(0, 4, weight=2) + assert nx.clustering(G)[0] == 1 / 6 + # Relaxed comparisons to allow graphblas-algorithms to pass tests + np.testing.assert_allclose(nx.clustering(G, weight="weight")[0], 1 / 12) + np.testing.assert_allclose(nx.clustering(G, 0, weight="weight"), 1 / 12) + + +class TestWeightedClustering: + @classmethod + def setup_class(cls): + global np + np = pytest.importorskip("numpy") + + def test_clustering(self): + G = nx.Graph() + assert list(nx.clustering(G, weight="weight").values()) == [] + assert nx.clustering(G) == {} + + def test_path(self): + G = nx.path_graph(10) + assert list(nx.clustering(G, weight="weight").values()) == [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ] + assert nx.clustering(G, weight="weight") == { + 0: 0, + 1: 0, + 2: 0, + 3: 0, + 4: 0, + 5: 0, + 6: 0, + 7: 0, + 8: 0, + 9: 0, + } + + def test_cubical(self): + G = nx.cubical_graph() + assert list(nx.clustering(G, weight="weight").values()) == [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ] + assert nx.clustering(G, 1) == 0 + assert list(nx.clustering(G, [1, 2], weight="weight").values()) == [0, 0] + assert nx.clustering(G, 1, weight="weight") == 0 + assert nx.clustering(G, [1, 2], weight="weight") == {1: 0, 2: 0} + + def test_k5(self): + G = nx.complete_graph(5) + assert list(nx.clustering(G, weight="weight").values()) == [1, 1, 1, 1, 1] + assert nx.average_clustering(G, weight="weight") == 1 + G.remove_edge(1, 2) + assert list(nx.clustering(G, weight="weight").values()) == [ + 5 / 6, + 1, + 1, + 5 / 6, + 5 / 6, + ] + assert nx.clustering(G, [1, 4], weight="weight") == { + 1: 1, + 4: 0.83333333333333337, + } + + def test_triangle_and_edge(self): + G = nx.cycle_graph(3) + G.add_edge(0, 4, weight=2) + assert nx.clustering(G)[0] == 1 / 3 + np.testing.assert_allclose(nx.clustering(G, weight="weight")[0], 1 / 6) + np.testing.assert_allclose(nx.clustering(G, 0, weight="weight"), 1 / 6) + + def test_triangle_and_signed_edge(self): + G = nx.cycle_graph(3) + G.add_edge(0, 1, weight=-1) + G.add_edge(3, 0, weight=0) + assert nx.clustering(G)[0] == 1 / 3 + assert nx.clustering(G, weight="weight")[0] == -1 / 3 + + +class TestClustering: + @classmethod + def setup_class(cls): + pytest.importorskip("numpy") + + def test_clustering(self): + G = nx.Graph() + assert list(nx.clustering(G).values()) == [] + assert nx.clustering(G) == {} + + def test_path(self): + G = nx.path_graph(10) + assert list(nx.clustering(G).values()) == [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ] + assert nx.clustering(G) == { + 0: 0, + 1: 0, + 2: 0, + 3: 0, + 4: 0, + 5: 0, + 6: 0, + 7: 0, + 8: 0, + 9: 0, + } + + def test_cubical(self): + G = nx.cubical_graph() + assert list(nx.clustering(G).values()) == [0, 0, 0, 0, 0, 0, 0, 0] + assert nx.clustering(G, 1) == 0 + assert list(nx.clustering(G, [1, 2]).values()) == [0, 0] + assert nx.clustering(G, 1) == 0 + assert nx.clustering(G, [1, 2]) == {1: 0, 2: 0} + + def test_k5(self): + G = nx.complete_graph(5) + assert list(nx.clustering(G).values()) == [1, 1, 1, 1, 1] + assert nx.average_clustering(G) == 1 + G.remove_edge(1, 2) + assert list(nx.clustering(G).values()) == [ + 5 / 6, + 1, + 1, + 5 / 6, + 5 / 6, + ] + assert nx.clustering(G, [1, 4]) == {1: 1, 4: 0.83333333333333337} + + def test_k5_signed(self): + G = nx.complete_graph(5) + assert list(nx.clustering(G).values()) == [1, 1, 1, 1, 1] + assert nx.average_clustering(G) == 1 + G.remove_edge(1, 2) + G.add_edge(0, 1, weight=-1) + assert list(nx.clustering(G, weight="weight").values()) == [ + 1 / 6, + -1 / 3, + 1, + 3 / 6, + 3 / 6, + ] + + +class TestTransitivity: + def test_transitivity(self): + G = nx.Graph() + assert nx.transitivity(G) == 0 + + def test_path(self): + G = nx.path_graph(10) + assert nx.transitivity(G) == 0 + + def test_cubical(self): + G = nx.cubical_graph() + assert nx.transitivity(G) == 0 + + def test_k5(self): + G = nx.complete_graph(5) + assert nx.transitivity(G) == 1 + G.remove_edge(1, 2) + assert nx.transitivity(G) == 0.875 + + +class TestSquareClustering: + def test_clustering(self): + G = nx.Graph() + assert list(nx.square_clustering(G).values()) == [] + assert nx.square_clustering(G) == {} + + def test_path(self): + G = nx.path_graph(10) + assert list(nx.square_clustering(G).values()) == [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + ] + assert nx.square_clustering(G) == { + 0: 0, + 1: 0, + 2: 0, + 3: 0, + 4: 0, + 5: 0, + 6: 0, + 7: 0, + 8: 0, + 9: 0, + } + + def test_cubical(self): + G = nx.cubical_graph() + assert list(nx.square_clustering(G).values()) == [ + 1 / 3, + 1 / 3, + 1 / 3, + 1 / 3, + 1 / 3, + 1 / 3, + 1 / 3, + 1 / 3, + ] + assert list(nx.square_clustering(G, [1, 2]).values()) == [1 / 3, 1 / 3] + assert nx.square_clustering(G, [1])[1] == 1 / 3 + assert nx.square_clustering(G, 1) == 1 / 3 + assert nx.square_clustering(G, [1, 2]) == {1: 1 / 3, 2: 1 / 3} + + def test_k5(self): + G = nx.complete_graph(5) + assert list(nx.square_clustering(G).values()) == [1, 1, 1, 1, 1] + + def test_bipartite_k5(self): + G = nx.complete_bipartite_graph(5, 5) + assert list(nx.square_clustering(G).values()) == [1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + + def test_lind_square_clustering(self): + """Test C4 for figure 1 Lind et al (2005)""" + G = nx.Graph( + [ + (1, 2), + (1, 3), + (1, 6), + (1, 7), + (2, 4), + (2, 5), + (3, 4), + (3, 5), + (6, 7), + (7, 8), + (6, 8), + (7, 9), + (7, 10), + (6, 11), + (6, 12), + (2, 13), + (2, 14), + (3, 15), + (3, 16), + ] + ) + G1 = G.subgraph([1, 2, 3, 4, 5, 13, 14, 15, 16]) + G2 = G.subgraph([1, 6, 7, 8, 9, 10, 11, 12]) + assert nx.square_clustering(G, [1])[1] == 3 / 43 + assert nx.square_clustering(G1, [1])[1] == 2 / 6 + assert nx.square_clustering(G2, [1])[1] == 1 / 5 + + def test_peng_square_clustering(self): + """Test eq2 for figure 1 Peng et al (2008)""" + # Example graph from figure 1b + G = nx.Graph([(1, 2), (1, 3), (2, 4), (3, 4), (3, 5), (3, 6)]) + # From table 1, row 2 + expected = {1: 1 / 3, 2: 1, 3: 0.2, 4: 1 / 3, 5: 0, 6: 0} + assert nx.square_clustering(G) == expected + + def test_self_loops_square_clustering(self): + G = nx.path_graph(5) + assert nx.square_clustering(G) == {0: 0, 1: 0, 2: 0, 3: 0, 4: 0} + G.add_edges_from([(0, 0), (1, 1), (2, 2)]) + assert nx.square_clustering(G) == {0: 0, 1: 0, 2: 0, 3: 0, 4: 0} + + +class TestAverageClustering: + @classmethod + def setup_class(cls): + pytest.importorskip("numpy") + + def test_empty(self): + G = nx.Graph() + with pytest.raises(ZeroDivisionError): + nx.average_clustering(G) + + def test_average_clustering(self): + G = nx.cycle_graph(3) + G.add_edge(2, 3) + assert nx.average_clustering(G) == (1 + 1 + 1 / 3) / 4 + assert nx.average_clustering(G, count_zeros=True) == (1 + 1 + 1 / 3) / 4 + assert nx.average_clustering(G, count_zeros=False) == (1 + 1 + 1 / 3) / 3 + assert nx.average_clustering(G, [1, 2, 3]) == (1 + 1 / 3) / 3 + assert nx.average_clustering(G, [1, 2, 3], count_zeros=True) == (1 + 1 / 3) / 3 + assert nx.average_clustering(G, [1, 2, 3], count_zeros=False) == (1 + 1 / 3) / 2 + + def test_average_clustering_signed(self): + G = nx.cycle_graph(3) + G.add_edge(2, 3) + G.add_edge(0, 1, weight=-1) + assert nx.average_clustering(G, weight="weight") == (-1 - 1 - 1 / 3) / 4 + assert ( + nx.average_clustering(G, weight="weight", count_zeros=True) + == (-1 - 1 - 1 / 3) / 4 + ) + assert ( + nx.average_clustering(G, weight="weight", count_zeros=False) + == (-1 - 1 - 1 / 3) / 3 + ) + + +class TestDirectedAverageClustering: + @classmethod + def setup_class(cls): + pytest.importorskip("numpy") + + def test_empty(self): + G = nx.DiGraph() + with pytest.raises(ZeroDivisionError): + nx.average_clustering(G) + + def test_average_clustering(self): + G = nx.cycle_graph(3, create_using=nx.DiGraph()) + G.add_edge(2, 3) + assert nx.average_clustering(G) == (1 + 1 + 1 / 3) / 8 + assert nx.average_clustering(G, count_zeros=True) == (1 + 1 + 1 / 3) / 8 + assert nx.average_clustering(G, count_zeros=False) == (1 + 1 + 1 / 3) / 6 + assert nx.average_clustering(G, [1, 2, 3]) == (1 + 1 / 3) / 6 + assert nx.average_clustering(G, [1, 2, 3], count_zeros=True) == (1 + 1 / 3) / 6 + assert nx.average_clustering(G, [1, 2, 3], count_zeros=False) == (1 + 1 / 3) / 4 + + +class TestGeneralizedDegree: + def test_generalized_degree(self): + G = nx.Graph() + assert nx.generalized_degree(G) == {} + + def test_path(self): + G = nx.path_graph(5) + assert nx.generalized_degree(G, 0) == {0: 1} + assert nx.generalized_degree(G, 1) == {0: 2} + + def test_cubical(self): + G = nx.cubical_graph() + assert nx.generalized_degree(G, 0) == {0: 3} + + def test_k5(self): + G = nx.complete_graph(5) + assert nx.generalized_degree(G, 0) == {3: 4} + G.remove_edge(0, 1) + assert nx.generalized_degree(G, 0) == {2: 3} + assert nx.generalized_degree(G, [1, 2]) == {1: {2: 3}, 2: {2: 2, 3: 2}} + assert nx.generalized_degree(G) == { + 0: {2: 3}, + 1: {2: 3}, + 2: {2: 2, 3: 2}, + 3: {2: 2, 3: 2}, + 4: {2: 2, 3: 2}, + } diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_communicability.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_communicability.py new file mode 100644 index 0000000000000000000000000000000000000000..0f447094548415c089710b9b62ac4d73a27efeb5 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_communicability.py @@ -0,0 +1,80 @@ +from collections import defaultdict + +import pytest + +pytest.importorskip("numpy") +pytest.importorskip("scipy") + +import networkx as nx +from networkx.algorithms.communicability_alg import communicability, communicability_exp + + +class TestCommunicability: + def test_communicability(self): + answer = { + 0: {0: 1.5430806348152435, 1: 1.1752011936438012}, + 1: {0: 1.1752011936438012, 1: 1.5430806348152435}, + } + # answer={(0, 0): 1.5430806348152435, + # (0, 1): 1.1752011936438012, + # (1, 0): 1.1752011936438012, + # (1, 1): 1.5430806348152435} + + result = communicability(nx.path_graph(2)) + for k1, val in result.items(): + for k2 in val: + assert answer[k1][k2] == pytest.approx(result[k1][k2], abs=1e-7) + + def test_communicability2(self): + answer_orig = { + ("1", "1"): 1.6445956054135658, + ("1", "Albert"): 0.7430186221096251, + ("1", "Aric"): 0.7430186221096251, + ("1", "Dan"): 1.6208126320442937, + ("1", "Franck"): 0.42639707170035257, + ("Albert", "1"): 0.7430186221096251, + ("Albert", "Albert"): 2.4368257358712189, + ("Albert", "Aric"): 1.4368257358712191, + ("Albert", "Dan"): 2.0472097037446453, + ("Albert", "Franck"): 1.8340111678944691, + ("Aric", "1"): 0.7430186221096251, + ("Aric", "Albert"): 1.4368257358712191, + ("Aric", "Aric"): 2.4368257358712193, + ("Aric", "Dan"): 2.0472097037446457, + ("Aric", "Franck"): 1.8340111678944691, + ("Dan", "1"): 1.6208126320442937, + ("Dan", "Albert"): 2.0472097037446453, + ("Dan", "Aric"): 2.0472097037446457, + ("Dan", "Dan"): 3.1306328496328168, + ("Dan", "Franck"): 1.4860372442192515, + ("Franck", "1"): 0.42639707170035257, + ("Franck", "Albert"): 1.8340111678944691, + ("Franck", "Aric"): 1.8340111678944691, + ("Franck", "Dan"): 1.4860372442192515, + ("Franck", "Franck"): 2.3876142275231915, + } + + answer = defaultdict(dict) + for (k1, k2), v in answer_orig.items(): + answer[k1][k2] = v + + G1 = nx.Graph( + [ + ("Franck", "Aric"), + ("Aric", "Dan"), + ("Dan", "Albert"), + ("Albert", "Franck"), + ("Dan", "1"), + ("Franck", "Albert"), + ] + ) + + result = communicability(G1) + for k1, val in result.items(): + for k2 in val: + assert answer[k1][k2] == pytest.approx(result[k1][k2], abs=1e-7) + + result = communicability_exp(G1) + for k1, val in result.items(): + for k2 in val: + assert answer[k1][k2] == pytest.approx(result[k1][k2], abs=1e-7) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_core.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_core.py new file mode 100644 index 0000000000000000000000000000000000000000..7cbaf759be2ae91cd053629f73353e33bd3a5ee5 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_core.py @@ -0,0 +1,266 @@ +import pytest + +import networkx as nx +from networkx.utils import nodes_equal + + +class TestCore: + @classmethod + def setup_class(cls): + # G is the example graph in Figure 1 from Batagelj and + # Zaversnik's paper titled An O(m) Algorithm for Cores + # Decomposition of Networks, 2003, + # http://arXiv.org/abs/cs/0310049. With nodes labeled as + # shown, the 3-core is given by nodes 1-8, the 2-core by nodes + # 9-16, the 1-core by nodes 17-20 and node 21 is in the + # 0-core. + t1 = nx.convert_node_labels_to_integers(nx.tetrahedral_graph(), 1) + t2 = nx.convert_node_labels_to_integers(t1, 5) + G = nx.union(t1, t2) + G.add_edges_from( + [ + (3, 7), + (2, 11), + (11, 5), + (11, 12), + (5, 12), + (12, 19), + (12, 18), + (3, 9), + (7, 9), + (7, 10), + (9, 10), + (9, 20), + (17, 13), + (13, 14), + (14, 15), + (15, 16), + (16, 13), + ] + ) + G.add_node(21) + cls.G = G + + # Create the graph H resulting from the degree sequence + # [0, 1, 2, 2, 2, 2, 3] when using the Havel-Hakimi algorithm. + + degseq = [0, 1, 2, 2, 2, 2, 3] + H = nx.havel_hakimi_graph(degseq) + mapping = {6: 0, 0: 1, 4: 3, 5: 6, 3: 4, 1: 2, 2: 5} + cls.H = nx.relabel_nodes(H, mapping) + + def test_trivial(self): + """Empty graph""" + G = nx.Graph() + assert nx.core_number(G) == {} + + def test_core_number(self): + core = nx.core_number(self.G) + nodes_by_core = [sorted(n for n in core if core[n] == val) for val in range(4)] + assert nodes_equal(nodes_by_core[0], [21]) + assert nodes_equal(nodes_by_core[1], [17, 18, 19, 20]) + assert nodes_equal(nodes_by_core[2], [9, 10, 11, 12, 13, 14, 15, 16]) + assert nodes_equal(nodes_by_core[3], [1, 2, 3, 4, 5, 6, 7, 8]) + + def test_core_number2(self): + core = nx.core_number(self.H) + nodes_by_core = [sorted(n for n in core if core[n] == val) for val in range(3)] + assert nodes_equal(nodes_by_core[0], [0]) + assert nodes_equal(nodes_by_core[1], [1, 3]) + assert nodes_equal(nodes_by_core[2], [2, 4, 5, 6]) + + def test_core_number_multigraph(self): + G = nx.complete_graph(3) + G = nx.MultiGraph(G) + G.add_edge(1, 2) + with pytest.raises( + nx.NetworkXNotImplemented, match="not implemented for multigraph type" + ): + nx.core_number(G) + + def test_core_number_self_loop(self): + G = nx.cycle_graph(3) + G.add_edge(0, 0) + with pytest.raises( + nx.NetworkXNotImplemented, match="Input graph has self loops" + ): + nx.core_number(G) + + def test_directed_core_number(self): + """core number had a bug for directed graphs found in issue #1959""" + # small example where too timid edge removal can make cn[2] = 3 + G = nx.DiGraph() + edges = [(1, 2), (2, 1), (2, 3), (2, 4), (3, 4), (4, 3)] + G.add_edges_from(edges) + assert nx.core_number(G) == {1: 2, 2: 2, 3: 2, 4: 2} + # small example where too aggressive edge removal can make cn[2] = 2 + more_edges = [(1, 5), (3, 5), (4, 5), (3, 6), (4, 6), (5, 6)] + G.add_edges_from(more_edges) + assert nx.core_number(G) == {1: 3, 2: 3, 3: 3, 4: 3, 5: 3, 6: 3} + + def test_main_core(self): + main_core_subgraph = nx.k_core(self.H) + assert sorted(main_core_subgraph.nodes()) == [2, 4, 5, 6] + + def test_k_core(self): + # k=0 + k_core_subgraph = nx.k_core(self.H, k=0) + assert sorted(k_core_subgraph.nodes()) == sorted(self.H.nodes()) + # k=1 + k_core_subgraph = nx.k_core(self.H, k=1) + assert sorted(k_core_subgraph.nodes()) == [1, 2, 3, 4, 5, 6] + # k = 2 + k_core_subgraph = nx.k_core(self.H, k=2) + assert sorted(k_core_subgraph.nodes()) == [2, 4, 5, 6] + + def test_k_core_multigraph(self): + core_number = nx.core_number(self.H) + H = nx.MultiGraph(self.H) + with pytest.raises(nx.NetworkXNotImplemented): + nx.k_core(H, k=0, core_number=core_number) + + def test_main_crust(self): + main_crust_subgraph = nx.k_crust(self.H) + assert sorted(main_crust_subgraph.nodes()) == [0, 1, 3] + + def test_k_crust(self): + # k = 0 + k_crust_subgraph = nx.k_crust(self.H, k=2) + assert sorted(k_crust_subgraph.nodes()) == sorted(self.H.nodes()) + # k=1 + k_crust_subgraph = nx.k_crust(self.H, k=1) + assert sorted(k_crust_subgraph.nodes()) == [0, 1, 3] + # k=2 + k_crust_subgraph = nx.k_crust(self.H, k=0) + assert sorted(k_crust_subgraph.nodes()) == [0] + + def test_k_crust_multigraph(self): + core_number = nx.core_number(self.H) + H = nx.MultiGraph(self.H) + with pytest.raises(nx.NetworkXNotImplemented): + nx.k_crust(H, k=0, core_number=core_number) + + def test_main_shell(self): + main_shell_subgraph = nx.k_shell(self.H) + assert sorted(main_shell_subgraph.nodes()) == [2, 4, 5, 6] + + def test_k_shell(self): + # k=0 + k_shell_subgraph = nx.k_shell(self.H, k=2) + assert sorted(k_shell_subgraph.nodes()) == [2, 4, 5, 6] + # k=1 + k_shell_subgraph = nx.k_shell(self.H, k=1) + assert sorted(k_shell_subgraph.nodes()) == [1, 3] + # k=2 + k_shell_subgraph = nx.k_shell(self.H, k=0) + assert sorted(k_shell_subgraph.nodes()) == [0] + + def test_k_shell_multigraph(self): + core_number = nx.core_number(self.H) + H = nx.MultiGraph(self.H) + with pytest.raises(nx.NetworkXNotImplemented): + nx.k_shell(H, k=0, core_number=core_number) + + def test_k_corona(self): + # k=0 + k_corona_subgraph = nx.k_corona(self.H, k=2) + assert sorted(k_corona_subgraph.nodes()) == [2, 4, 5, 6] + # k=1 + k_corona_subgraph = nx.k_corona(self.H, k=1) + assert sorted(k_corona_subgraph.nodes()) == [1] + # k=2 + k_corona_subgraph = nx.k_corona(self.H, k=0) + assert sorted(k_corona_subgraph.nodes()) == [0] + + def test_k_corona_multigraph(self): + core_number = nx.core_number(self.H) + H = nx.MultiGraph(self.H) + with pytest.raises(nx.NetworkXNotImplemented): + nx.k_corona(H, k=0, core_number=core_number) + + def test_k_truss(self): + # k=-1 + k_truss_subgraph = nx.k_truss(self.G, -1) + assert sorted(k_truss_subgraph.nodes()) == list(range(1, 21)) + # k=0 + k_truss_subgraph = nx.k_truss(self.G, 0) + assert sorted(k_truss_subgraph.nodes()) == list(range(1, 21)) + # k=1 + k_truss_subgraph = nx.k_truss(self.G, 1) + assert sorted(k_truss_subgraph.nodes()) == list(range(1, 21)) + # k=2 + k_truss_subgraph = nx.k_truss(self.G, 2) + assert sorted(k_truss_subgraph.nodes()) == list(range(1, 21)) + # k=3 + k_truss_subgraph = nx.k_truss(self.G, 3) + assert sorted(k_truss_subgraph.nodes()) == list(range(1, 13)) + + k_truss_subgraph = nx.k_truss(self.G, 4) + assert sorted(k_truss_subgraph.nodes()) == list(range(1, 9)) + + k_truss_subgraph = nx.k_truss(self.G, 5) + assert sorted(k_truss_subgraph.nodes()) == [] + + def test_k_truss_digraph(self): + G = nx.complete_graph(3) + G = nx.DiGraph(G) + G.add_edge(2, 1) + with pytest.raises( + nx.NetworkXNotImplemented, match="not implemented for directed type" + ): + nx.k_truss(G, k=1) + + def test_k_truss_multigraph(self): + G = nx.complete_graph(3) + G = nx.MultiGraph(G) + G.add_edge(1, 2) + with pytest.raises( + nx.NetworkXNotImplemented, match="not implemented for multigraph type" + ): + nx.k_truss(G, k=1) + + def test_k_truss_self_loop(self): + G = nx.cycle_graph(3) + G.add_edge(0, 0) + with pytest.raises( + nx.NetworkXNotImplemented, match="Input graph has self loops" + ): + nx.k_truss(G, k=1) + + def test_onion_layers(self): + layers = nx.onion_layers(self.G) + nodes_by_layer = [ + sorted(n for n in layers if layers[n] == val) for val in range(1, 7) + ] + assert nodes_equal(nodes_by_layer[0], [21]) + assert nodes_equal(nodes_by_layer[1], [17, 18, 19, 20]) + assert nodes_equal(nodes_by_layer[2], [10, 12, 13, 14, 15, 16]) + assert nodes_equal(nodes_by_layer[3], [9, 11]) + assert nodes_equal(nodes_by_layer[4], [1, 2, 4, 5, 6, 8]) + assert nodes_equal(nodes_by_layer[5], [3, 7]) + + def test_onion_digraph(self): + G = nx.complete_graph(3) + G = nx.DiGraph(G) + G.add_edge(2, 1) + with pytest.raises( + nx.NetworkXNotImplemented, match="not implemented for directed type" + ): + nx.onion_layers(G) + + def test_onion_multigraph(self): + G = nx.complete_graph(3) + G = nx.MultiGraph(G) + G.add_edge(1, 2) + with pytest.raises( + nx.NetworkXNotImplemented, match="not implemented for multigraph type" + ): + nx.onion_layers(G) + + def test_onion_self_loop(self): + G = nx.cycle_graph(3) + G.add_edge(0, 0) + with pytest.raises( + nx.NetworkXNotImplemented, match="Input graph contains self loops" + ): + nx.onion_layers(G) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_covering.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_covering.py new file mode 100644 index 0000000000000000000000000000000000000000..b2f97a866b0e09c199c2edb9f40f20986caa8fbc --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_covering.py @@ -0,0 +1,85 @@ +import pytest + +import networkx as nx + + +class TestMinEdgeCover: + """Tests for :func:`networkx.algorithms.min_edge_cover`""" + + def test_empty_graph(self): + G = nx.Graph() + assert nx.min_edge_cover(G) == set() + + def test_graph_with_loop(self): + G = nx.Graph() + G.add_edge(0, 0) + assert nx.min_edge_cover(G) == {(0, 0)} + + def test_graph_with_isolated_v(self): + G = nx.Graph() + G.add_node(1) + with pytest.raises( + nx.NetworkXException, + match="Graph has a node with no edge incident on it, so no edge cover exists.", + ): + nx.min_edge_cover(G) + + def test_graph_single_edge(self): + G = nx.Graph([(0, 1)]) + assert nx.min_edge_cover(G) in ({(0, 1)}, {(1, 0)}) + + def test_graph_two_edge_path(self): + G = nx.path_graph(3) + min_cover = nx.min_edge_cover(G) + assert len(min_cover) == 2 + for u, v in G.edges: + assert (u, v) in min_cover or (v, u) in min_cover + + def test_bipartite_explicit(self): + G = nx.Graph() + G.add_nodes_from([1, 2, 3, 4], bipartite=0) + G.add_nodes_from(["a", "b", "c"], bipartite=1) + G.add_edges_from([(1, "a"), (1, "b"), (2, "b"), (2, "c"), (3, "c"), (4, "a")]) + # Use bipartite method by prescribing the algorithm + min_cover = nx.min_edge_cover( + G, nx.algorithms.bipartite.matching.eppstein_matching + ) + assert nx.is_edge_cover(G, min_cover) + assert len(min_cover) == 8 + # Use the default method which is not specialized for bipartite + min_cover2 = nx.min_edge_cover(G) + assert nx.is_edge_cover(G, min_cover2) + assert len(min_cover2) == 4 + + def test_complete_graph_even(self): + G = nx.complete_graph(10) + min_cover = nx.min_edge_cover(G) + assert nx.is_edge_cover(G, min_cover) + assert len(min_cover) == 5 + + def test_complete_graph_odd(self): + G = nx.complete_graph(11) + min_cover = nx.min_edge_cover(G) + assert nx.is_edge_cover(G, min_cover) + assert len(min_cover) == 6 + + +class TestIsEdgeCover: + """Tests for :func:`networkx.algorithms.is_edge_cover`""" + + def test_empty_graph(self): + G = nx.Graph() + assert nx.is_edge_cover(G, set()) + + def test_graph_with_loop(self): + G = nx.Graph() + G.add_edge(1, 1) + assert nx.is_edge_cover(G, {(1, 1)}) + + def test_graph_single_edge(self): + G = nx.Graph() + G.add_edge(0, 1) + assert nx.is_edge_cover(G, {(0, 0), (1, 1)}) + assert nx.is_edge_cover(G, {(0, 1), (1, 0)}) + assert nx.is_edge_cover(G, {(0, 1)}) + assert not nx.is_edge_cover(G, {(0, 0)}) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_cuts.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_cuts.py new file mode 100644 index 0000000000000000000000000000000000000000..923efa502acc623650f36ff41e72884e5e508bc9 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_cuts.py @@ -0,0 +1,171 @@ +"""Unit tests for the :mod:`networkx.algorithms.cuts` module.""" + +import networkx as nx + + +class TestCutSize: + """Unit tests for the :func:`~networkx.cut_size` function.""" + + def test_symmetric(self): + """Tests that the cut size is symmetric.""" + G = nx.barbell_graph(3, 0) + S = {0, 1, 4} + T = {2, 3, 5} + assert nx.cut_size(G, S, T) == 4 + assert nx.cut_size(G, T, S) == 4 + + def test_single_edge(self): + """Tests for a cut of a single edge.""" + G = nx.barbell_graph(3, 0) + S = {0, 1, 2} + T = {3, 4, 5} + assert nx.cut_size(G, S, T) == 1 + assert nx.cut_size(G, T, S) == 1 + + def test_directed(self): + """Tests that each directed edge is counted once in the cut.""" + G = nx.barbell_graph(3, 0).to_directed() + S = {0, 1, 2} + T = {3, 4, 5} + assert nx.cut_size(G, S, T) == 2 + assert nx.cut_size(G, T, S) == 2 + + def test_directed_symmetric(self): + """Tests that a cut in a directed graph is symmetric.""" + G = nx.barbell_graph(3, 0).to_directed() + S = {0, 1, 4} + T = {2, 3, 5} + assert nx.cut_size(G, S, T) == 8 + assert nx.cut_size(G, T, S) == 8 + + def test_multigraph(self): + """Tests that parallel edges are each counted for a cut.""" + G = nx.MultiGraph(["ab", "ab"]) + assert nx.cut_size(G, {"a"}, {"b"}) == 2 + + +class TestVolume: + """Unit tests for the :func:`~networkx.volume` function.""" + + def test_graph(self): + G = nx.cycle_graph(4) + assert nx.volume(G, {0, 1}) == 4 + + def test_digraph(self): + G = nx.DiGraph([(0, 1), (1, 2), (2, 3), (3, 0)]) + assert nx.volume(G, {0, 1}) == 2 + + def test_multigraph(self): + edges = list(nx.cycle_graph(4).edges()) + G = nx.MultiGraph(edges * 2) + assert nx.volume(G, {0, 1}) == 8 + + def test_multidigraph(self): + edges = [(0, 1), (1, 2), (2, 3), (3, 0)] + G = nx.MultiDiGraph(edges * 2) + assert nx.volume(G, {0, 1}) == 4 + + def test_barbell(self): + G = nx.barbell_graph(3, 0) + assert nx.volume(G, {0, 1, 2}) == 7 + assert nx.volume(G, {3, 4, 5}) == 7 + + +class TestNormalizedCutSize: + """Unit tests for the :func:`~networkx.normalized_cut_size` function.""" + + def test_graph(self): + G = nx.path_graph(4) + S = {1, 2} + T = set(G) - S + size = nx.normalized_cut_size(G, S, T) + # The cut looks like this: o-{-o--o-}-o + expected = 2 * ((1 / 4) + (1 / 2)) + assert expected == size + # Test with no input T + assert expected == nx.normalized_cut_size(G, S) + + def test_directed(self): + G = nx.DiGraph([(0, 1), (1, 2), (2, 3)]) + S = {1, 2} + T = set(G) - S + size = nx.normalized_cut_size(G, S, T) + # The cut looks like this: o-{->o-->o-}->o + expected = 2 * ((1 / 2) + (1 / 1)) + assert expected == size + # Test with no input T + assert expected == nx.normalized_cut_size(G, S) + + +class TestConductance: + """Unit tests for the :func:`~networkx.conductance` function.""" + + def test_graph(self): + G = nx.barbell_graph(5, 0) + # Consider the singleton sets containing the "bridge" nodes. + # There is only one cut edge, and each set has volume five. + S = {4} + T = {5} + conductance = nx.conductance(G, S, T) + expected = 1 / 5 + assert expected == conductance + # Test with no input T + G2 = nx.barbell_graph(3, 0) + # There is only one cut edge, and each set has volume seven. + S2 = {0, 1, 2} + assert nx.conductance(G2, S2) == 1 / 7 + + +class TestEdgeExpansion: + """Unit tests for the :func:`~networkx.edge_expansion` function.""" + + def test_graph(self): + G = nx.barbell_graph(5, 0) + S = set(range(5)) + T = set(G) - S + expansion = nx.edge_expansion(G, S, T) + expected = 1 / 5 + assert expected == expansion + # Test with no input T + assert expected == nx.edge_expansion(G, S) + + +class TestNodeExpansion: + """Unit tests for the :func:`~networkx.node_expansion` function.""" + + def test_graph(self): + G = nx.path_graph(8) + S = {3, 4, 5} + expansion = nx.node_expansion(G, S) + # The neighborhood of S has cardinality five, and S has + # cardinality three. + expected = 5 / 3 + assert expected == expansion + + +class TestBoundaryExpansion: + """Unit tests for the :func:`~networkx.boundary_expansion` function.""" + + def test_graph(self): + G = nx.complete_graph(10) + S = set(range(4)) + expansion = nx.boundary_expansion(G, S) + # The node boundary of S has cardinality six, and S has + # cardinality three. + expected = 6 / 4 + assert expected == expansion + + +class TestMixingExpansion: + """Unit tests for the :func:`~networkx.mixing_expansion` function.""" + + def test_graph(self): + G = nx.barbell_graph(5, 0) + S = set(range(5)) + T = set(G) - S + expansion = nx.mixing_expansion(G, S, T) + # There is one cut edge, and the total number of edges in the + # graph is twice the total number of edges in a clique of size + # five, plus one more for the bridge. + expected = 1 / (2 * (5 * 4 + 1)) + assert expected == expansion diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_cycles.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_cycles.py new file mode 100644 index 0000000000000000000000000000000000000000..1b43929aae00be120f7fb2cd2780cd7d4ad20b03 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_cycles.py @@ -0,0 +1,984 @@ +import random +from itertools import chain, islice, tee +from math import inf + +import pytest + +import networkx as nx +from networkx.algorithms.traversal.edgedfs import FORWARD, REVERSE + + +def check_independent(basis): + if len(basis) == 0: + return + + np = pytest.importorskip("numpy") + sp = pytest.importorskip("scipy") # Required by incidence_matrix + + H = nx.Graph() + for b in basis: + nx.add_cycle(H, b) + inc = nx.incidence_matrix(H, oriented=True) + rank = np.linalg.matrix_rank(inc.toarray(), tol=None, hermitian=False) + assert inc.shape[1] - rank == len(basis) + + +class TestCycles: + @classmethod + def setup_class(cls): + G = nx.Graph() + nx.add_cycle(G, [0, 1, 2, 3]) + nx.add_cycle(G, [0, 3, 4, 5]) + nx.add_cycle(G, [0, 1, 6, 7, 8]) + G.add_edge(8, 9) + cls.G = G + + def is_cyclic_permutation(self, a, b): + n = len(a) + if len(b) != n: + return False + l = a + a + return any(l[i : i + n] == b for i in range(n)) + + def test_cycle_basis(self): + G = self.G + cy = nx.cycle_basis(G, 0) + sort_cy = sorted(sorted(c) for c in cy) + assert sort_cy == [[0, 1, 2, 3], [0, 1, 6, 7, 8], [0, 3, 4, 5]] + cy = nx.cycle_basis(G, 1) + sort_cy = sorted(sorted(c) for c in cy) + assert sort_cy == [[0, 1, 2, 3], [0, 1, 6, 7, 8], [0, 3, 4, 5]] + cy = nx.cycle_basis(G, 9) + sort_cy = sorted(sorted(c) for c in cy) + assert sort_cy == [[0, 1, 2, 3], [0, 1, 6, 7, 8], [0, 3, 4, 5]] + # test disconnected graphs + nx.add_cycle(G, "ABC") + cy = nx.cycle_basis(G, 9) + sort_cy = sorted(sorted(c) for c in cy[:-1]) + [sorted(cy[-1])] + assert sort_cy == [[0, 1, 2, 3], [0, 1, 6, 7, 8], [0, 3, 4, 5], ["A", "B", "C"]] + + def test_cycle_basis2(self): + with pytest.raises(nx.NetworkXNotImplemented): + G = nx.DiGraph() + cy = nx.cycle_basis(G, 0) + + def test_cycle_basis3(self): + with pytest.raises(nx.NetworkXNotImplemented): + G = nx.MultiGraph() + cy = nx.cycle_basis(G, 0) + + def test_cycle_basis_ordered(self): + # see gh-6654 replace sets with (ordered) dicts + G = nx.cycle_graph(5) + G.update(nx.cycle_graph(range(3, 8))) + cbG = nx.cycle_basis(G) + + perm = {1: 0, 0: 1} # switch 0 and 1 + H = nx.relabel_nodes(G, perm) + cbH = [[perm.get(n, n) for n in cyc] for cyc in nx.cycle_basis(H)] + assert cbG == cbH + + def test_cycle_basis_self_loop(self): + """Tests the function for graphs with self loops""" + G = nx.Graph() + nx.add_cycle(G, [0, 1, 2, 3]) + nx.add_cycle(G, [0, 0, 6, 2]) + cy = nx.cycle_basis(G) + sort_cy = sorted(sorted(c) for c in cy) + assert sort_cy == [[0], [0, 1, 2], [0, 2, 3], [0, 2, 6]] + + def test_simple_cycles(self): + edges = [(0, 0), (0, 1), (0, 2), (1, 2), (2, 0), (2, 1), (2, 2)] + G = nx.DiGraph(edges) + cc = sorted(nx.simple_cycles(G)) + ca = [[0], [0, 1, 2], [0, 2], [1, 2], [2]] + assert len(cc) == len(ca) + for c in cc: + assert any(self.is_cyclic_permutation(c, rc) for rc in ca) + + def test_simple_cycles_singleton(self): + G = nx.Graph([(0, 0)]) # self-loop + assert list(nx.simple_cycles(G)) == [[0]] + + def test_unsortable(self): + # this test ensures that graphs whose nodes without an intrinsic + # ordering do not cause issues + G = nx.DiGraph() + nx.add_cycle(G, ["a", 1]) + c = list(nx.simple_cycles(G)) + assert len(c) == 1 + + def test_simple_cycles_small(self): + G = nx.DiGraph() + nx.add_cycle(G, [1, 2, 3]) + c = sorted(nx.simple_cycles(G)) + assert len(c) == 1 + assert self.is_cyclic_permutation(c[0], [1, 2, 3]) + nx.add_cycle(G, [10, 20, 30]) + cc = sorted(nx.simple_cycles(G)) + assert len(cc) == 2 + ca = [[1, 2, 3], [10, 20, 30]] + for c in cc: + assert any(self.is_cyclic_permutation(c, rc) for rc in ca) + + def test_simple_cycles_empty(self): + G = nx.DiGraph() + assert list(nx.simple_cycles(G)) == [] + + def worst_case_graph(self, k): + # see figure 1 in Johnson's paper + # this graph has exactly 3k simple cycles + G = nx.DiGraph() + for n in range(2, k + 2): + G.add_edge(1, n) + G.add_edge(n, k + 2) + G.add_edge(2 * k + 1, 1) + for n in range(k + 2, 2 * k + 2): + G.add_edge(n, 2 * k + 2) + G.add_edge(n, n + 1) + G.add_edge(2 * k + 3, k + 2) + for n in range(2 * k + 3, 3 * k + 3): + G.add_edge(2 * k + 2, n) + G.add_edge(n, 3 * k + 3) + G.add_edge(3 * k + 3, 2 * k + 2) + return G + + def test_worst_case_graph(self): + # see figure 1 in Johnson's paper + for k in range(3, 10): + G = self.worst_case_graph(k) + l = len(list(nx.simple_cycles(G))) + assert l == 3 * k + + def test_recursive_simple_and_not(self): + for k in range(2, 10): + G = self.worst_case_graph(k) + cc = sorted(nx.simple_cycles(G)) + rcc = sorted(nx.recursive_simple_cycles(G)) + assert len(cc) == len(rcc) + for c in cc: + assert any(self.is_cyclic_permutation(c, r) for r in rcc) + for rc in rcc: + assert any(self.is_cyclic_permutation(rc, c) for c in cc) + + def test_simple_graph_with_reported_bug(self): + G = nx.DiGraph() + edges = [ + (0, 2), + (0, 3), + (1, 0), + (1, 3), + (2, 1), + (2, 4), + (3, 2), + (3, 4), + (4, 0), + (4, 1), + (4, 5), + (5, 0), + (5, 1), + (5, 2), + (5, 3), + ] + G.add_edges_from(edges) + cc = sorted(nx.simple_cycles(G)) + assert len(cc) == 26 + rcc = sorted(nx.recursive_simple_cycles(G)) + assert len(cc) == len(rcc) + for c in cc: + assert any(self.is_cyclic_permutation(c, rc) for rc in rcc) + for rc in rcc: + assert any(self.is_cyclic_permutation(rc, c) for c in cc) + + +def pairwise(iterable): + a, b = tee(iterable) + next(b, None) + return zip(a, b) + + +def cycle_edges(c): + return pairwise(chain(c, islice(c, 1))) + + +def directed_cycle_edgeset(c): + return frozenset(cycle_edges(c)) + + +def undirected_cycle_edgeset(c): + if len(c) == 1: + return frozenset(cycle_edges(c)) + return frozenset(map(frozenset, cycle_edges(c))) + + +def multigraph_cycle_edgeset(c): + if len(c) <= 2: + return frozenset(cycle_edges(c)) + else: + return frozenset(map(frozenset, cycle_edges(c))) + + +class TestCycleEnumeration: + @staticmethod + def K(n): + return nx.complete_graph(n) + + @staticmethod + def D(n): + return nx.complete_graph(n).to_directed() + + @staticmethod + def edgeset_function(g): + if g.is_directed(): + return directed_cycle_edgeset + elif g.is_multigraph(): + return multigraph_cycle_edgeset + else: + return undirected_cycle_edgeset + + def check_cycle(self, g, c, es, cache, source, original_c, length_bound, chordless): + if length_bound is not None and len(c) > length_bound: + raise RuntimeError( + f"computed cycle {original_c} exceeds length bound {length_bound}" + ) + if source == "computed": + if es in cache: + raise RuntimeError( + f"computed cycle {original_c} has already been found!" + ) + else: + cache[es] = tuple(original_c) + else: + if es in cache: + cache.pop(es) + else: + raise RuntimeError(f"expected cycle {original_c} was not computed") + + if not all(g.has_edge(*e) for e in es): + raise RuntimeError( + f"{source} claimed cycle {original_c} is not a cycle of g" + ) + if chordless and len(g.subgraph(c).edges) > len(c): + raise RuntimeError(f"{source} cycle {original_c} is not chordless") + + def check_cycle_algorithm( + self, + g, + expected_cycles, + length_bound=None, + chordless=False, + algorithm=None, + ): + if algorithm is None: + algorithm = nx.chordless_cycles if chordless else nx.simple_cycles + + # note: we shuffle the labels of g to rule out accidentally-correct + # behavior which occurred during the development of chordless cycle + # enumeration algorithms + + relabel = list(range(len(g))) + rng = random.Random(42) + rng.shuffle(relabel) + label = dict(zip(g, relabel)) + unlabel = dict(zip(relabel, g)) + h = nx.relabel_nodes(g, label, copy=True) + + edgeset = self.edgeset_function(h) + + params = {} + if length_bound is not None: + params["length_bound"] = length_bound + + cycle_cache = {} + for c in algorithm(h, **params): + original_c = [unlabel[x] for x in c] + es = edgeset(c) + self.check_cycle( + h, c, es, cycle_cache, "computed", original_c, length_bound, chordless + ) + + if isinstance(expected_cycles, int): + if len(cycle_cache) != expected_cycles: + raise RuntimeError( + f"expected {expected_cycles} cycles, got {len(cycle_cache)}" + ) + return + for original_c in expected_cycles: + c = [label[x] for x in original_c] + es = edgeset(c) + self.check_cycle( + h, c, es, cycle_cache, "expected", original_c, length_bound, chordless + ) + + if len(cycle_cache): + for c in cycle_cache.values(): + raise RuntimeError( + f"computed cycle {c} is valid but not in the expected cycle set!" + ) + + def check_cycle_enumeration_integer_sequence( + self, + g_family, + cycle_counts, + length_bound=None, + chordless=False, + algorithm=None, + ): + for g, num_cycles in zip(g_family, cycle_counts): + self.check_cycle_algorithm( + g, + num_cycles, + length_bound=length_bound, + chordless=chordless, + algorithm=algorithm, + ) + + def test_directed_chordless_cycle_digons(self): + g = nx.DiGraph() + nx.add_cycle(g, range(5)) + nx.add_cycle(g, range(5)[::-1]) + g.add_edge(0, 0) + expected_cycles = [(0,), (1, 2), (2, 3), (3, 4)] + self.check_cycle_algorithm(g, expected_cycles, chordless=True) + + self.check_cycle_algorithm(g, expected_cycles, chordless=True, length_bound=2) + + expected_cycles = [c for c in expected_cycles if len(c) < 2] + self.check_cycle_algorithm(g, expected_cycles, chordless=True, length_bound=1) + + def test_chordless_cycles_multigraph_self_loops(self): + G = nx.MultiGraph([(1, 1), (2, 2), (1, 2), (1, 2)]) + expected_cycles = [[1], [2]] + self.check_cycle_algorithm(G, expected_cycles, chordless=True) + + G.add_edges_from([(2, 3), (3, 4), (3, 4), (1, 3)]) + expected_cycles = [[1], [2], [3, 4]] + self.check_cycle_algorithm(G, expected_cycles, chordless=True) + + def test_directed_chordless_cycle_undirected(self): + g = nx.DiGraph([(1, 2), (2, 3), (3, 4), (4, 5), (5, 0), (5, 1), (0, 2)]) + expected_cycles = [(0, 2, 3, 4, 5), (1, 2, 3, 4, 5)] + self.check_cycle_algorithm(g, expected_cycles, chordless=True) + + g = nx.DiGraph() + nx.add_cycle(g, range(5)) + nx.add_cycle(g, range(4, 9)) + g.add_edge(7, 3) + expected_cycles = [(0, 1, 2, 3, 4), (3, 4, 5, 6, 7), (4, 5, 6, 7, 8)] + self.check_cycle_algorithm(g, expected_cycles, chordless=True) + + g.add_edge(3, 7) + expected_cycles = [(0, 1, 2, 3, 4), (3, 7), (4, 5, 6, 7, 8)] + self.check_cycle_algorithm(g, expected_cycles, chordless=True) + + expected_cycles = [(3, 7)] + self.check_cycle_algorithm(g, expected_cycles, chordless=True, length_bound=4) + + g.remove_edge(7, 3) + expected_cycles = [(0, 1, 2, 3, 4), (4, 5, 6, 7, 8)] + self.check_cycle_algorithm(g, expected_cycles, chordless=True) + + g = nx.DiGraph((i, j) for i in range(10) for j in range(i)) + expected_cycles = [] + self.check_cycle_algorithm(g, expected_cycles, chordless=True) + + def test_chordless_cycles_directed(self): + G = nx.DiGraph() + nx.add_cycle(G, range(5)) + nx.add_cycle(G, range(4, 12)) + expected = [[*range(5)], [*range(4, 12)]] + self.check_cycle_algorithm(G, expected, chordless=True) + self.check_cycle_algorithm( + G, [c for c in expected if len(c) <= 5], length_bound=5, chordless=True + ) + + G.add_edge(7, 3) + expected.append([*range(3, 8)]) + self.check_cycle_algorithm(G, expected, chordless=True) + self.check_cycle_algorithm( + G, [c for c in expected if len(c) <= 5], length_bound=5, chordless=True + ) + + G.add_edge(3, 7) + expected[-1] = [7, 3] + self.check_cycle_algorithm(G, expected, chordless=True) + self.check_cycle_algorithm( + G, [c for c in expected if len(c) <= 5], length_bound=5, chordless=True + ) + + expected.pop() + G.remove_edge(7, 3) + self.check_cycle_algorithm(G, expected, chordless=True) + self.check_cycle_algorithm( + G, [c for c in expected if len(c) <= 5], length_bound=5, chordless=True + ) + + def test_directed_chordless_cycle_diclique(self): + g_family = [self.D(n) for n in range(10)] + expected_cycles = [(n * n - n) // 2 for n in range(10)] + self.check_cycle_enumeration_integer_sequence( + g_family, expected_cycles, chordless=True + ) + + expected_cycles = [(n * n - n) // 2 for n in range(10)] + self.check_cycle_enumeration_integer_sequence( + g_family, expected_cycles, length_bound=2 + ) + + def test_directed_chordless_loop_blockade(self): + g = nx.DiGraph((i, i) for i in range(10)) + nx.add_cycle(g, range(10)) + expected_cycles = [(i,) for i in range(10)] + self.check_cycle_algorithm(g, expected_cycles, chordless=True) + + self.check_cycle_algorithm(g, expected_cycles, length_bound=1) + + g = nx.MultiDiGraph(g) + g.add_edges_from((i, i) for i in range(0, 10, 2)) + expected_cycles = [(i,) for i in range(1, 10, 2)] + self.check_cycle_algorithm(g, expected_cycles, chordless=True) + + def test_simple_cycles_notable_clique_sequences(self): + # A000292: Number of labeled graphs on n+3 nodes that are triangles. + g_family = [self.K(n) for n in range(2, 12)] + expected = [0, 1, 4, 10, 20, 35, 56, 84, 120, 165, 220] + self.check_cycle_enumeration_integer_sequence( + g_family, expected, length_bound=3 + ) + + def triangles(g, **kwargs): + yield from (c for c in nx.simple_cycles(g, **kwargs) if len(c) == 3) + + # directed complete graphs have twice as many triangles thanks to reversal + g_family = [self.D(n) for n in range(2, 12)] + expected = [2 * e for e in expected] + self.check_cycle_enumeration_integer_sequence( + g_family, expected, length_bound=3, algorithm=triangles + ) + + def four_cycles(g, **kwargs): + yield from (c for c in nx.simple_cycles(g, **kwargs) if len(c) == 4) + + # A050534: the number of 4-cycles in the complete graph K_{n+1} + expected = [0, 0, 0, 3, 15, 45, 105, 210, 378, 630, 990] + g_family = [self.K(n) for n in range(1, 12)] + self.check_cycle_enumeration_integer_sequence( + g_family, expected, length_bound=4, algorithm=four_cycles + ) + + # directed complete graphs have twice as many 4-cycles thanks to reversal + expected = [2 * e for e in expected] + g_family = [self.D(n) for n in range(1, 15)] + self.check_cycle_enumeration_integer_sequence( + g_family, expected, length_bound=4, algorithm=four_cycles + ) + + # A006231: the number of elementary circuits in a complete directed graph with n nodes + expected = [0, 1, 5, 20, 84, 409, 2365] + g_family = [self.D(n) for n in range(1, 8)] + self.check_cycle_enumeration_integer_sequence(g_family, expected) + + # A002807: Number of cycles in the complete graph on n nodes K_{n}. + expected = [0, 0, 0, 1, 7, 37, 197, 1172] + g_family = [self.K(n) for n in range(8)] + self.check_cycle_enumeration_integer_sequence(g_family, expected) + + def test_directed_chordless_cycle_parallel_multiedges(self): + g = nx.MultiGraph() + + nx.add_cycle(g, range(5)) + expected = [[*range(5)]] + self.check_cycle_algorithm(g, expected, chordless=True) + + nx.add_cycle(g, range(5)) + expected = [*cycle_edges(range(5))] + self.check_cycle_algorithm(g, expected, chordless=True) + + nx.add_cycle(g, range(5)) + expected = [] + self.check_cycle_algorithm(g, expected, chordless=True) + + g = nx.MultiDiGraph() + + nx.add_cycle(g, range(5)) + expected = [[*range(5)]] + self.check_cycle_algorithm(g, expected, chordless=True) + + nx.add_cycle(g, range(5)) + self.check_cycle_algorithm(g, [], chordless=True) + + nx.add_cycle(g, range(5)) + self.check_cycle_algorithm(g, [], chordless=True) + + g = nx.MultiDiGraph() + + nx.add_cycle(g, range(5)) + nx.add_cycle(g, range(5)[::-1]) + expected = [*cycle_edges(range(5))] + self.check_cycle_algorithm(g, expected, chordless=True) + + nx.add_cycle(g, range(5)) + self.check_cycle_algorithm(g, [], chordless=True) + + def test_chordless_cycles_graph(self): + G = nx.Graph() + nx.add_cycle(G, range(5)) + nx.add_cycle(G, range(4, 12)) + expected = [[*range(5)], [*range(4, 12)]] + self.check_cycle_algorithm(G, expected, chordless=True) + self.check_cycle_algorithm( + G, [c for c in expected if len(c) <= 5], length_bound=5, chordless=True + ) + + G.add_edge(7, 3) + expected.append([*range(3, 8)]) + expected.append([4, 3, 7, 8, 9, 10, 11]) + self.check_cycle_algorithm(G, expected, chordless=True) + self.check_cycle_algorithm( + G, [c for c in expected if len(c) <= 5], length_bound=5, chordless=True + ) + + def test_chordless_cycles_giant_hamiltonian(self): + # ... o - e - o - e - o ... # o = odd, e = even + # ... ---/ \-----/ \--- ... # <-- "long" edges + # + # each long edge belongs to exactly one triangle, and one giant cycle + # of length n/2. The remaining edges each belong to a triangle + + n = 1000 + assert n % 2 == 0 + G = nx.Graph() + for v in range(n): + if not v % 2: + G.add_edge(v, (v + 2) % n) + G.add_edge(v, (v + 1) % n) + + expected = [[*range(0, n, 2)]] + [ + [x % n for x in range(i, i + 3)] for i in range(0, n, 2) + ] + self.check_cycle_algorithm(G, expected, chordless=True) + self.check_cycle_algorithm( + G, [c for c in expected if len(c) <= 3], length_bound=3, chordless=True + ) + + # ... o -> e -> o -> e -> o ... # o = odd, e = even + # ... <---/ \---<---/ \---< ... # <-- "long" edges + # + # this time, we orient the short and long edges in opposition + # the cycle structure of this graph is the same, but we need to reverse + # the long one in our representation. Also, we need to drop the size + # because our partitioning algorithm uses strongly connected components + # instead of separating graphs by their strong articulation points + + n = 100 + assert n % 2 == 0 + G = nx.DiGraph() + for v in range(n): + G.add_edge(v, (v + 1) % n) + if not v % 2: + G.add_edge((v + 2) % n, v) + + expected = [[*range(n - 2, -2, -2)]] + [ + [x % n for x in range(i, i + 3)] for i in range(0, n, 2) + ] + self.check_cycle_algorithm(G, expected, chordless=True) + self.check_cycle_algorithm( + G, [c for c in expected if len(c) <= 3], length_bound=3, chordless=True + ) + + def test_simple_cycles_acyclic_tournament(self): + n = 10 + G = nx.DiGraph((x, y) for x in range(n) for y in range(x)) + self.check_cycle_algorithm(G, []) + self.check_cycle_algorithm(G, [], chordless=True) + + for k in range(n + 1): + self.check_cycle_algorithm(G, [], length_bound=k) + self.check_cycle_algorithm(G, [], length_bound=k, chordless=True) + + def test_simple_cycles_graph(self): + testG = nx.cycle_graph(8) + cyc1 = tuple(range(8)) + self.check_cycle_algorithm(testG, [cyc1]) + + testG.add_edge(4, -1) + nx.add_path(testG, [3, -2, -3, -4]) + self.check_cycle_algorithm(testG, [cyc1]) + + testG.update(nx.cycle_graph(range(8, 16))) + cyc2 = tuple(range(8, 16)) + self.check_cycle_algorithm(testG, [cyc1, cyc2]) + + testG.update(nx.cycle_graph(range(4, 12))) + cyc3 = tuple(range(4, 12)) + expected = { + (0, 1, 2, 3, 4, 5, 6, 7), # cyc1 + (8, 9, 10, 11, 12, 13, 14, 15), # cyc2 + (4, 5, 6, 7, 8, 9, 10, 11), # cyc3 + (4, 5, 6, 7, 8, 15, 14, 13, 12, 11), # cyc2 + cyc3 + (0, 1, 2, 3, 4, 11, 10, 9, 8, 7), # cyc1 + cyc3 + (0, 1, 2, 3, 4, 11, 12, 13, 14, 15, 8, 7), # cyc1 + cyc2 + cyc3 + } + self.check_cycle_algorithm(testG, expected) + assert len(expected) == (2**3 - 1) - 1 # 1 disjoint comb: cyc1 + cyc2 + + # Basis size = 5 (2 loops overlapping gives 5 small loops + # E + # / \ Note: A-F = 10-15 + # 1-2-3-4-5 + # / | | \ cyc1=012DAB -- left + # 0 D F 6 cyc2=234E -- top + # \ | | / cyc3=45678F -- right + # B-A-9-8-7 cyc4=89AC -- bottom + # \ / cyc5=234F89AD -- middle + # C + # + # combinations of 5 basis elements: 2^5 - 1 (one includes no cycles) + # + # disjoint combs: (11 total) not simple cycles + # Any pair not including cyc5 => choose(4, 2) = 6 + # Any triple not including cyc5 => choose(4, 3) = 4 + # Any quad not including cyc5 => choose(4, 4) = 1 + # + # we expect 31 - 11 = 20 simple cycles + # + testG = nx.cycle_graph(12) + testG.update(nx.cycle_graph([12, 10, 13, 2, 14, 4, 15, 8]).edges) + expected = (2**5 - 1) - 11 # 11 disjoint combinations + self.check_cycle_algorithm(testG, expected) + + def test_simple_cycles_bounded(self): + # iteratively construct a cluster of nested cycles running in the same direction + # there should be one cycle of every length + d = nx.DiGraph() + expected = [] + for n in range(10): + nx.add_cycle(d, range(n)) + expected.append(n) + for k, e in enumerate(expected): + self.check_cycle_algorithm(d, e, length_bound=k) + + # iteratively construct a path of undirected cycles, connected at articulation + # points. there should be one cycle of every length except 2: no digons + g = nx.Graph() + top = 0 + expected = [] + for n in range(10): + expected.append(n if n < 2 else n - 1) + if n == 2: + # no digons in undirected graphs + continue + nx.add_cycle(g, range(top, top + n)) + top += n + for k, e in enumerate(expected): + self.check_cycle_algorithm(g, e, length_bound=k) + + def test_simple_cycles_bound_corner_cases(self): + G = nx.cycle_graph(4) + DG = nx.cycle_graph(4, create_using=nx.DiGraph) + assert list(nx.simple_cycles(G, length_bound=0)) == [] + assert list(nx.simple_cycles(DG, length_bound=0)) == [] + assert list(nx.chordless_cycles(G, length_bound=0)) == [] + assert list(nx.chordless_cycles(DG, length_bound=0)) == [] + + def test_simple_cycles_bound_error(self): + with pytest.raises(ValueError): + G = nx.DiGraph() + for c in nx.simple_cycles(G, -1): + assert False + + with pytest.raises(ValueError): + G = nx.Graph() + for c in nx.simple_cycles(G, -1): + assert False + + with pytest.raises(ValueError): + G = nx.Graph() + for c in nx.chordless_cycles(G, -1): + assert False + + with pytest.raises(ValueError): + G = nx.DiGraph() + for c in nx.chordless_cycles(G, -1): + assert False + + def test_chordless_cycles_clique(self): + g_family = [self.K(n) for n in range(2, 15)] + expected = [0, 1, 4, 10, 20, 35, 56, 84, 120, 165, 220, 286, 364] + self.check_cycle_enumeration_integer_sequence( + g_family, expected, chordless=True + ) + + # directed cliques have as many digons as undirected graphs have edges + expected = [(n * n - n) // 2 for n in range(15)] + g_family = [self.D(n) for n in range(15)] + self.check_cycle_enumeration_integer_sequence( + g_family, expected, chordless=True + ) + + +# These tests might fail with hash randomization since they depend on +# edge_dfs. For more information, see the comments in: +# networkx/algorithms/traversal/tests/test_edgedfs.py + + +class TestFindCycle: + @classmethod + def setup_class(cls): + cls.nodes = [0, 1, 2, 3] + cls.edges = [(-1, 0), (0, 1), (1, 0), (1, 0), (2, 1), (3, 1)] + + def test_graph_nocycle(self): + G = nx.Graph(self.edges) + pytest.raises(nx.exception.NetworkXNoCycle, nx.find_cycle, G, self.nodes) + + def test_graph_cycle(self): + G = nx.Graph(self.edges) + G.add_edge(2, 0) + x = list(nx.find_cycle(G, self.nodes)) + x_ = [(0, 1), (1, 2), (2, 0)] + assert x == x_ + + def test_graph_orientation_none(self): + G = nx.Graph(self.edges) + G.add_edge(2, 0) + x = list(nx.find_cycle(G, self.nodes, orientation=None)) + x_ = [(0, 1), (1, 2), (2, 0)] + assert x == x_ + + def test_graph_orientation_original(self): + G = nx.Graph(self.edges) + G.add_edge(2, 0) + x = list(nx.find_cycle(G, self.nodes, orientation="original")) + x_ = [(0, 1, FORWARD), (1, 2, FORWARD), (2, 0, FORWARD)] + assert x == x_ + + def test_digraph(self): + G = nx.DiGraph(self.edges) + x = list(nx.find_cycle(G, self.nodes)) + x_ = [(0, 1), (1, 0)] + assert x == x_ + + def test_digraph_orientation_none(self): + G = nx.DiGraph(self.edges) + x = list(nx.find_cycle(G, self.nodes, orientation=None)) + x_ = [(0, 1), (1, 0)] + assert x == x_ + + def test_digraph_orientation_original(self): + G = nx.DiGraph(self.edges) + x = list(nx.find_cycle(G, self.nodes, orientation="original")) + x_ = [(0, 1, FORWARD), (1, 0, FORWARD)] + assert x == x_ + + def test_multigraph(self): + G = nx.MultiGraph(self.edges) + x = list(nx.find_cycle(G, self.nodes)) + x_ = [(0, 1, 0), (1, 0, 1)] # or (1, 0, 2) + # Hash randomization...could be any edge. + assert x[0] == x_[0] + assert x[1][:2] == x_[1][:2] + + def test_multidigraph(self): + G = nx.MultiDiGraph(self.edges) + x = list(nx.find_cycle(G, self.nodes)) + x_ = [(0, 1, 0), (1, 0, 0)] # (1, 0, 1) + assert x[0] == x_[0] + assert x[1][:2] == x_[1][:2] + + def test_digraph_ignore(self): + G = nx.DiGraph(self.edges) + x = list(nx.find_cycle(G, self.nodes, orientation="ignore")) + x_ = [(0, 1, FORWARD), (1, 0, FORWARD)] + assert x == x_ + + def test_digraph_reverse(self): + G = nx.DiGraph(self.edges) + x = list(nx.find_cycle(G, self.nodes, orientation="reverse")) + x_ = [(1, 0, REVERSE), (0, 1, REVERSE)] + assert x == x_ + + def test_multidigraph_ignore(self): + G = nx.MultiDiGraph(self.edges) + x = list(nx.find_cycle(G, self.nodes, orientation="ignore")) + x_ = [(0, 1, 0, FORWARD), (1, 0, 0, FORWARD)] # or (1, 0, 1, 1) + assert x[0] == x_[0] + assert x[1][:2] == x_[1][:2] + assert x[1][3] == x_[1][3] + + def test_multidigraph_ignore2(self): + # Loop traversed an edge while ignoring its orientation. + G = nx.MultiDiGraph([(0, 1), (1, 2), (1, 2)]) + x = list(nx.find_cycle(G, [0, 1, 2], orientation="ignore")) + x_ = [(1, 2, 0, FORWARD), (1, 2, 1, REVERSE)] + assert x == x_ + + def test_multidigraph_original(self): + # Node 2 doesn't need to be searched again from visited from 4. + # The goal here is to cover the case when 2 to be researched from 4, + # when 4 is visited from the first time (so we must make sure that 4 + # is not visited from 2, and hence, we respect the edge orientation). + G = nx.MultiDiGraph([(0, 1), (1, 2), (2, 3), (4, 2)]) + pytest.raises( + nx.exception.NetworkXNoCycle, + nx.find_cycle, + G, + [0, 1, 2, 3, 4], + orientation="original", + ) + + def test_dag(self): + G = nx.DiGraph([(0, 1), (0, 2), (1, 2)]) + pytest.raises( + nx.exception.NetworkXNoCycle, nx.find_cycle, G, orientation="original" + ) + x = list(nx.find_cycle(G, orientation="ignore")) + assert x == [(0, 1, FORWARD), (1, 2, FORWARD), (0, 2, REVERSE)] + + def test_prev_explored(self): + # https://github.com/networkx/networkx/issues/2323 + + G = nx.DiGraph() + G.add_edges_from([(1, 0), (2, 0), (1, 2), (2, 1)]) + pytest.raises(nx.NetworkXNoCycle, nx.find_cycle, G, source=0) + x = list(nx.find_cycle(G, 1)) + x_ = [(1, 2), (2, 1)] + assert x == x_ + + x = list(nx.find_cycle(G, 2)) + x_ = [(2, 1), (1, 2)] + assert x == x_ + + x = list(nx.find_cycle(G)) + x_ = [(1, 2), (2, 1)] + assert x == x_ + + def test_no_cycle(self): + # https://github.com/networkx/networkx/issues/2439 + + G = nx.DiGraph() + G.add_edges_from([(1, 2), (2, 0), (3, 1), (3, 2)]) + pytest.raises(nx.NetworkXNoCycle, nx.find_cycle, G, source=0) + pytest.raises(nx.NetworkXNoCycle, nx.find_cycle, G) + + +def assert_basis_equal(a, b): + assert sorted(a) == sorted(b) + + +class TestMinimumCycleBasis: + @classmethod + def setup_class(cls): + T = nx.Graph() + nx.add_cycle(T, [1, 2, 3, 4], weight=1) + T.add_edge(2, 4, weight=5) + cls.diamond_graph = T + + def test_unweighted_diamond(self): + mcb = nx.minimum_cycle_basis(self.diamond_graph) + assert_basis_equal(mcb, [[2, 4, 1], [3, 4, 2]]) + + def test_weighted_diamond(self): + mcb = nx.minimum_cycle_basis(self.diamond_graph, weight="weight") + assert_basis_equal(mcb, [[2, 4, 1], [4, 3, 2, 1]]) + + def test_dimensionality(self): + # checks |MCB|=|E|-|V|+|NC| + ntrial = 10 + for seed in range(1234, 1234 + ntrial): + rg = nx.erdos_renyi_graph(10, 0.3, seed=seed) + nnodes = rg.number_of_nodes() + nedges = rg.number_of_edges() + ncomp = nx.number_connected_components(rg) + + mcb = nx.minimum_cycle_basis(rg) + assert len(mcb) == nedges - nnodes + ncomp + check_independent(mcb) + + def test_complete_graph(self): + cg = nx.complete_graph(5) + mcb = nx.minimum_cycle_basis(cg) + assert all(len(cycle) == 3 for cycle in mcb) + check_independent(mcb) + + def test_tree_graph(self): + tg = nx.balanced_tree(3, 3) + assert not nx.minimum_cycle_basis(tg) + + def test_petersen_graph(self): + G = nx.petersen_graph() + mcb = list(nx.minimum_cycle_basis(G)) + expected = [ + [4, 9, 7, 5, 0], + [1, 2, 3, 4, 0], + [1, 6, 8, 5, 0], + [4, 3, 8, 5, 0], + [1, 6, 9, 4, 0], + [1, 2, 7, 5, 0], + ] + assert len(mcb) == len(expected) + assert all(c in expected for c in mcb) + + # check that order of the nodes is a path + for c in mcb: + assert all(G.has_edge(u, v) for u, v in nx.utils.pairwise(c, cyclic=True)) + # check independence of the basis + check_independent(mcb) + + def test_gh6787_variable_weighted_complete_graph(self): + N = 8 + cg = nx.complete_graph(N) + cg.add_weighted_edges_from([(u, v, 9) for u, v in cg.edges]) + cg.add_weighted_edges_from([(u, v, 1) for u, v in nx.cycle_graph(N).edges]) + mcb = nx.minimum_cycle_basis(cg, weight="weight") + check_independent(mcb) + + def test_gh6787_and_edge_attribute_names(self): + G = nx.cycle_graph(4) + G.add_weighted_edges_from([(0, 2, 10), (1, 3, 10)], weight="dist") + expected = [[1, 3, 0], [3, 2, 1, 0], [1, 2, 0]] + mcb = list(nx.minimum_cycle_basis(G, weight="dist")) + assert len(mcb) == len(expected) + assert all(c in expected for c in mcb) + + # test not using a weight with weight attributes + expected = [[1, 3, 0], [1, 2, 0], [3, 2, 0]] + mcb = list(nx.minimum_cycle_basis(G)) + assert len(mcb) == len(expected) + assert all(c in expected for c in mcb) + + +class TestGirth: + @pytest.mark.parametrize( + ("G", "expected"), + ( + (nx.chvatal_graph(), 4), + (nx.tutte_graph(), 4), + (nx.petersen_graph(), 5), + (nx.heawood_graph(), 6), + (nx.pappus_graph(), 6), + (nx.random_labeled_tree(10, seed=42), inf), + (nx.empty_graph(10), inf), + (nx.Graph(chain(cycle_edges(range(5)), cycle_edges(range(6, 10)))), 4), + ( + nx.Graph( + [ + (0, 6), + (0, 8), + (0, 9), + (1, 8), + (2, 8), + (2, 9), + (4, 9), + (5, 9), + (6, 8), + (6, 9), + (7, 8), + ] + ), + 3, + ), + ), + ) + def test_girth(self, G, expected): + assert nx.girth(G) == expected diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_d_separation.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_d_separation.py new file mode 100644 index 0000000000000000000000000000000000000000..f7608295afa2e8e20116e5e3cc0b655b0f2a23d6 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_d_separation.py @@ -0,0 +1,340 @@ +from itertools import combinations + +import pytest + +import networkx as nx + + +def path_graph(): + """Return a path graph of length three.""" + G = nx.path_graph(3, create_using=nx.DiGraph) + G.graph["name"] = "path" + nx.freeze(G) + return G + + +def fork_graph(): + """Return a three node fork graph.""" + G = nx.DiGraph(name="fork") + G.add_edges_from([(0, 1), (0, 2)]) + nx.freeze(G) + return G + + +def collider_graph(): + """Return a collider/v-structure graph with three nodes.""" + G = nx.DiGraph(name="collider") + G.add_edges_from([(0, 2), (1, 2)]) + nx.freeze(G) + return G + + +def naive_bayes_graph(): + """Return a simply Naive Bayes PGM graph.""" + G = nx.DiGraph(name="naive_bayes") + G.add_edges_from([(0, 1), (0, 2), (0, 3), (0, 4)]) + nx.freeze(G) + return G + + +def asia_graph(): + """Return the 'Asia' PGM graph.""" + G = nx.DiGraph(name="asia") + G.add_edges_from( + [ + ("asia", "tuberculosis"), + ("smoking", "cancer"), + ("smoking", "bronchitis"), + ("tuberculosis", "either"), + ("cancer", "either"), + ("either", "xray"), + ("either", "dyspnea"), + ("bronchitis", "dyspnea"), + ] + ) + nx.freeze(G) + return G + + +@pytest.fixture(name="path_graph") +def path_graph_fixture(): + return path_graph() + + +@pytest.fixture(name="fork_graph") +def fork_graph_fixture(): + return fork_graph() + + +@pytest.fixture(name="collider_graph") +def collider_graph_fixture(): + return collider_graph() + + +@pytest.fixture(name="naive_bayes_graph") +def naive_bayes_graph_fixture(): + return naive_bayes_graph() + + +@pytest.fixture(name="asia_graph") +def asia_graph_fixture(): + return asia_graph() + + +@pytest.fixture() +def large_collider_graph(): + edge_list = [("A", "B"), ("C", "B"), ("B", "D"), ("D", "E"), ("B", "F"), ("G", "E")] + G = nx.DiGraph(edge_list) + return G + + +@pytest.fixture() +def chain_and_fork_graph(): + edge_list = [("A", "B"), ("B", "C"), ("B", "D"), ("D", "C")] + G = nx.DiGraph(edge_list) + return G + + +@pytest.fixture() +def no_separating_set_graph(): + edge_list = [("A", "B")] + G = nx.DiGraph(edge_list) + return G + + +@pytest.fixture() +def large_no_separating_set_graph(): + edge_list = [("A", "B"), ("C", "A"), ("C", "B")] + G = nx.DiGraph(edge_list) + return G + + +@pytest.fixture() +def collider_trek_graph(): + edge_list = [("A", "B"), ("C", "B"), ("C", "D")] + G = nx.DiGraph(edge_list) + return G + + +@pytest.mark.parametrize( + "graph", + [path_graph(), fork_graph(), collider_graph(), naive_bayes_graph(), asia_graph()], +) +def test_markov_condition(graph): + """Test that the Markov condition holds for each PGM graph.""" + for node in graph.nodes: + parents = set(graph.predecessors(node)) + non_descendants = graph.nodes - nx.descendants(graph, node) - {node} - parents + assert nx.is_d_separator(graph, {node}, non_descendants, parents) + + +def test_path_graph_dsep(path_graph): + """Example-based test of d-separation for path_graph.""" + assert nx.is_d_separator(path_graph, {0}, {2}, {1}) + assert not nx.is_d_separator(path_graph, {0}, {2}, set()) + + +def test_fork_graph_dsep(fork_graph): + """Example-based test of d-separation for fork_graph.""" + assert nx.is_d_separator(fork_graph, {1}, {2}, {0}) + assert not nx.is_d_separator(fork_graph, {1}, {2}, set()) + + +def test_collider_graph_dsep(collider_graph): + """Example-based test of d-separation for collider_graph.""" + assert nx.is_d_separator(collider_graph, {0}, {1}, set()) + assert not nx.is_d_separator(collider_graph, {0}, {1}, {2}) + + +def test_naive_bayes_dsep(naive_bayes_graph): + """Example-based test of d-separation for naive_bayes_graph.""" + for u, v in combinations(range(1, 5), 2): + assert nx.is_d_separator(naive_bayes_graph, {u}, {v}, {0}) + assert not nx.is_d_separator(naive_bayes_graph, {u}, {v}, set()) + + +def test_asia_graph_dsep(asia_graph): + """Example-based test of d-separation for asia_graph.""" + assert nx.is_d_separator( + asia_graph, {"asia", "smoking"}, {"dyspnea", "xray"}, {"bronchitis", "either"} + ) + assert nx.is_d_separator( + asia_graph, {"tuberculosis", "cancer"}, {"bronchitis"}, {"smoking", "xray"} + ) + + +def test_undirected_graphs_are_not_supported(): + """ + Test that undirected graphs are not supported. + + d-separation and its related algorithms do not apply in + the case of undirected graphs. + """ + g = nx.path_graph(3, nx.Graph) + with pytest.raises(nx.NetworkXNotImplemented): + nx.is_d_separator(g, {0}, {1}, {2}) + with pytest.raises(nx.NetworkXNotImplemented): + nx.is_minimal_d_separator(g, {0}, {1}, {2}) + with pytest.raises(nx.NetworkXNotImplemented): + nx.find_minimal_d_separator(g, {0}, {1}) + + +def test_cyclic_graphs_raise_error(): + """ + Test that cycle graphs should cause erroring. + + This is because PGMs assume a directed acyclic graph. + """ + g = nx.cycle_graph(3, nx.DiGraph) + with pytest.raises(nx.NetworkXError): + nx.is_d_separator(g, {0}, {1}, {2}) + with pytest.raises(nx.NetworkXError): + nx.find_minimal_d_separator(g, {0}, {1}) + with pytest.raises(nx.NetworkXError): + nx.is_minimal_d_separator(g, {0}, {1}, {2}) + + +def test_invalid_nodes_raise_error(asia_graph): + """ + Test that graphs that have invalid nodes passed in raise errors. + """ + # Check both set and node arguments + with pytest.raises(nx.NodeNotFound): + nx.is_d_separator(asia_graph, {0}, {1}, {2}) + with pytest.raises(nx.NodeNotFound): + nx.is_d_separator(asia_graph, 0, 1, 2) + with pytest.raises(nx.NodeNotFound): + nx.is_minimal_d_separator(asia_graph, {0}, {1}, {2}) + with pytest.raises(nx.NodeNotFound): + nx.is_minimal_d_separator(asia_graph, 0, 1, 2) + with pytest.raises(nx.NodeNotFound): + nx.find_minimal_d_separator(asia_graph, {0}, {1}) + with pytest.raises(nx.NodeNotFound): + nx.find_minimal_d_separator(asia_graph, 0, 1) + + +def test_nondisjoint_node_sets_raise_error(collider_graph): + """ + Test that error is raised when node sets aren't disjoint. + """ + with pytest.raises(nx.NetworkXError): + nx.is_d_separator(collider_graph, 0, 1, 0) + with pytest.raises(nx.NetworkXError): + nx.is_d_separator(collider_graph, 0, 2, 0) + with pytest.raises(nx.NetworkXError): + nx.is_d_separator(collider_graph, 0, 0, 1) + with pytest.raises(nx.NetworkXError): + nx.is_d_separator(collider_graph, 1, 0, 0) + with pytest.raises(nx.NetworkXError): + nx.find_minimal_d_separator(collider_graph, 0, 0) + with pytest.raises(nx.NetworkXError): + nx.find_minimal_d_separator(collider_graph, 0, 1, included=0) + with pytest.raises(nx.NetworkXError): + nx.find_minimal_d_separator(collider_graph, 1, 0, included=0) + with pytest.raises(nx.NetworkXError): + nx.is_minimal_d_separator(collider_graph, 0, 0, set()) + with pytest.raises(nx.NetworkXError): + nx.is_minimal_d_separator(collider_graph, 0, 1, set(), included=0) + with pytest.raises(nx.NetworkXError): + nx.is_minimal_d_separator(collider_graph, 1, 0, set(), included=0) + + +def test_is_minimal_d_separator( + large_collider_graph, + chain_and_fork_graph, + no_separating_set_graph, + large_no_separating_set_graph, + collider_trek_graph, +): + # Case 1: + # create a graph A -> B <- C + # B -> D -> E; + # B -> F; + # G -> E; + assert not nx.is_d_separator(large_collider_graph, {"B"}, {"E"}, set()) + + # minimal set of the corresponding graph + # for B and E should be (D,) + Zmin = nx.find_minimal_d_separator(large_collider_graph, "B", "E") + # check that the minimal d-separator is a d-separating set + assert nx.is_d_separator(large_collider_graph, "B", "E", Zmin) + # the minimal separating set should also pass the test for minimality + assert nx.is_minimal_d_separator(large_collider_graph, "B", "E", Zmin) + # function should also work with set arguments + assert nx.is_minimal_d_separator(large_collider_graph, {"A", "B"}, {"G", "E"}, Zmin) + assert Zmin == {"D"} + + # Case 2: + # create a graph A -> B -> C + # B -> D -> C; + assert not nx.is_d_separator(chain_and_fork_graph, {"A"}, {"C"}, set()) + Zmin = nx.find_minimal_d_separator(chain_and_fork_graph, "A", "C") + + # the minimal separating set should pass the test for minimality + assert nx.is_minimal_d_separator(chain_and_fork_graph, "A", "C", Zmin) + assert Zmin == {"B"} + Znotmin = Zmin.union({"D"}) + assert not nx.is_minimal_d_separator(chain_and_fork_graph, "A", "C", Znotmin) + + # Case 3: + # create a graph A -> B + + # there is no m-separating set between A and B at all, so + # no minimal m-separating set can exist + assert not nx.is_d_separator(no_separating_set_graph, {"A"}, {"B"}, set()) + assert nx.find_minimal_d_separator(no_separating_set_graph, "A", "B") is None + + # Case 4: + # create a graph A -> B with A <- C -> B + + # there is no m-separating set between A and B at all, so + # no minimal m-separating set can exist + # however, the algorithm will initially propose C as a + # minimal (but invalid) separating set + assert not nx.is_d_separator(large_no_separating_set_graph, {"A"}, {"B"}, {"C"}) + assert nx.find_minimal_d_separator(large_no_separating_set_graph, "A", "B") is None + + # Test `included` and `excluded` args + # create graph A -> B <- C -> D + assert nx.find_minimal_d_separator(collider_trek_graph, "A", "D", included="B") == { + "B", + "C", + } + assert ( + nx.find_minimal_d_separator( + collider_trek_graph, "A", "D", included="B", restricted="B" + ) + is None + ) + + +def test_is_minimal_d_separator_checks_dsep(): + """Test that is_minimal_d_separator checks for d-separation as well.""" + g = nx.DiGraph() + g.add_edges_from( + [ + ("A", "B"), + ("A", "E"), + ("B", "C"), + ("B", "D"), + ("D", "C"), + ("D", "F"), + ("E", "D"), + ("E", "F"), + ] + ) + + assert not nx.is_d_separator(g, {"C"}, {"F"}, {"D"}) + + # since {'D'} and {} are not d-separators, we return false + assert not nx.is_minimal_d_separator(g, "C", "F", {"D"}) + assert not nx.is_minimal_d_separator(g, "C", "F", set()) + + +def test__reachable(large_collider_graph): + reachable = nx.algorithms.d_separation._reachable + g = large_collider_graph + x = {"F", "D"} + ancestors = {"A", "B", "C", "D", "F"} + assert reachable(g, x, ancestors, {"B"}) == {"B", "F", "D"} + assert reachable(g, x, ancestors, set()) == ancestors diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_dag.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_dag.py new file mode 100644 index 0000000000000000000000000000000000000000..0c76be8119c44096703dbd276a3275a4c33bc5b6 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_dag.py @@ -0,0 +1,835 @@ +from collections import deque +from itertools import combinations, permutations + +import pytest + +import networkx as nx +from networkx.utils import edges_equal, pairwise + + +# Recipe from the itertools documentation. +def _consume(iterator): + "Consume the iterator entirely." + # Feed the entire iterator into a zero-length deque. + deque(iterator, maxlen=0) + + +class TestDagLongestPath: + """Unit tests computing the longest path in a directed acyclic graph.""" + + def test_empty(self): + G = nx.DiGraph() + assert nx.dag_longest_path(G) == [] + + def test_unweighted1(self): + edges = [(1, 2), (2, 3), (2, 4), (3, 5), (5, 6), (3, 7)] + G = nx.DiGraph(edges) + assert nx.dag_longest_path(G) == [1, 2, 3, 5, 6] + + def test_unweighted2(self): + edges = [(1, 2), (2, 3), (3, 4), (4, 5), (1, 3), (1, 5), (3, 5)] + G = nx.DiGraph(edges) + assert nx.dag_longest_path(G) == [1, 2, 3, 4, 5] + + def test_weighted(self): + G = nx.DiGraph() + edges = [(1, 2, -5), (2, 3, 1), (3, 4, 1), (4, 5, 0), (3, 5, 4), (1, 6, 2)] + G.add_weighted_edges_from(edges) + assert nx.dag_longest_path(G) == [2, 3, 5] + + def test_undirected_not_implemented(self): + G = nx.Graph() + pytest.raises(nx.NetworkXNotImplemented, nx.dag_longest_path, G) + + def test_unorderable_nodes(self): + """Tests that computing the longest path does not depend on + nodes being orderable. + + For more information, see issue #1989. + + """ + # Create the directed path graph on four nodes in a diamond shape, + # with nodes represented as (unorderable) Python objects. + nodes = [object() for n in range(4)] + G = nx.DiGraph() + G.add_edge(nodes[0], nodes[1]) + G.add_edge(nodes[0], nodes[2]) + G.add_edge(nodes[2], nodes[3]) + G.add_edge(nodes[1], nodes[3]) + + # this will raise NotImplementedError when nodes need to be ordered + nx.dag_longest_path(G) + + def test_multigraph_unweighted(self): + edges = [(1, 2), (2, 3), (2, 3), (3, 4), (4, 5), (1, 3), (1, 5), (3, 5)] + G = nx.MultiDiGraph(edges) + assert nx.dag_longest_path(G) == [1, 2, 3, 4, 5] + + def test_multigraph_weighted(self): + G = nx.MultiDiGraph() + edges = [ + (1, 2, 2), + (2, 3, 2), + (1, 3, 1), + (1, 3, 5), + (1, 3, 2), + ] + G.add_weighted_edges_from(edges) + assert nx.dag_longest_path(G) == [1, 3] + + def test_multigraph_weighted_default_weight(self): + G = nx.MultiDiGraph([(1, 2), (2, 3)]) # Unweighted edges + G.add_weighted_edges_from([(1, 3, 1), (1, 3, 5), (1, 3, 2)]) + + # Default value for default weight is 1 + assert nx.dag_longest_path(G) == [1, 3] + assert nx.dag_longest_path(G, default_weight=3) == [1, 2, 3] + + +class TestDagLongestPathLength: + """Unit tests for computing the length of a longest path in a + directed acyclic graph. + + """ + + def test_unweighted(self): + edges = [(1, 2), (2, 3), (2, 4), (3, 5), (5, 6), (5, 7)] + G = nx.DiGraph(edges) + assert nx.dag_longest_path_length(G) == 4 + + edges = [(1, 2), (2, 3), (3, 4), (4, 5), (1, 3), (1, 5), (3, 5)] + G = nx.DiGraph(edges) + assert nx.dag_longest_path_length(G) == 4 + + # test degenerate graphs + G = nx.DiGraph() + G.add_node(1) + assert nx.dag_longest_path_length(G) == 0 + + def test_undirected_not_implemented(self): + G = nx.Graph() + pytest.raises(nx.NetworkXNotImplemented, nx.dag_longest_path_length, G) + + def test_weighted(self): + edges = [(1, 2, -5), (2, 3, 1), (3, 4, 1), (4, 5, 0), (3, 5, 4), (1, 6, 2)] + G = nx.DiGraph() + G.add_weighted_edges_from(edges) + assert nx.dag_longest_path_length(G) == 5 + + def test_multigraph_unweighted(self): + edges = [(1, 2), (2, 3), (2, 3), (3, 4), (4, 5), (1, 3), (1, 5), (3, 5)] + G = nx.MultiDiGraph(edges) + assert nx.dag_longest_path_length(G) == 4 + + def test_multigraph_weighted(self): + G = nx.MultiDiGraph() + edges = [ + (1, 2, 2), + (2, 3, 2), + (1, 3, 1), + (1, 3, 5), + (1, 3, 2), + ] + G.add_weighted_edges_from(edges) + assert nx.dag_longest_path_length(G) == 5 + + +class TestDAG: + @classmethod + def setup_class(cls): + pass + + def test_topological_sort1(self): + DG = nx.DiGraph([(1, 2), (1, 3), (2, 3)]) + + for algorithm in [nx.topological_sort, nx.lexicographical_topological_sort]: + assert tuple(algorithm(DG)) == (1, 2, 3) + + DG.add_edge(3, 2) + + for algorithm in [nx.topological_sort, nx.lexicographical_topological_sort]: + pytest.raises(nx.NetworkXUnfeasible, _consume, algorithm(DG)) + + DG.remove_edge(2, 3) + + for algorithm in [nx.topological_sort, nx.lexicographical_topological_sort]: + assert tuple(algorithm(DG)) == (1, 3, 2) + + DG.remove_edge(3, 2) + + assert tuple(nx.topological_sort(DG)) in {(1, 2, 3), (1, 3, 2)} + assert tuple(nx.lexicographical_topological_sort(DG)) == (1, 2, 3) + + def test_is_directed_acyclic_graph(self): + G = nx.generators.complete_graph(2) + assert not nx.is_directed_acyclic_graph(G) + assert not nx.is_directed_acyclic_graph(G.to_directed()) + assert not nx.is_directed_acyclic_graph(nx.Graph([(3, 4), (4, 5)])) + assert nx.is_directed_acyclic_graph(nx.DiGraph([(3, 4), (4, 5)])) + + def test_topological_sort2(self): + DG = nx.DiGraph( + { + 1: [2], + 2: [3], + 3: [4], + 4: [5], + 5: [1], + 11: [12], + 12: [13], + 13: [14], + 14: [15], + } + ) + pytest.raises(nx.NetworkXUnfeasible, _consume, nx.topological_sort(DG)) + + assert not nx.is_directed_acyclic_graph(DG) + + DG.remove_edge(1, 2) + _consume(nx.topological_sort(DG)) + assert nx.is_directed_acyclic_graph(DG) + + def test_topological_sort3(self): + DG = nx.DiGraph() + DG.add_edges_from([(1, i) for i in range(2, 5)]) + DG.add_edges_from([(2, i) for i in range(5, 9)]) + DG.add_edges_from([(6, i) for i in range(9, 12)]) + DG.add_edges_from([(4, i) for i in range(12, 15)]) + + def validate(order): + assert isinstance(order, list) + assert set(order) == set(DG) + for u, v in combinations(order, 2): + assert not nx.has_path(DG, v, u) + + validate(list(nx.topological_sort(DG))) + + DG.add_edge(14, 1) + pytest.raises(nx.NetworkXUnfeasible, _consume, nx.topological_sort(DG)) + + def test_topological_sort4(self): + G = nx.Graph() + G.add_edge(1, 2) + # Only directed graphs can be topologically sorted. + pytest.raises(nx.NetworkXError, _consume, nx.topological_sort(G)) + + def test_topological_sort5(self): + G = nx.DiGraph() + G.add_edge(0, 1) + assert list(nx.topological_sort(G)) == [0, 1] + + def test_topological_sort6(self): + for algorithm in [nx.topological_sort, nx.lexicographical_topological_sort]: + + def runtime_error(): + DG = nx.DiGraph([(1, 2), (2, 3), (3, 4)]) + first = True + for x in algorithm(DG): + if first: + first = False + DG.add_edge(5 - x, 5) + + def unfeasible_error(): + DG = nx.DiGraph([(1, 2), (2, 3), (3, 4)]) + first = True + for x in algorithm(DG): + if first: + first = False + DG.remove_node(4) + + def runtime_error2(): + DG = nx.DiGraph([(1, 2), (2, 3), (3, 4)]) + first = True + for x in algorithm(DG): + if first: + first = False + DG.remove_node(2) + + pytest.raises(RuntimeError, runtime_error) + pytest.raises(RuntimeError, runtime_error2) + pytest.raises(nx.NetworkXUnfeasible, unfeasible_error) + + def test_all_topological_sorts_1(self): + DG = nx.DiGraph([(1, 2), (2, 3), (3, 4), (4, 5)]) + assert list(nx.all_topological_sorts(DG)) == [[1, 2, 3, 4, 5]] + + def test_all_topological_sorts_2(self): + DG = nx.DiGraph([(1, 3), (2, 1), (2, 4), (4, 3), (4, 5)]) + assert sorted(nx.all_topological_sorts(DG)) == [ + [2, 1, 4, 3, 5], + [2, 1, 4, 5, 3], + [2, 4, 1, 3, 5], + [2, 4, 1, 5, 3], + [2, 4, 5, 1, 3], + ] + + def test_all_topological_sorts_3(self): + def unfeasible(): + DG = nx.DiGraph([(1, 2), (2, 3), (3, 4), (4, 2), (4, 5)]) + # convert to list to execute generator + list(nx.all_topological_sorts(DG)) + + def not_implemented(): + G = nx.Graph([(1, 2), (2, 3)]) + # convert to list to execute generator + list(nx.all_topological_sorts(G)) + + def not_implemented_2(): + G = nx.MultiGraph([(1, 2), (1, 2), (2, 3)]) + list(nx.all_topological_sorts(G)) + + pytest.raises(nx.NetworkXUnfeasible, unfeasible) + pytest.raises(nx.NetworkXNotImplemented, not_implemented) + pytest.raises(nx.NetworkXNotImplemented, not_implemented_2) + + def test_all_topological_sorts_4(self): + DG = nx.DiGraph() + for i in range(7): + DG.add_node(i) + assert sorted(map(list, permutations(DG.nodes))) == sorted( + nx.all_topological_sorts(DG) + ) + + def test_all_topological_sorts_multigraph_1(self): + DG = nx.MultiDiGraph([(1, 2), (1, 2), (2, 3), (3, 4), (3, 5), (3, 5), (3, 5)]) + assert sorted(nx.all_topological_sorts(DG)) == sorted( + [[1, 2, 3, 4, 5], [1, 2, 3, 5, 4]] + ) + + def test_all_topological_sorts_multigraph_2(self): + N = 9 + edges = [] + for i in range(1, N): + edges.extend([(i, i + 1)] * i) + DG = nx.MultiDiGraph(edges) + assert list(nx.all_topological_sorts(DG)) == [list(range(1, N + 1))] + + def test_ancestors(self): + G = nx.DiGraph() + ancestors = nx.algorithms.dag.ancestors + G.add_edges_from([(1, 2), (1, 3), (4, 2), (4, 3), (4, 5), (2, 6), (5, 6)]) + assert ancestors(G, 6) == {1, 2, 4, 5} + assert ancestors(G, 3) == {1, 4} + assert ancestors(G, 1) == set() + pytest.raises(nx.NetworkXError, ancestors, G, 8) + + def test_descendants(self): + G = nx.DiGraph() + descendants = nx.algorithms.dag.descendants + G.add_edges_from([(1, 2), (1, 3), (4, 2), (4, 3), (4, 5), (2, 6), (5, 6)]) + assert descendants(G, 1) == {2, 3, 6} + assert descendants(G, 4) == {2, 3, 5, 6} + assert descendants(G, 3) == set() + pytest.raises(nx.NetworkXError, descendants, G, 8) + + def test_transitive_closure(self): + G = nx.DiGraph([(1, 2), (2, 3), (3, 4)]) + solution = [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)] + assert edges_equal(nx.transitive_closure(G).edges(), solution, directed=True) + G = nx.DiGraph([(1, 2), (2, 3), (2, 4)]) + solution = [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4)] + assert edges_equal(nx.transitive_closure(G).edges(), solution, directed=True) + G = nx.DiGraph([(1, 2), (2, 3), (3, 1)]) + solution = [(1, 2), (2, 1), (2, 3), (3, 2), (1, 3), (3, 1)] + soln = sorted(solution + [(n, n) for n in G]) + assert edges_equal( + sorted(nx.transitive_closure(G).edges()), soln, directed=True + ) + + G = nx.Graph([(1, 2), (2, 3), (3, 4)]) + solution = [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)] + assert edges_equal(sorted(nx.transitive_closure(G).edges()), solution) + + G = nx.MultiGraph([(1, 2), (2, 3), (3, 4)]) + solution = [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)] + assert edges_equal(sorted(nx.transitive_closure(G).edges()), solution) + + G = nx.MultiDiGraph([(1, 2), (2, 3), (3, 4)]) + solution = [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)] + assert edges_equal( + sorted(nx.transitive_closure(G).edges()), solution, directed=True + ) + + # test if edge data is copied + G = nx.DiGraph([(1, 2, {"a": 3}), (2, 3, {"b": 0}), (3, 4)]) + H = nx.transitive_closure(G) + for u, v in G.edges(): + assert G.get_edge_data(u, v) == H.get_edge_data(u, v) + + k = 10 + G = nx.DiGraph((i, i + 1, {"f": "b", "weight": i}) for i in range(k)) + H = nx.transitive_closure(G) + for u, v in G.edges(): + assert G.get_edge_data(u, v) == H.get_edge_data(u, v) + + G = nx.Graph() + with pytest.raises(nx.NetworkXError): + nx.transitive_closure(G, reflexive="wrong input") + + def test_reflexive_transitive_closure(self): + G = nx.DiGraph([(1, 2), (2, 3), (3, 4)]) + solution = [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)] + soln = sorted(solution + [(n, n) for n in G]) + assert edges_equal(nx.transitive_closure(G).edges(), solution, directed=True) + assert edges_equal( + nx.transitive_closure(G, False).edges(), solution, directed=True + ) + assert edges_equal(nx.transitive_closure(G, True).edges(), soln, directed=True) + assert edges_equal( + nx.transitive_closure(G, None).edges(), solution, directed=True + ) + + G = nx.DiGraph([(1, 2), (2, 3), (2, 4)]) + solution = [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4)] + soln = sorted(solution + [(n, n) for n in G]) + assert edges_equal(nx.transitive_closure(G).edges(), solution, directed=True) + assert edges_equal( + nx.transitive_closure(G, False).edges(), solution, directed=True + ) + assert edges_equal(nx.transitive_closure(G, True).edges(), soln, directed=True) + assert edges_equal( + nx.transitive_closure(G, None).edges(), solution, directed=True + ) + + G = nx.DiGraph([(1, 2), (2, 3), (3, 1)]) + solution = sorted([(1, 2), (2, 1), (2, 3), (3, 2), (1, 3), (3, 1)]) + soln = sorted(solution + [(n, n) for n in G]) + assert edges_equal( + sorted(nx.transitive_closure(G).edges()), soln, directed=True + ) + assert edges_equal( + sorted(nx.transitive_closure(G, False).edges()), soln, directed=True + ) + assert edges_equal( + sorted(nx.transitive_closure(G, None).edges()), solution, directed=True + ) + assert edges_equal( + sorted(nx.transitive_closure(G, True).edges()), soln, directed=True + ) + + G = nx.Graph([(1, 2), (2, 3), (3, 4)]) + solution = [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)] + soln = sorted(solution + [(n, n) for n in G]) + assert edges_equal(nx.transitive_closure(G).edges(), solution) + assert edges_equal(nx.transitive_closure(G, False).edges(), solution) + assert edges_equal(nx.transitive_closure(G, True).edges(), soln) + assert edges_equal(nx.transitive_closure(G, None).edges(), solution) + + G = nx.MultiGraph([(1, 2), (2, 3), (3, 4)]) + solution = [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)] + soln = sorted(solution + [(n, n) for n in G]) + assert edges_equal(nx.transitive_closure(G).edges(), solution) + assert edges_equal(nx.transitive_closure(G, False).edges(), solution) + assert edges_equal(nx.transitive_closure(G, True).edges(), soln) + assert edges_equal(nx.transitive_closure(G, None).edges(), solution) + + G = nx.MultiDiGraph([(1, 2), (2, 3), (3, 4)]) + solution = [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)] + soln = sorted(solution + [(n, n) for n in G]) + assert edges_equal(nx.transitive_closure(G).edges(), solution, directed=True) + assert edges_equal( + nx.transitive_closure(G, False).edges(), solution, directed=True + ) + assert edges_equal(nx.transitive_closure(G, True).edges(), soln, directed=True) + assert edges_equal( + nx.transitive_closure(G, None).edges(), solution, directed=True + ) + + def test_transitive_closure_dag(self): + G = nx.DiGraph([(1, 2), (2, 3), (3, 4)]) + transitive_closure = nx.algorithms.dag.transitive_closure_dag + solution = [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)] + assert edges_equal(transitive_closure(G).edges(), solution, directed=True) + G = nx.DiGraph([(1, 2), (2, 3), (2, 4)]) + solution = [(1, 2), (1, 3), (1, 4), (2, 3), (2, 4)] + assert edges_equal(transitive_closure(G).edges(), solution, directed=True) + G = nx.Graph([(1, 2), (2, 3), (3, 4)]) + pytest.raises(nx.NetworkXNotImplemented, transitive_closure, G) + + # test if edge data is copied + G = nx.DiGraph([(1, 2, {"a": 3}), (2, 3, {"b": 0}), (3, 4)]) + H = transitive_closure(G) + for u, v in G.edges(): + assert G.get_edge_data(u, v) == H.get_edge_data(u, v) + + k = 10 + G = nx.DiGraph((i, i + 1, {"foo": "bar", "weight": i}) for i in range(k)) + H = transitive_closure(G) + for u, v in G.edges(): + assert G.get_edge_data(u, v) == H.get_edge_data(u, v) + + def test_transitive_reduction(self): + G = nx.DiGraph([(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]) + transitive_reduction = nx.algorithms.dag.transitive_reduction + solution = [(1, 2), (2, 3), (3, 4)] + assert edges_equal(transitive_reduction(G).edges(), solution, directed=True) + G = nx.DiGraph([(1, 2), (1, 3), (1, 4), (2, 3), (2, 4)]) + transitive_reduction = nx.algorithms.dag.transitive_reduction + solution = [(1, 2), (2, 3), (2, 4)] + assert edges_equal(transitive_reduction(G).edges(), solution, directed=True) + G = nx.Graph([(1, 2), (2, 3), (3, 4)]) + pytest.raises(nx.NetworkXNotImplemented, transitive_reduction, G) + + def _check_antichains(self, solution, result): + sol = [frozenset(a) for a in solution] + res = [frozenset(a) for a in result] + assert set(sol) == set(res) + + def test_antichains(self): + antichains = nx.algorithms.dag.antichains + G = nx.DiGraph([(1, 2), (2, 3), (3, 4)]) + solution = [[], [4], [3], [2], [1]] + self._check_antichains(list(antichains(G)), solution) + G = nx.DiGraph([(1, 2), (2, 3), (2, 4), (3, 5), (5, 6), (5, 7)]) + solution = [ + [], + [4], + [7], + [7, 4], + [6], + [6, 4], + [6, 7], + [6, 7, 4], + [5], + [5, 4], + [3], + [3, 4], + [2], + [1], + ] + self._check_antichains(list(antichains(G)), solution) + G = nx.DiGraph([(1, 2), (1, 3), (3, 4), (3, 5), (5, 6)]) + solution = [ + [], + [6], + [5], + [4], + [4, 6], + [4, 5], + [3], + [2], + [2, 6], + [2, 5], + [2, 4], + [2, 4, 6], + [2, 4, 5], + [2, 3], + [1], + ] + self._check_antichains(list(antichains(G)), solution) + G = nx.DiGraph({0: [1, 2], 1: [4], 2: [3], 3: [4]}) + solution = [[], [4], [3], [2], [1], [1, 3], [1, 2], [0]] + self._check_antichains(list(antichains(G)), solution) + G = nx.DiGraph() + self._check_antichains(list(antichains(G)), [[]]) + G = nx.DiGraph() + G.add_nodes_from([0, 1, 2]) + solution = [[], [0], [1], [1, 0], [2], [2, 0], [2, 1], [2, 1, 0]] + self._check_antichains(list(antichains(G)), solution) + + def f(x): + return list(antichains(x)) + + G = nx.Graph([(1, 2), (2, 3), (3, 4)]) + pytest.raises(nx.NetworkXNotImplemented, f, G) + G = nx.DiGraph([(1, 2), (2, 3), (3, 1)]) + pytest.raises(nx.NetworkXUnfeasible, f, G) + + def test_lexicographical_topological_sort(self): + G = nx.DiGraph([(1, 2), (2, 3), (1, 4), (1, 5), (2, 6)]) + assert list(nx.lexicographical_topological_sort(G)) == [1, 2, 3, 4, 5, 6] + assert list(nx.lexicographical_topological_sort(G, key=lambda x: x)) == [ + 1, + 2, + 3, + 4, + 5, + 6, + ] + assert list(nx.lexicographical_topological_sort(G, key=lambda x: -x)) == [ + 1, + 5, + 4, + 2, + 6, + 3, + ] + + def test_lexicographical_topological_sort2(self): + """ + Check the case of two or more nodes with same key value. + Want to avoid exception raised due to comparing nodes directly. + See Issue #3493 + """ + + class Test_Node: + def __init__(self, n): + self.label = n + self.priority = 1 + + def __repr__(self): + return f"Node({self.label})" + + def sorting_key(node): + return node.priority + + test_nodes = [Test_Node(n) for n in range(4)] + G = nx.DiGraph() + edges = [(0, 1), (0, 2), (0, 3), (2, 3)] + G.add_edges_from((test_nodes[a], test_nodes[b]) for a, b in edges) + + sorting = list(nx.lexicographical_topological_sort(G, key=sorting_key)) + assert sorting == test_nodes + + +def test_topological_generations(): + G = nx.DiGraph( + {1: [2, 3], 2: [4, 5], 3: [7], 4: [], 5: [6, 7], 6: [], 7: []} + ).reverse() + # order within each generation is inconsequential + generations = [sorted(gen) for gen in nx.topological_generations(G)] + expected = [[4, 6, 7], [3, 5], [2], [1]] + assert generations == expected + + MG = nx.MultiDiGraph(G.edges) + MG.add_edge(2, 1) + generations = [sorted(gen) for gen in nx.topological_generations(MG)] + assert generations == expected + + +def test_topological_generations_empty(): + G = nx.DiGraph() + assert list(nx.topological_generations(G)) == [] + + +def test_topological_generations_cycle(): + G = nx.DiGraph([[2, 1], [3, 1], [1, 2]]) + with pytest.raises(nx.NetworkXUnfeasible): + list(nx.topological_generations(G)) + + +def test_is_aperiodic_cycle(): + G = nx.DiGraph() + nx.add_cycle(G, [1, 2, 3, 4]) + assert not nx.is_aperiodic(G) + + +def test_is_aperiodic_cycle2(): + G = nx.DiGraph() + nx.add_cycle(G, [1, 2, 3, 4]) + nx.add_cycle(G, [3, 4, 5, 6, 7]) + assert nx.is_aperiodic(G) + + +def test_is_aperiodic_cycle3(): + G = nx.DiGraph() + nx.add_cycle(G, [1, 2, 3, 4]) + nx.add_cycle(G, [3, 4, 5, 6]) + assert not nx.is_aperiodic(G) + + +def test_is_aperiodic_cycle4(): + G = nx.DiGraph() + nx.add_cycle(G, [1, 2, 3, 4]) + G.add_edge(1, 3) + assert nx.is_aperiodic(G) + + +def test_is_aperiodic_selfloop(): + G = nx.DiGraph() + nx.add_cycle(G, [1, 2, 3, 4]) + G.add_edge(1, 1) + assert nx.is_aperiodic(G) + + +def test_is_aperiodic_null_graph_raises(): + G = nx.DiGraph() + pytest.raises(nx.NetworkXPointlessConcept, nx.is_aperiodic, G) + + +def test_is_aperiodic_undirected_raises(): + G = nx.Graph([(1, 2), (2, 3), (3, 1)]) + pytest.raises(nx.NetworkXError, nx.is_aperiodic, G) + + +def test_is_aperiodic_disconnected_raises(): + G = nx.DiGraph() + nx.add_cycle(G, [0, 1, 2]) + G.add_edge(3, 3) + pytest.raises(nx.NetworkXError, nx.is_aperiodic, G) + + +def test_is_aperiodic_weakly_connected_raises(): + G = nx.DiGraph([(1, 2), (2, 3)]) + pytest.raises(nx.NetworkXError, nx.is_aperiodic, G) + + +def test_is_aperiodic_empty_graph(): + G = nx.empty_graph(create_using=nx.DiGraph) + with pytest.raises(nx.NetworkXPointlessConcept, match="Graph has no nodes."): + nx.is_aperiodic(G) + + +def test_is_aperiodic_bipartite(): + # Bipartite graph + G = nx.DiGraph(nx.davis_southern_women_graph()) + assert not nx.is_aperiodic(G) + + +def test_is_aperiodic_single_node(): + G = nx.DiGraph() + G.add_node(0) + assert not nx.is_aperiodic(G) + G.add_edge(0, 0) + assert nx.is_aperiodic(G) + + +class TestDagToBranching: + """Unit tests for the :func:`networkx.dag_to_branching` function.""" + + def test_single_root(self): + """Tests that a directed acyclic graph with a single degree + zero node produces an arborescence. + + """ + G = nx.DiGraph([(0, 1), (0, 2), (1, 3), (2, 3)]) + B = nx.dag_to_branching(G) + expected = nx.DiGraph([(0, 1), (1, 3), (0, 2), (2, 4)]) + assert nx.is_arborescence(B) + assert nx.is_isomorphic(B, expected) + + def test_multiple_roots(self): + """Tests that a directed acyclic graph with multiple degree zero + nodes creates an arborescence with multiple (weakly) connected + components. + + """ + G = nx.DiGraph([(0, 1), (0, 2), (1, 3), (2, 3), (5, 2)]) + B = nx.dag_to_branching(G) + expected = nx.DiGraph([(0, 1), (1, 3), (0, 2), (2, 4), (5, 6), (6, 7)]) + assert nx.is_branching(B) + assert not nx.is_arborescence(B) + assert nx.is_isomorphic(B, expected) + + # # Attributes are not copied by this function. If they were, this would + # # be a good test to uncomment. + # def test_copy_attributes(self): + # """Tests that node attributes are copied in the branching.""" + # G = nx.DiGraph([(0, 1), (0, 2), (1, 3), (2, 3)]) + # for v in G: + # G.node[v]['label'] = str(v) + # B = nx.dag_to_branching(G) + # # Determine the root node of the branching. + # root = next(v for v, d in B.in_degree() if d == 0) + # assert_equal(B.node[root]['label'], '0') + # children = B[root] + # # Get the left and right children, nodes 1 and 2, respectively. + # left, right = sorted(children, key=lambda v: B.node[v]['label']) + # assert_equal(B.node[left]['label'], '1') + # assert_equal(B.node[right]['label'], '2') + # # Get the left grandchild. + # children = B[left] + # assert_equal(len(children), 1) + # left_grandchild = arbitrary_element(children) + # assert_equal(B.node[left_grandchild]['label'], '3') + # # Get the right grandchild. + # children = B[right] + # assert_equal(len(children), 1) + # right_grandchild = arbitrary_element(children) + # assert_equal(B.node[right_grandchild]['label'], '3') + + def test_already_arborescence(self): + """Tests that a directed acyclic graph that is already an + arborescence produces an isomorphic arborescence as output. + + """ + A = nx.balanced_tree(2, 2, create_using=nx.DiGraph()) + B = nx.dag_to_branching(A) + assert nx.is_isomorphic(A, B) + + def test_already_branching(self): + """Tests that a directed acyclic graph that is already a + branching produces an isomorphic branching as output. + + """ + T1 = nx.balanced_tree(2, 2, create_using=nx.DiGraph()) + T2 = nx.balanced_tree(2, 2, create_using=nx.DiGraph()) + G = nx.disjoint_union(T1, T2) + B = nx.dag_to_branching(G) + assert nx.is_isomorphic(G, B) + + def test_not_acyclic(self): + """Tests that a non-acyclic graph causes an exception.""" + with pytest.raises(nx.HasACycle): + G = nx.DiGraph(pairwise("abc", cyclic=True)) + nx.dag_to_branching(G) + + def test_undirected(self): + with pytest.raises(nx.NetworkXNotImplemented): + nx.dag_to_branching(nx.Graph()) + + def test_multigraph(self): + with pytest.raises(nx.NetworkXNotImplemented): + nx.dag_to_branching(nx.MultiGraph()) + + def test_multidigraph(self): + with pytest.raises(nx.NetworkXNotImplemented): + nx.dag_to_branching(nx.MultiDiGraph()) + + +def test_ancestors_descendants_undirected(): + """Regression test to ensure ancestors and descendants work as expected on + undirected graphs.""" + G = nx.path_graph(5) + nx.ancestors(G, 2) == nx.descendants(G, 2) == {0, 1, 3, 4} + + +def test_v_structures_raise(): + G = nx.Graph() + with pytest.raises(nx.NetworkXNotImplemented, match="for undirected type"): + nx.dag.v_structures(G) + + +@pytest.mark.parametrize( + ("edgelist", "expected"), + ( + ( + [(0, 1), (0, 2), (3, 2)], + {(0, 2, 3)}, + ), + ( + [("A", "B"), ("C", "B"), ("D", "G"), ("D", "E"), ("G", "E")], + {("A", "B", "C")}, + ), + ([(0, 1), (2, 1), (0, 2)], set()), # adjacent parents case: see gh-7385 + ), +) +def test_v_structures(edgelist, expected): + G = nx.DiGraph(edgelist) + v_structs = set(nx.dag.v_structures(G)) + assert v_structs == expected + + +def test_colliders_raise(): + G = nx.Graph() + with pytest.raises(nx.NetworkXNotImplemented, match="for undirected type"): + nx.dag.colliders(G) + + +@pytest.mark.parametrize( + ("edgelist", "expected"), + ( + ( + [(0, 1), (0, 2), (3, 2)], + {(0, 2, 3)}, + ), + ( + [("A", "B"), ("C", "B"), ("D", "G"), ("D", "E"), ("G", "E")], + {("A", "B", "C"), ("D", "E", "G")}, + ), + ), +) +def test_colliders(edgelist, expected): + G = nx.DiGraph(edgelist) + colliders = set(nx.dag.colliders(G)) + assert colliders == expected diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_distance_measures.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_distance_measures.py new file mode 100644 index 0000000000000000000000000000000000000000..1668fefdf4bb68985bc58de5658e149adeef32bd --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_distance_measures.py @@ -0,0 +1,831 @@ +import itertools +import math +from random import Random + +import pytest + +import networkx as nx +from networkx import convert_node_labels_to_integers as cnlti +from networkx.algorithms.distance_measures import _extrema_bounding + + +def test__extrema_bounding_invalid_compute_kwarg(): + G = nx.path_graph(3) + with pytest.raises(ValueError, match="compute must be one of"): + _extrema_bounding(G, compute="spam") + + +class TestDistance: + def setup_method(self): + self.G = cnlti(nx.grid_2d_graph(4, 4), first_label=1, ordering="sorted") + + @pytest.mark.parametrize("seed", list(range(10))) + @pytest.mark.parametrize("n", list(range(10, 20))) + @pytest.mark.parametrize("prob", [x / 10 for x in range(0, 10, 2)]) + def test_use_bounds_on_off_consistency(self, seed, n, prob): + """Test for consistency of distance metrics when using usebounds=True. + + We validate consistency for `networkx.diameter`, `networkx.radius`, `networkx.periphery` + and `networkx.center` when passing `usebounds=True`. Expectation is that method + returns the same result whether we pass usebounds=True or not. + + For this we generate random connected graphs and validate method returns the same. + """ + metrics = [nx.diameter, nx.radius, nx.periphery, nx.center] + max_weight = [5, 10, 1000] + rng = Random(seed) + # we compose it with a random tree to ensure graph is connected + G = nx.compose( + nx.random_labeled_tree(n, seed=rng), + nx.erdos_renyi_graph(n, prob, seed=rng), + ) + for metric in metrics: + # checking unweighted case + assert metric(G) == metric(G, usebounds=True) + for w in max_weight: + for u, v in G.edges(): + G[u][v]["w"] = rng.randint(0, w) + # checking weighted case + assert metric(G, weight="w") == metric(G, weight="w", usebounds=True) + + def test_eccentricity(self): + assert nx.eccentricity(self.G, 1) == 6 + e = nx.eccentricity(self.G) + assert e[1] == 6 + + sp = dict(nx.shortest_path_length(self.G)) + e = nx.eccentricity(self.G, sp=sp) + assert e[1] == 6 + + e = nx.eccentricity(self.G, v=1) + assert e == 6 + + # This behavior changed in version 1.8 (ticket #739) + e = nx.eccentricity(self.G, v=[1, 1]) + assert e[1] == 6 + e = nx.eccentricity(self.G, v=[1, 2]) + assert e[1] == 6 + + # test against graph with one node + G = nx.path_graph(1) + e = nx.eccentricity(G) + assert e[0] == 0 + e = nx.eccentricity(G, v=0) + assert e == 0 + pytest.raises(nx.NetworkXError, nx.eccentricity, G, 1) + + # test against empty graph + G = nx.empty_graph() + e = nx.eccentricity(G) + assert e == {} + + def test_diameter(self): + assert nx.diameter(self.G) == 6 + + def test_harmonic_diameter(self): + assert nx.harmonic_diameter(self.G) == pytest.approx(2.0477815699658715) + assert nx.harmonic_diameter(nx.star_graph(3)) == pytest.approx(1.333333) + + def test_harmonic_diameter_empty(self): + assert math.isnan(nx.harmonic_diameter(nx.empty_graph())) + + def test_harmonic_diameter_single_node(self): + assert math.isnan(nx.harmonic_diameter(nx.empty_graph(1))) + + def test_harmonic_diameter_discrete(self): + assert math.isinf(nx.harmonic_diameter(nx.empty_graph(3))) + + def test_harmonic_diameter_not_strongly_connected(self): + DG = nx.DiGraph() + DG.add_edge(0, 1) + assert nx.harmonic_diameter(DG) == 2 + + def test_harmonic_diameter_weighted_paths(self): + G = nx.star_graph(3) + # check defaults + G.add_weighted_edges_from([(*e, 1) for i, e in enumerate(G.edges)], "weight") + assert nx.harmonic_diameter(G) == pytest.approx(1.333333) + assert nx.harmonic_diameter(G, weight="weight") == pytest.approx(1.333333) + + # check impact of weights and alternate weight name + G.add_weighted_edges_from([(*e, i) for i, e in enumerate(G.edges)], "dist") + assert nx.harmonic_diameter(G, weight="dist") == pytest.approx(1.8) + + def test_radius(self): + assert nx.radius(self.G) == 4 + + def test_periphery(self): + assert set(nx.periphery(self.G)) == {1, 4, 13, 16} + + def test_center_simple_tree(self): + G = nx.Graph([(1, 2), (1, 3), (2, 4), (2, 5)]) + assert nx.center(G) == [1, 2] + + @pytest.mark.parametrize("r", range(2, 5)) + @pytest.mark.parametrize("h", range(1, 5)) + def test_center_balanced_tree(self, r, h): + G = nx.balanced_tree(r, h) + assert nx.center(G) == [0] + + def test_center(self): + assert set(nx.center(self.G)) == {6, 7, 10, 11} + + @pytest.mark.parametrize("n", [1, 2, 99, 100]) + def test_center_path_graphs(self, n): + G = nx.path_graph(n) + expected = {(n - 1) // 2, math.ceil((n - 1) / 2)} + assert set(nx.center(G)) == expected + + def test_bound_diameter(self): + assert nx.diameter(self.G, usebounds=True) == 6 + + def test_bound_radius(self): + assert nx.radius(self.G, usebounds=True) == 4 + + def test_bound_periphery(self): + result = {1, 4, 13, 16} + assert set(nx.periphery(self.G, usebounds=True)) == result + + def test_bound_center(self): + result = {6, 7, 10, 11} + assert set(nx.center(self.G, usebounds=True)) == result + + def test_radius_exception(self): + G = nx.Graph() + G.add_edge(1, 2) + G.add_edge(3, 4) + pytest.raises(nx.NetworkXError, nx.diameter, G) + + def test_eccentricity_infinite(self): + with pytest.raises(nx.NetworkXError): + G = nx.Graph([(1, 2), (3, 4)]) + e = nx.eccentricity(G) + + def test_eccentricity_undirected_not_connected(self): + with pytest.raises(nx.NetworkXError): + G = nx.Graph([(1, 2), (3, 4)]) + e = nx.eccentricity(G, sp=1) + + def test_eccentricity_directed_weakly_connected(self): + with pytest.raises(nx.NetworkXError): + DG = nx.DiGraph([(1, 2), (1, 3)]) + nx.eccentricity(DG) + + +class TestWeightedDistance: + def setup_method(self): + G = nx.Graph() + G.add_edge(0, 1, weight=0.6, cost=0.6, high_cost=6) + G.add_edge(0, 2, weight=0.2, cost=0.2, high_cost=2) + G.add_edge(2, 3, weight=0.1, cost=0.1, high_cost=1) + G.add_edge(2, 4, weight=0.7, cost=0.7, high_cost=7) + G.add_edge(2, 5, weight=0.9, cost=0.9, high_cost=9) + G.add_edge(1, 5, weight=0.3, cost=0.3, high_cost=3) + self.G = G + self.weight_fn = lambda v, u, e: 2 + + def test_eccentricity_weight_None(self): + assert nx.eccentricity(self.G, 1, weight=None) == 3 + e = nx.eccentricity(self.G, weight=None) + assert e[1] == 3 + + e = nx.eccentricity(self.G, v=1, weight=None) + assert e == 3 + + # This behavior changed in version 1.8 (ticket #739) + e = nx.eccentricity(self.G, v=[1, 1], weight=None) + assert e[1] == 3 + e = nx.eccentricity(self.G, v=[1, 2], weight=None) + assert e[1] == 3 + + def test_eccentricity_weight_attr(self): + assert nx.eccentricity(self.G, 1, weight="weight") == 1.5 + e = nx.eccentricity(self.G, weight="weight") + assert ( + e + == nx.eccentricity(self.G, weight="cost") + != nx.eccentricity(self.G, weight="high_cost") + ) + assert e[1] == 1.5 + + e = nx.eccentricity(self.G, v=1, weight="weight") + assert e == 1.5 + + # This behavior changed in version 1.8 (ticket #739) + e = nx.eccentricity(self.G, v=[1, 1], weight="weight") + assert e[1] == 1.5 + e = nx.eccentricity(self.G, v=[1, 2], weight="weight") + assert e[1] == 1.5 + + def test_eccentricity_weight_fn(self): + assert nx.eccentricity(self.G, 1, weight=self.weight_fn) == 6 + e = nx.eccentricity(self.G, weight=self.weight_fn) + assert e[1] == 6 + + e = nx.eccentricity(self.G, v=1, weight=self.weight_fn) + assert e == 6 + + # This behavior changed in version 1.8 (ticket #739) + e = nx.eccentricity(self.G, v=[1, 1], weight=self.weight_fn) + assert e[1] == 6 + e = nx.eccentricity(self.G, v=[1, 2], weight=self.weight_fn) + assert e[1] == 6 + + def test_diameter_weight_None(self): + assert nx.diameter(self.G, weight=None) == 3 + + def test_diameter_weight_attr(self): + assert ( + nx.diameter(self.G, weight="weight") + == nx.diameter(self.G, weight="cost") + == 1.6 + != nx.diameter(self.G, weight="high_cost") + ) + + def test_diameter_weight_fn(self): + assert nx.diameter(self.G, weight=self.weight_fn) == 6 + + def test_radius_weight_None(self): + assert pytest.approx(nx.radius(self.G, weight=None)) == 2 + + def test_radius_weight_attr(self): + assert ( + pytest.approx(nx.radius(self.G, weight="weight")) + == pytest.approx(nx.radius(self.G, weight="cost")) + == 0.9 + != nx.radius(self.G, weight="high_cost") + ) + + def test_radius_weight_fn(self): + assert nx.radius(self.G, weight=self.weight_fn) == 4 + + def test_periphery_weight_None(self): + for v in set(nx.periphery(self.G, weight=None)): + assert nx.eccentricity(self.G, v, weight=None) == nx.diameter( + self.G, weight=None + ) + + def test_periphery_weight_attr(self): + periphery = set(nx.periphery(self.G, weight="weight")) + assert ( + periphery + == set(nx.periphery(self.G, weight="cost")) + == set(nx.periphery(self.G, weight="high_cost")) + ) + for v in periphery: + assert ( + nx.eccentricity(self.G, v, weight="high_cost") + != nx.eccentricity(self.G, v, weight="weight") + == nx.eccentricity(self.G, v, weight="cost") + == nx.diameter(self.G, weight="weight") + == nx.diameter(self.G, weight="cost") + != nx.diameter(self.G, weight="high_cost") + ) + assert nx.eccentricity(self.G, v, weight="high_cost") == nx.diameter( + self.G, weight="high_cost" + ) + + def test_periphery_weight_fn(self): + for v in set(nx.periphery(self.G, weight=self.weight_fn)): + assert nx.eccentricity(self.G, v, weight=self.weight_fn) == nx.diameter( + self.G, weight=self.weight_fn + ) + + def test_center_weight_None(self): + for v in set(nx.center(self.G, weight=None)): + assert pytest.approx(nx.eccentricity(self.G, v, weight=None)) == nx.radius( + self.G, weight=None + ) + + def test_center_weight_attr(self): + center = set(nx.center(self.G, weight="weight")) + assert ( + center + == set(nx.center(self.G, weight="cost")) + != set(nx.center(self.G, weight="high_cost")) + ) + for v in center: + assert ( + nx.eccentricity(self.G, v, weight="high_cost") + != pytest.approx(nx.eccentricity(self.G, v, weight="weight")) + == pytest.approx(nx.eccentricity(self.G, v, weight="cost")) + == nx.radius(self.G, weight="weight") + == nx.radius(self.G, weight="cost") + != nx.radius(self.G, weight="high_cost") + ) + assert nx.eccentricity(self.G, v, weight="high_cost") == nx.radius( + self.G, weight="high_cost" + ) + + def test_center_weight_fn(self): + for v in set(nx.center(self.G, weight=self.weight_fn)): + assert nx.eccentricity(self.G, v, weight=self.weight_fn) == nx.radius( + self.G, weight=self.weight_fn + ) + + def test_bound_diameter_weight_None(self): + assert nx.diameter(self.G, usebounds=True, weight=None) == 3 + + def test_bound_diameter_weight_attr(self): + assert ( + nx.diameter(self.G, usebounds=True, weight="high_cost") + != nx.diameter(self.G, usebounds=True, weight="weight") + == nx.diameter(self.G, usebounds=True, weight="cost") + == 1.6 + != nx.diameter(self.G, usebounds=True, weight="high_cost") + ) + assert nx.diameter(self.G, usebounds=True, weight="high_cost") == nx.diameter( + self.G, usebounds=True, weight="high_cost" + ) + + def test_bound_diameter_weight_fn(self): + assert nx.diameter(self.G, usebounds=True, weight=self.weight_fn) == 6 + + def test_bound_radius_weight_None(self): + assert pytest.approx(nx.radius(self.G, usebounds=True, weight=None)) == 2 + + def test_bound_radius_weight_attr(self): + assert ( + nx.radius(self.G, usebounds=True, weight="high_cost") + != pytest.approx(nx.radius(self.G, usebounds=True, weight="weight")) + == pytest.approx(nx.radius(self.G, usebounds=True, weight="cost")) + == 0.9 + != nx.radius(self.G, usebounds=True, weight="high_cost") + ) + assert nx.radius(self.G, usebounds=True, weight="high_cost") == nx.radius( + self.G, usebounds=True, weight="high_cost" + ) + + def test_bound_radius_weight_fn(self): + assert nx.radius(self.G, usebounds=True, weight=self.weight_fn) == 4 + + def test_bound_periphery_weight_None(self): + result = {1, 3, 4} + assert set(nx.periphery(self.G, usebounds=True, weight=None)) == result + + def test_bound_periphery_weight_attr(self): + result = {4, 5} + assert ( + set(nx.periphery(self.G, usebounds=True, weight="weight")) + == set(nx.periphery(self.G, usebounds=True, weight="cost")) + == result + ) + + def test_bound_periphery_weight_fn(self): + result = {1, 3, 4} + assert ( + set(nx.periphery(self.G, usebounds=True, weight=self.weight_fn)) == result + ) + + def test_bound_center_weight_None(self): + result = {0, 2, 5} + assert set(nx.center(self.G, usebounds=True, weight=None)) == result + + def test_bound_center_weight_attr(self): + result = {0} + assert ( + set(nx.center(self.G, usebounds=True, weight="weight")) + == set(nx.center(self.G, usebounds=True, weight="cost")) + == result + ) + + def test_bound_center_weight_fn(self): + result = {0, 2, 5} + assert set(nx.center(self.G, usebounds=True, weight=self.weight_fn)) == result + + +class TestResistanceDistance: + @classmethod + def setup_class(cls): + global np + np = pytest.importorskip("numpy") + sp = pytest.importorskip("scipy") + + def setup_method(self): + G = nx.Graph() + G.add_edge(1, 2, weight=2) + G.add_edge(2, 3, weight=4) + G.add_edge(3, 4, weight=1) + G.add_edge(1, 4, weight=3) + self.G = G + + def test_resistance_distance_directed_graph(self): + G = nx.DiGraph() + with pytest.raises(nx.NetworkXNotImplemented): + nx.resistance_distance(G) + + def test_resistance_distance_empty(self): + G = nx.Graph() + with pytest.raises(nx.NetworkXError): + nx.resistance_distance(G) + + def test_resistance_distance_not_connected(self): + with pytest.raises(nx.NetworkXError): + self.G.add_node(5) + nx.resistance_distance(self.G, 1, 5) + + def test_resistance_distance_nodeA_not_in_graph(self): + with pytest.raises(nx.NetworkXError): + nx.resistance_distance(self.G, 9, 1) + + def test_resistance_distance_nodeB_not_in_graph(self): + with pytest.raises(nx.NetworkXError): + nx.resistance_distance(self.G, 1, 9) + + def test_resistance_distance(self): + rd = nx.resistance_distance(self.G, 1, 3, "weight", True) + test_data = 1 / (1 / (2 + 4) + 1 / (1 + 3)) + assert round(rd, 5) == round(test_data, 5) + + def test_resistance_distance_noinv(self): + rd = nx.resistance_distance(self.G, 1, 3, "weight", False) + test_data = 1 / (1 / (1 / 2 + 1 / 4) + 1 / (1 / 1 + 1 / 3)) + assert round(rd, 5) == round(test_data, 5) + + def test_resistance_distance_no_weight(self): + rd = nx.resistance_distance(self.G, 1, 3) + assert round(rd, 5) == 1 + + def test_resistance_distance_neg_weight(self): + self.G[2][3]["weight"] = -4 + rd = nx.resistance_distance(self.G, 1, 3, "weight", True) + test_data = 1 / (1 / (2 + -4) + 1 / (1 + 3)) + assert round(rd, 5) == round(test_data, 5) + + def test_multigraph(self): + G = nx.MultiGraph() + G.add_edge(1, 2, weight=2) + G.add_edge(2, 3, weight=4) + G.add_edge(3, 4, weight=1) + G.add_edge(1, 4, weight=3) + rd = nx.resistance_distance(G, 1, 3, "weight", True) + assert np.isclose(rd, 1 / (1 / (2 + 4) + 1 / (1 + 3))) + + def test_resistance_distance_div0(self): + with pytest.raises(ZeroDivisionError): + self.G[1][2]["weight"] = 0 + nx.resistance_distance(self.G, 1, 3, "weight") + + def test_resistance_distance_same_node(self): + assert nx.resistance_distance(self.G, 1, 1) == 0 + + def test_resistance_distance_only_nodeA(self): + rd = nx.resistance_distance(self.G, nodeA=1) + test_data = {} + test_data[1] = 0 + test_data[2] = 0.75 + test_data[3] = 1 + test_data[4] = 0.75 + assert isinstance(rd, dict) + assert sorted(rd.keys()) == sorted(test_data.keys()) + for key in rd: + assert np.isclose(rd[key], test_data[key]) + + def test_resistance_distance_only_nodeB(self): + rd = nx.resistance_distance(self.G, nodeB=1) + test_data = {} + test_data[1] = 0 + test_data[2] = 0.75 + test_data[3] = 1 + test_data[4] = 0.75 + assert isinstance(rd, dict) + assert sorted(rd.keys()) == sorted(test_data.keys()) + for key in rd: + assert np.isclose(rd[key], test_data[key]) + + def test_resistance_distance_all(self): + rd = nx.resistance_distance(self.G) + assert isinstance(rd, dict) + assert round(rd[1][3], 5) == 1 + + +class TestEffectiveGraphResistance: + @classmethod + def setup_class(cls): + global np + np = pytest.importorskip("numpy") + sp = pytest.importorskip("scipy") + + def setup_method(self): + G = nx.Graph() + G.add_edge(1, 2, weight=2) + G.add_edge(1, 3, weight=1) + G.add_edge(2, 3, weight=4) + self.G = G + + def test_effective_graph_resistance_directed_graph(self): + G = nx.DiGraph() + with pytest.raises(nx.NetworkXNotImplemented): + nx.effective_graph_resistance(G) + + def test_effective_graph_resistance_empty(self): + G = nx.Graph() + with pytest.raises(nx.NetworkXError): + nx.effective_graph_resistance(G) + + def test_effective_graph_resistance_not_connected(self): + G = nx.Graph([(1, 2), (3, 4)]) + RG = nx.effective_graph_resistance(G) + assert np.isinf(RG) + + def test_effective_graph_resistance(self): + RG = nx.effective_graph_resistance(self.G, "weight", True) + rd12 = 1 / (1 / (1 + 4) + 1 / 2) + rd13 = 1 / (1 / (1 + 2) + 1 / 4) + rd23 = 1 / (1 / (2 + 4) + 1 / 1) + assert np.isclose(RG, rd12 + rd13 + rd23) + + def test_effective_graph_resistance_noinv(self): + RG = nx.effective_graph_resistance(self.G, "weight", False) + rd12 = 1 / (1 / (1 / 1 + 1 / 4) + 1 / (1 / 2)) + rd13 = 1 / (1 / (1 / 1 + 1 / 2) + 1 / (1 / 4)) + rd23 = 1 / (1 / (1 / 2 + 1 / 4) + 1 / (1 / 1)) + assert np.isclose(RG, rd12 + rd13 + rd23) + + def test_effective_graph_resistance_no_weight(self): + RG = nx.effective_graph_resistance(self.G) + assert np.isclose(RG, 2) + + def test_effective_graph_resistance_neg_weight(self): + self.G[2][3]["weight"] = -4 + RG = nx.effective_graph_resistance(self.G, "weight", True) + rd12 = 1 / (1 / (1 + -4) + 1 / 2) + rd13 = 1 / (1 / (1 + 2) + 1 / (-4)) + rd23 = 1 / (1 / (2 + -4) + 1 / 1) + assert np.isclose(RG, rd12 + rd13 + rd23) + + def test_effective_graph_resistance_multigraph(self): + G = nx.MultiGraph() + G.add_edge(1, 2, weight=2) + G.add_edge(1, 3, weight=1) + G.add_edge(2, 3, weight=1) + G.add_edge(2, 3, weight=3) + RG = nx.effective_graph_resistance(G, "weight", True) + edge23 = 1 / (1 / 1 + 1 / 3) + rd12 = 1 / (1 / (1 + edge23) + 1 / 2) + rd13 = 1 / (1 / (1 + 2) + 1 / edge23) + rd23 = 1 / (1 / (2 + edge23) + 1 / 1) + assert np.isclose(RG, rd12 + rd13 + rd23) + + def test_effective_graph_resistance_div0(self): + with pytest.raises(ZeroDivisionError): + self.G[1][2]["weight"] = 0 + nx.effective_graph_resistance(self.G, "weight") + + def test_effective_graph_resistance_complete_graph(self): + N = 10 + G = nx.complete_graph(N) + RG = nx.effective_graph_resistance(G) + assert np.isclose(RG, N - 1) + + def test_effective_graph_resistance_path_graph(self): + N = 10 + G = nx.path_graph(N) + RG = nx.effective_graph_resistance(G) + assert np.isclose(RG, (N - 1) * N * (N + 1) // 6) + + +class TestBarycenter: + """Test :func:`networkx.algorithms.distance_measures.barycenter`.""" + + def barycenter_as_subgraph(self, g, **kwargs): + """Return the subgraph induced on the barycenter of g""" + b = nx.barycenter(g, **kwargs) + assert isinstance(b, list) + assert set(b) <= set(g) + return g.subgraph(b) + + def test_must_be_connected(self): + pytest.raises(nx.NetworkXNoPath, nx.barycenter, nx.empty_graph(5)) + + def test_sp_kwarg(self): + # Complete graph K_5. Normally it works... + K_5 = nx.complete_graph(5) + sp = dict(nx.shortest_path_length(K_5)) + assert nx.barycenter(K_5, sp=sp) == list(K_5) + + # ...but not with the weight argument + for u, v, data in K_5.edges.data(): + data["weight"] = 1 + pytest.raises(ValueError, nx.barycenter, K_5, sp=sp, weight="weight") + + # ...and a corrupted sp can make it seem like K_5 is disconnected + del sp[0][1] + pytest.raises(nx.NetworkXNoPath, nx.barycenter, K_5, sp=sp) + + def test_trees(self): + """The barycenter of a tree is a single vertex or an edge. + + See [West01]_, p. 78. + """ + prng = Random(0xDEADBEEF) + for i in range(50): + RT = nx.random_labeled_tree(prng.randint(1, 75), seed=prng) + b = self.barycenter_as_subgraph(RT) + if len(b) == 2: + assert b.size() == 1 + else: + assert len(b) == 1 + assert b.size() == 0 + + def test_this_one_specific_tree(self): + """Test the tree pictured at the bottom of [West01]_, p. 78.""" + g = nx.Graph( + { + "a": ["b"], + "b": ["a", "x"], + "x": ["b", "y"], + "y": ["x", "z"], + "z": ["y", 0, 1, 2, 3, 4], + 0: ["z"], + 1: ["z"], + 2: ["z"], + 3: ["z"], + 4: ["z"], + } + ) + b = self.barycenter_as_subgraph(g, attr="barycentricity") + assert list(b) == ["z"] + assert not b.edges + expected_barycentricity = { + 0: 23, + 1: 23, + 2: 23, + 3: 23, + 4: 23, + "a": 35, + "b": 27, + "x": 21, + "y": 17, + "z": 15, + } + for node, barycentricity in expected_barycentricity.items(): + assert g.nodes[node]["barycentricity"] == barycentricity + + # Doubling weights should do nothing but double the barycentricities + for edge in g.edges: + g.edges[edge]["weight"] = 2 + b = self.barycenter_as_subgraph(g, weight="weight", attr="barycentricity2") + assert list(b) == ["z"] + assert not b.edges + for node, barycentricity in expected_barycentricity.items(): + assert g.nodes[node]["barycentricity2"] == barycentricity * 2 + + +class TestKemenyConstant: + @classmethod + def setup_class(cls): + global np + np = pytest.importorskip("numpy") + sp = pytest.importorskip("scipy") + + def setup_method(self): + G = nx.Graph() + w12 = 2 + w13 = 3 + w23 = 4 + G.add_edge(1, 2, weight=w12) + G.add_edge(1, 3, weight=w13) + G.add_edge(2, 3, weight=w23) + self.G = G + + def test_kemeny_constant_directed(self): + G = nx.DiGraph() + G.add_edge(1, 2) + G.add_edge(1, 3) + G.add_edge(2, 3) + with pytest.raises(nx.NetworkXNotImplemented): + nx.kemeny_constant(G) + + def test_kemeny_constant_not_connected(self): + self.G.add_node(5) + with pytest.raises(nx.NetworkXError): + nx.kemeny_constant(self.G) + + def test_kemeny_constant_no_nodes(self): + G = nx.Graph() + with pytest.raises(nx.NetworkXError): + nx.kemeny_constant(G) + + def test_kemeny_constant_negative_weight(self): + G = nx.Graph() + w12 = 2 + w13 = 3 + w23 = -10 + G.add_edge(1, 2, weight=w12) + G.add_edge(1, 3, weight=w13) + G.add_edge(2, 3, weight=w23) + with pytest.raises(nx.NetworkXError): + nx.kemeny_constant(G, weight="weight") + + def test_kemeny_constant(self): + K = nx.kemeny_constant(self.G, weight="weight") + w12 = 2 + w13 = 3 + w23 = 4 + test_data = ( + 3 + / 2 + * (w12 + w13) + * (w12 + w23) + * (w13 + w23) + / ( + w12**2 * (w13 + w23) + + w13**2 * (w12 + w23) + + w23**2 * (w12 + w13) + + 3 * w12 * w13 * w23 + ) + ) + assert np.isclose(K, test_data) + + def test_kemeny_constant_no_weight(self): + K = nx.kemeny_constant(self.G) + assert np.isclose(K, 4 / 3) + + def test_kemeny_constant_multigraph(self): + G = nx.MultiGraph() + w12_1 = 2 + w12_2 = 1 + w13 = 3 + w23 = 4 + G.add_edge(1, 2, weight=w12_1) + G.add_edge(1, 2, weight=w12_2) + G.add_edge(1, 3, weight=w13) + G.add_edge(2, 3, weight=w23) + K = nx.kemeny_constant(G, weight="weight") + w12 = w12_1 + w12_2 + test_data = ( + 3 + / 2 + * (w12 + w13) + * (w12 + w23) + * (w13 + w23) + / ( + w12**2 * (w13 + w23) + + w13**2 * (w12 + w23) + + w23**2 * (w12 + w13) + + 3 * w12 * w13 * w23 + ) + ) + assert np.isclose(K, test_data) + + def test_kemeny_constant_weight0(self): + G = nx.Graph() + w12 = 0 + w13 = 3 + w23 = 4 + G.add_edge(1, 2, weight=w12) + G.add_edge(1, 3, weight=w13) + G.add_edge(2, 3, weight=w23) + K = nx.kemeny_constant(G, weight="weight") + test_data = ( + 3 + / 2 + * (w12 + w13) + * (w12 + w23) + * (w13 + w23) + / ( + w12**2 * (w13 + w23) + + w13**2 * (w12 + w23) + + w23**2 * (w12 + w13) + + 3 * w12 * w13 * w23 + ) + ) + assert np.isclose(K, test_data) + + def test_kemeny_constant_selfloop(self): + G = nx.Graph() + w11 = 1 + w12 = 2 + w13 = 3 + w23 = 4 + G.add_edge(1, 1, weight=w11) + G.add_edge(1, 2, weight=w12) + G.add_edge(1, 3, weight=w13) + G.add_edge(2, 3, weight=w23) + K = nx.kemeny_constant(G, weight="weight") + test_data = ( + (2 * w11 + 3 * w12 + 3 * w13) + * (w12 + w23) + * (w13 + w23) + / ( + (w12 * w13 + w12 * w23 + w13 * w23) + * (w11 + 2 * w12 + 2 * w13 + 2 * w23) + ) + ) + assert np.isclose(K, test_data) + + def test_kemeny_constant_complete_bipartite_graph(self): + # Theorem 1 in https://www.sciencedirect.com/science/article/pii/S0166218X20302912 + n1 = 5 + n2 = 4 + G = nx.complete_bipartite_graph(n1, n2) + K = nx.kemeny_constant(G) + assert np.isclose(K, n1 + n2 - 3 / 2) + + def test_kemeny_constant_path_graph(self): + # Theorem 2 in https://www.sciencedirect.com/science/article/pii/S0166218X20302912 + n = 10 + G = nx.path_graph(n) + K = nx.kemeny_constant(G) + assert np.isclose(K, n**2 / 3 - 2 * n / 3 + 1 / 2) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_distance_regular.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_distance_regular.py new file mode 100644 index 0000000000000000000000000000000000000000..545fb6dee6a915230971cf4b5a141e47adc2cc15 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_distance_regular.py @@ -0,0 +1,85 @@ +import pytest + +import networkx as nx +from networkx import is_strongly_regular + + +@pytest.mark.parametrize( + "f", (nx.is_distance_regular, nx.intersection_array, nx.is_strongly_regular) +) +@pytest.mark.parametrize("graph_constructor", (nx.DiGraph, nx.MultiGraph)) +def test_raises_on_directed_and_multigraphs(f, graph_constructor): + G = graph_constructor([(0, 1), (1, 2)]) + with pytest.raises(nx.NetworkXNotImplemented): + f(G) + + +class TestDistanceRegular: + def test_is_distance_regular(self): + assert nx.is_distance_regular(nx.icosahedral_graph()) + assert nx.is_distance_regular(nx.petersen_graph()) + assert nx.is_distance_regular(nx.cubical_graph()) + assert nx.is_distance_regular(nx.complete_bipartite_graph(3, 3)) + assert nx.is_distance_regular(nx.tetrahedral_graph()) + assert nx.is_distance_regular(nx.dodecahedral_graph()) + assert nx.is_distance_regular(nx.pappus_graph()) + assert nx.is_distance_regular(nx.heawood_graph()) + assert nx.is_distance_regular(nx.cycle_graph(3)) + # no distance regular + assert not nx.is_distance_regular(nx.path_graph(4)) + + def test_not_connected(self): + G = nx.cycle_graph(4) + nx.add_cycle(G, [5, 6, 7]) + assert not nx.is_distance_regular(G) + + def test_global_parameters(self): + b, c = nx.intersection_array(nx.cycle_graph(5)) + g = nx.global_parameters(b, c) + assert list(g) == [(0, 0, 2), (1, 0, 1), (1, 1, 0)] + b, c = nx.intersection_array(nx.cycle_graph(3)) + g = nx.global_parameters(b, c) + assert list(g) == [(0, 0, 2), (1, 1, 0)] + + def test_intersection_array(self): + b, c = nx.intersection_array(nx.cycle_graph(5)) + assert b == [2, 1] + assert c == [1, 1] + b, c = nx.intersection_array(nx.dodecahedral_graph()) + assert b == [3, 2, 1, 1, 1] + assert c == [1, 1, 1, 2, 3] + b, c = nx.intersection_array(nx.icosahedral_graph()) + assert b == [5, 2, 1] + assert c == [1, 2, 5] + + +@pytest.mark.parametrize("f", (nx.is_distance_regular, nx.is_strongly_regular)) +def test_empty_graph_raises(f): + G = nx.Graph() + with pytest.raises(nx.NetworkXPointlessConcept, match="Graph has no nodes"): + f(G) + + +class TestStronglyRegular: + """Unit tests for the :func:`~networkx.is_strongly_regular` + function. + + """ + + def test_cycle_graph(self): + """Tests that the cycle graph on five vertices is strongly + regular. + + """ + G = nx.cycle_graph(5) + assert is_strongly_regular(G) + + def test_petersen_graph(self): + """Tests that the Petersen graph is strongly regular.""" + G = nx.petersen_graph() + assert is_strongly_regular(G) + + def test_path_graph(self): + """Tests that the path graph is not strongly regular.""" + G = nx.path_graph(4) + assert not is_strongly_regular(G) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_dominance.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_dominance.py new file mode 100644 index 0000000000000000000000000000000000000000..480b3a5c841af11b807ba533ae9f809eb1e52672 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_dominance.py @@ -0,0 +1,299 @@ +import pytest + +import networkx as nx + + +class TestImmediateDominators: + @pytest.mark.parametrize("G", [nx.Graph(), nx.MultiGraph()]) + def test_raises_undirected(self, G): + """Check that `immediate_dominators` raises for undirected graphs.""" + with pytest.raises( + nx.NetworkXNotImplemented, match=r"not implemented for undirected" + ): + nx.immediate_dominators(G, 0) + + def test_raises_node(self): + """Check that `immediate_dominators` raises when `start` is not in the graph.""" + G = nx.empty_graph(1, create_using=nx.DiGraph) + with pytest.raises(nx.NetworkXError, match=r"not in G"): + nx.immediate_dominators(G, 1) + + def test_singleton(self): + G = nx.DiGraph() + G.add_node(0) + assert nx.immediate_dominators(G, 0) == {} + G.add_edge(0, 0) + assert nx.immediate_dominators(G, 0) == {} + + @pytest.mark.parametrize("gen", [nx.path_graph, nx.cycle_graph]) + @pytest.mark.parametrize("n", [5, 10, 20]) + def test_path_and_cycle(self, gen, n): + """Check `immediate_dominators` is correct for path and cycle graphs.""" + G = gen(n, create_using=nx.DiGraph()) + idom = nx.immediate_dominators(G, 0) + assert idom == {i: i - 1 for i in range(1, n)} + + def test_unreachable(self): + n = 5 + G = nx.path_graph(n, create_using=nx.DiGraph()) + idom = nx.immediate_dominators(G, 1) + assert idom == {i: i - 1 for i in range(2, n)} + + @pytest.mark.parametrize( + ["edgelist", "start"], + [ + ([(1, 2), (2, 1), (3, 2), (4, 1), (5, 3), (5, 4)], 5), + ( + [ + (1, 2), + (2, 1), + (2, 3), + (3, 2), + (4, 2), + (4, 3), + (5, 1), + (6, 4), + (6, 5), + ], + 6, + ), + ], + ) + def test_irreducible(self, edgelist, start): + """ + Check `immediate_dominators` on irreducible reference graphs. + + Graphs taken from figures 2 and 4 of "A simple, fast dominance algorithm." (2006). + https://hdl.handle.net/1911/96345 + """ + G = nx.DiGraph(edgelist) + idom = nx.immediate_dominators(G, start) + assert idom == dict.fromkeys(range(1, start), start) + + def test_domrel_png(self): + # Graph taken from https://commons.wikipedia.org/wiki/File:Domrel.png + edges = [(1, 2), (2, 3), (2, 4), (2, 6), (3, 5), (4, 5), (5, 2)] + G = nx.DiGraph(edges) + result = nx.immediate_dominators(G, 1) + assert result == {2: 1, 3: 2, 4: 2, 5: 2, 6: 2} + # Test postdominance. + result = nx.immediate_dominators(G.reverse(copy=False), 6) + assert result == {1: 2, 2: 6, 3: 5, 4: 5, 5: 2} + + def test_boost_example(self): + # Graph taken from Figure 1 of + # http://www.boost.org/doc/libs/1_56_0/libs/graph/doc/lengauer_tarjan_dominator.htm + edges = [(0, 1), (1, 2), (1, 3), (2, 7), (3, 4), (4, 5), (4, 6), (5, 7), (6, 4)] + G = nx.DiGraph(edges) + result = nx.immediate_dominators(G, 0) + assert result == {1: 0, 2: 1, 3: 1, 4: 3, 5: 4, 6: 4, 7: 1} + # Test postdominance. + result = nx.immediate_dominators(G.reverse(copy=False), 7) + assert result == {0: 1, 1: 7, 2: 7, 3: 4, 4: 5, 5: 7, 6: 4} + + +class TestDominanceFrontiers: + @pytest.mark.parametrize("G", [nx.Graph(), nx.MultiGraph()]) + def test_raises_undirected(self, G): + """Check that `dominance_frontiers` raises for undirected graphs.""" + with pytest.raises( + nx.NetworkXNotImplemented, match=r"not implemented for undirected" + ): + nx.dominance_frontiers(G, 0) + + def test_raises_node(self): + """Check that `dominance_frontiers` raises when `start` is not in the graph.""" + G = nx.empty_graph(1, create_using=nx.DiGraph) + with pytest.raises(nx.NetworkXError, match=r"not in G"): + nx.dominance_frontiers(G, 1) + + def test_singleton(self): + G = nx.DiGraph() + G.add_node(0) + assert nx.dominance_frontiers(G, 0) == {0: set()} + G.add_edge(0, 0) + assert nx.dominance_frontiers(G, 0) == {0: {0}} + + @pytest.mark.parametrize("gen, df", [(nx.path_graph, set()), (nx.cycle_graph, {0})]) + @pytest.mark.parametrize("n", [5, 10, 20]) + def test_path_and_cycle(self, gen, df, n): + """Check that `dominance_frontiers` is correct for path and cycle graphs.""" + G = gen(n, create_using=nx.DiGraph()) + assert nx.dominance_frontiers(G, 0) == dict.fromkeys(range(n), df) + + def test_unreachable(self): + n = 5 + G = nx.path_graph(n, create_using=nx.DiGraph()) + assert nx.dominance_frontiers(G, 1) == dict.fromkeys(range(1, n), set()) + + def test_irreducible1(self): + """ + Graph taken from figure 2 of "A simple, fast dominance algorithm." (2006). + https://hdl.handle.net/1911/96345 + """ + edges = [(1, 2), (2, 1), (3, 2), (4, 1), (5, 3), (5, 4)] + G = nx.DiGraph(edges) + assert nx.dominance_frontiers(G, 5) == { + 1: {2}, + 2: {1}, + 3: {2}, + 4: {1}, + 5: set(), + } + + def test_irreducible2(self): + """ + Graph taken from figure 4 of "A simple, fast dominance algorithm." (2006). + https://hdl.handle.net/1911/96345 + """ + edges = [(1, 2), (2, 1), (2, 3), (3, 2), (4, 2), (4, 3), (5, 1), (6, 4), (6, 5)] + G = nx.DiGraph(edges) + assert nx.dominance_frontiers(G, 6) == { + 1: {2}, + 2: {1, 3}, + 3: {2}, + 4: {2, 3}, + 5: {1}, + 6: set(), + } + + def test_domrel_png(self): + # Graph taken from https://commons.wikipedia.org/wiki/File:Domrel.png + edges = [(1, 2), (2, 3), (2, 4), (2, 6), (3, 5), (4, 5), (5, 2)] + G = nx.DiGraph(edges) + assert nx.dominance_frontiers(G, 1) == { + 1: set(), + 2: {2}, + 3: {5}, + 4: {5}, + 5: {2}, + 6: set(), + } + # Test postdominance. + result = nx.dominance_frontiers(G.reverse(copy=False), 6) + assert result == {1: set(), 2: {2}, 3: {2}, 4: {2}, 5: {2}, 6: set()} + + def test_boost_example(self): + # Graph taken from Figure 1 of + # http://www.boost.org/doc/libs/1_56_0/libs/graph/doc/lengauer_tarjan_dominator.htm + edges = [(0, 1), (1, 2), (1, 3), (2, 7), (3, 4), (4, 5), (4, 6), (5, 7), (6, 4)] + G = nx.DiGraph(edges) + assert nx.dominance_frontiers(G, 0) == { + 0: set(), + 1: set(), + 2: {7}, + 3: {7}, + 4: {4, 7}, + 5: {7}, + 6: {4}, + 7: set(), + } + # Test postdominance. + result = nx.dominance_frontiers(G.reverse(copy=False), 7) + expected = { + 0: set(), + 1: set(), + 2: {1}, + 3: {1}, + 4: {1, 4}, + 5: {1}, + 6: {4}, + 7: set(), + } + assert result == expected + + def test_discard_issue(self): + # https://github.com/networkx/networkx/issues/2071 + g = nx.DiGraph() + g.add_edges_from( + [ + ("b0", "b1"), + ("b1", "b2"), + ("b2", "b3"), + ("b3", "b1"), + ("b1", "b5"), + ("b5", "b6"), + ("b5", "b8"), + ("b6", "b7"), + ("b8", "b7"), + ("b7", "b3"), + ("b3", "b4"), + ] + ) + df = nx.dominance_frontiers(g, "b0") + assert df == { + "b4": set(), + "b5": {"b3"}, + "b6": {"b7"}, + "b7": {"b3"}, + "b0": set(), + "b1": {"b1"}, + "b2": {"b3"}, + "b3": {"b1"}, + "b8": {"b7"}, + } + + def test_loop(self): + g = nx.DiGraph() + g.add_edges_from([("a", "b"), ("b", "c"), ("b", "a")]) + df = nx.dominance_frontiers(g, "a") + assert df == {"a": {"a"}, "b": {"a"}, "c": set()} + + def test_missing_immediate_doms(self): + # see https://github.com/networkx/networkx/issues/2070 + g = nx.DiGraph() + edges = [ + ("entry_1", "b1"), + ("b1", "b2"), + ("b2", "b3"), + ("b3", "exit"), + ("entry_2", "b3"), + ] + + # entry_1 + # | + # b1 + # | + # b2 entry_2 + # | / + # b3 + # | + # exit + + g.add_edges_from(edges) + # formerly raised KeyError on entry_2 when parsing b3 + # because entry_2 does not have immediate doms (no path) + nx.dominance_frontiers(g, "entry_1") + + def test_loops_larger(self): + # from + # http://ecee.colorado.edu/~waite/Darmstadt/motion.html + g = nx.DiGraph() + edges = [ + ("entry", "exit"), + ("entry", "1"), + ("1", "2"), + ("2", "3"), + ("3", "4"), + ("4", "5"), + ("5", "6"), + ("6", "exit"), + ("6", "2"), + ("5", "3"), + ("4", "4"), + ] + + g.add_edges_from(edges) + df = nx.dominance_frontiers(g, "entry") + answer = { + "entry": set(), + "1": {"exit"}, + "2": {"exit", "2"}, + "3": {"exit", "3", "2"}, + "4": {"exit", "4", "3", "2"}, + "5": {"exit", "3", "2"}, + "6": {"exit", "2"}, + "exit": set(), + } + for n in df: + assert set(df[n]) == set(answer[n]) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_dominating.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_dominating.py new file mode 100644 index 0000000000000000000000000000000000000000..5f51777c72c7d4b9cc22e77a6aa6f470200b66a7 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_dominating.py @@ -0,0 +1,115 @@ +import pytest + +import networkx as nx + + +def test_dominating_set(): + G = nx.gnp_random_graph(100, 0.1) + D = nx.dominating_set(G) + assert nx.is_dominating_set(G, D) + D = nx.dominating_set(G, start_with=0) + assert nx.is_dominating_set(G, D) + + +def test_complete(): + """In complete graphs each node is a dominating set. + Thus the dominating set has to be of cardinality 1. + """ + K4 = nx.complete_graph(4) + assert len(nx.dominating_set(K4)) == 1 + K5 = nx.complete_graph(5) + assert len(nx.dominating_set(K5)) == 1 + + +def test_raise_dominating_set(): + with pytest.raises(nx.NetworkXError): + G = nx.path_graph(4) + D = nx.dominating_set(G, start_with=10) + + +def test_is_dominating_set(): + G = nx.path_graph(4) + d = {1, 3} + assert nx.is_dominating_set(G, d) + d = {0, 2} + assert nx.is_dominating_set(G, d) + d = {1} + assert not nx.is_dominating_set(G, d) + + +def test_wikipedia_is_dominating_set(): + """Example from https://en.wikipedia.org/wiki/Dominating_set""" + G = nx.cycle_graph(4) + G.add_edges_from([(0, 4), (1, 4), (2, 5)]) + assert nx.is_dominating_set(G, {4, 3, 5}) + assert nx.is_dominating_set(G, {0, 2}) + assert nx.is_dominating_set(G, {1, 2}) + + +def test_is_connected_dominating_set(): + G = nx.path_graph(4) + D = {1, 2} + assert nx.is_connected_dominating_set(G, D) + D = {1, 3} + assert not nx.is_connected_dominating_set(G, D) + D = {2, 3} + assert nx.is_connected(nx.subgraph(G, D)) + assert not nx.is_connected_dominating_set(G, D) + + +def test_null_graph_connected_dominating_set(): + G = nx.Graph() + assert 0 == len(nx.connected_dominating_set(G)) + + +def test_single_node_graph_connected_dominating_set(): + G = nx.Graph() + G.add_node(1) + CD = nx.connected_dominating_set(G) + assert nx.is_connected_dominating_set(G, CD) + + +def test_raise_disconnected_graph_connected_dominating_set(): + with pytest.raises(nx.NetworkXError): + G = nx.Graph() + G.add_node(1) + G.add_node(2) + nx.connected_dominating_set(G) + + +def test_complete_graph_connected_dominating_set(): + K5 = nx.complete_graph(5) + assert 1 == len(nx.connected_dominating_set(K5)) + K7 = nx.complete_graph(7) + assert 1 == len(nx.connected_dominating_set(K7)) + + +def test_docstring_example_connected_dominating_set(): + G = nx.Graph( + [ + (1, 2), + (1, 3), + (1, 4), + (1, 5), + (1, 6), + (2, 7), + (3, 8), + (4, 9), + (5, 10), + (6, 11), + (7, 12), + (8, 12), + (9, 12), + (10, 12), + (11, 12), + ] + ) + assert {1, 2, 3, 4, 5, 6, 7} == nx.connected_dominating_set(G) + + +@pytest.mark.parametrize("seed", [1, 13, 29]) +@pytest.mark.parametrize("n,k,p", [(10, 3, 0.2), (100, 10, 0.7), (1000, 50, 0.5)]) +def test_connected_watts_strogatz_graph_connected_dominating_set(n, k, p, seed): + G = nx.connected_watts_strogatz_graph(n, k, p, seed=seed) + D = nx.connected_dominating_set(G) + assert nx.is_connected_dominating_set(G, D) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_efficiency.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_efficiency.py new file mode 100644 index 0000000000000000000000000000000000000000..9a2e7d0463b3a0abeb8395df4ab870456faa64b7 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_efficiency.py @@ -0,0 +1,58 @@ +"""Unit tests for the :mod:`networkx.algorithms.efficiency` module.""" + +import networkx as nx + + +class TestEfficiency: + def setup_method(self): + # G1 is a disconnected graph + self.G1 = nx.Graph() + self.G1.add_nodes_from([1, 2, 3]) + # G2 is a cycle graph + self.G2 = nx.cycle_graph(4) + # G3 is the triangle graph with one additional edge + self.G3 = nx.lollipop_graph(3, 1) + + def test_efficiency_disconnected_nodes(self): + """ + When nodes are disconnected, efficiency is 0 + """ + assert nx.efficiency(self.G1, 1, 2) == 0 + + def test_local_efficiency_disconnected_graph(self): + """ + In a disconnected graph the efficiency is 0 + """ + assert nx.local_efficiency(self.G1) == 0 + + def test_efficiency(self): + assert nx.efficiency(self.G2, 0, 1) == 1 + assert nx.efficiency(self.G2, 0, 2) == 1 / 2 + + def test_global_efficiency(self): + assert nx.global_efficiency(self.G2) == 5 / 6 + + def test_global_efficiency_complete_graph(self): + """ + Tests that the average global efficiency of the complete graph is one. + """ + for n in range(2, 10): + G = nx.complete_graph(n) + assert nx.global_efficiency(G) == 1 + + def test_local_efficiency_complete_graph(self): + """ + Test that the local efficiency for a complete graph with at least 3 + nodes should be one. For a graph with only 2 nodes, the induced + subgraph has no edges. + """ + for n in range(3, 10): + G = nx.complete_graph(n) + assert nx.local_efficiency(G) == 1 + + def test_using_ego_graph(self): + """ + Test that the ego graph is used when computing local efficiency. + For more information, see GitHub issue #2710. + """ + assert nx.local_efficiency(self.G3) == 7 / 12 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_euler.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_euler.py new file mode 100644 index 0000000000000000000000000000000000000000..b5871f09b5a309df2bb00d9945ca9cf662e6f656 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_euler.py @@ -0,0 +1,314 @@ +import collections + +import pytest + +import networkx as nx + + +@pytest.mark.parametrize("f", (nx.is_eulerian, nx.is_semieulerian)) +def test_empty_graph_raises(f): + G = nx.Graph() + with pytest.raises(nx.NetworkXPointlessConcept, match="Connectivity is undefined"): + f(G) + + +class TestIsEulerian: + def test_is_eulerian(self): + assert nx.is_eulerian(nx.complete_graph(5)) + assert nx.is_eulerian(nx.complete_graph(7)) + assert nx.is_eulerian(nx.hypercube_graph(4)) + assert nx.is_eulerian(nx.hypercube_graph(6)) + + assert not nx.is_eulerian(nx.complete_graph(4)) + assert not nx.is_eulerian(nx.complete_graph(6)) + assert not nx.is_eulerian(nx.hypercube_graph(3)) + assert not nx.is_eulerian(nx.hypercube_graph(5)) + + assert not nx.is_eulerian(nx.petersen_graph()) + assert not nx.is_eulerian(nx.path_graph(4)) + + def test_is_eulerian2(self): + # not connected + G = nx.Graph() + G.add_nodes_from([1, 2, 3]) + assert not nx.is_eulerian(G) + # not strongly connected + G = nx.DiGraph() + G.add_nodes_from([1, 2, 3]) + assert not nx.is_eulerian(G) + G = nx.MultiDiGraph() + G.add_edge(1, 2) + G.add_edge(2, 3) + G.add_edge(2, 3) + G.add_edge(3, 1) + assert not nx.is_eulerian(G) + + +class TestEulerianCircuit: + def test_eulerian_circuit_cycle(self): + G = nx.cycle_graph(4) + + edges = list(nx.eulerian_circuit(G, source=0)) + nodes = [u for u, v in edges] + assert nodes == [0, 3, 2, 1] + assert edges == [(0, 3), (3, 2), (2, 1), (1, 0)] + + edges = list(nx.eulerian_circuit(G, source=1)) + nodes = [u for u, v in edges] + assert nodes == [1, 2, 3, 0] + assert edges == [(1, 2), (2, 3), (3, 0), (0, 1)] + + G = nx.complete_graph(3) + + edges = list(nx.eulerian_circuit(G, source=0)) + nodes = [u for u, v in edges] + assert nodes == [0, 2, 1] + assert edges == [(0, 2), (2, 1), (1, 0)] + + edges = list(nx.eulerian_circuit(G, source=1)) + nodes = [u for u, v in edges] + assert nodes == [1, 2, 0] + assert edges == [(1, 2), (2, 0), (0, 1)] + + def test_eulerian_circuit_digraph(self): + G = nx.DiGraph() + nx.add_cycle(G, [0, 1, 2, 3]) + + edges = list(nx.eulerian_circuit(G, source=0)) + nodes = [u for u, v in edges] + assert nodes == [0, 1, 2, 3] + assert edges == [(0, 1), (1, 2), (2, 3), (3, 0)] + + edges = list(nx.eulerian_circuit(G, source=1)) + nodes = [u for u, v in edges] + assert nodes == [1, 2, 3, 0] + assert edges == [(1, 2), (2, 3), (3, 0), (0, 1)] + + def test_multigraph(self): + G = nx.MultiGraph() + nx.add_cycle(G, [0, 1, 2, 3]) + G.add_edge(1, 2) + G.add_edge(1, 2) + edges = list(nx.eulerian_circuit(G, source=0)) + nodes = [u for u, v in edges] + assert nodes == [0, 3, 2, 1, 2, 1] + assert edges == [(0, 3), (3, 2), (2, 1), (1, 2), (2, 1), (1, 0)] + + def test_multigraph_with_keys(self): + G = nx.MultiGraph() + nx.add_cycle(G, [0, 1, 2, 3]) + G.add_edge(1, 2) + G.add_edge(1, 2) + edges = list(nx.eulerian_circuit(G, source=0, keys=True)) + nodes = [u for u, v, k in edges] + assert nodes == [0, 3, 2, 1, 2, 1] + assert edges[:2] == [(0, 3, 0), (3, 2, 0)] + assert collections.Counter(edges[2:5]) == collections.Counter( + [(2, 1, 0), (1, 2, 1), (2, 1, 2)] + ) + assert edges[5:] == [(1, 0, 0)] + + def test_not_eulerian(self): + with pytest.raises(nx.NetworkXError): + f = list(nx.eulerian_circuit(nx.complete_graph(4))) + + +class TestIsSemiEulerian: + def test_is_semieulerian(self): + # Test graphs with Eulerian paths but no cycles return True. + assert nx.is_semieulerian(nx.path_graph(4)) + G = nx.path_graph(6, create_using=nx.DiGraph) + assert nx.is_semieulerian(G) + + # Test graphs with Eulerian cycles return False. + assert not nx.is_semieulerian(nx.complete_graph(5)) + assert not nx.is_semieulerian(nx.complete_graph(7)) + assert not nx.is_semieulerian(nx.hypercube_graph(4)) + assert not nx.is_semieulerian(nx.hypercube_graph(6)) + + +class TestHasEulerianPath: + def test_has_eulerian_path_cyclic(self): + # Test graphs with Eulerian cycles return True. + assert nx.has_eulerian_path(nx.complete_graph(5)) + assert nx.has_eulerian_path(nx.complete_graph(7)) + assert nx.has_eulerian_path(nx.hypercube_graph(4)) + assert nx.has_eulerian_path(nx.hypercube_graph(6)) + + def test_has_eulerian_path_non_cyclic(self): + # Test graphs with Eulerian paths but no cycles return True. + assert nx.has_eulerian_path(nx.path_graph(4)) + G = nx.path_graph(6, create_using=nx.DiGraph) + assert nx.has_eulerian_path(G) + + def test_has_eulerian_path_directed_graph(self): + # Test directed graphs and returns False + G = nx.DiGraph() + G.add_edges_from([(0, 1), (1, 2), (0, 2)]) + assert not nx.has_eulerian_path(G) + + # Test directed graphs without isolated node returns True + G = nx.DiGraph() + G.add_edges_from([(0, 1), (1, 2), (2, 0)]) + assert nx.has_eulerian_path(G) + + # Test directed graphs with isolated node returns False + G.add_node(3) + assert not nx.has_eulerian_path(G) + + @pytest.mark.parametrize("G", (nx.Graph(), nx.DiGraph())) + def test_has_eulerian_path_not_weakly_connected(self, G): + G.add_edges_from([(0, 1), (2, 3), (3, 2)]) + assert not nx.has_eulerian_path(G) + + @pytest.mark.parametrize("G", (nx.Graph(), nx.DiGraph())) + def test_has_eulerian_path_unbalancedins_more_than_one(self, G): + G.add_edges_from([(0, 1), (2, 3)]) + assert not nx.has_eulerian_path(G) + + +class TestFindPathStart: + def testfind_path_start(self): + find_path_start = nx.algorithms.euler._find_path_start + # Test digraphs return correct starting node. + G = nx.path_graph(6, create_using=nx.DiGraph) + assert find_path_start(G) == 0 + edges = [(0, 1), (1, 2), (2, 0), (4, 0)] + assert find_path_start(nx.DiGraph(edges)) == 4 + + # Test graph with no Eulerian path return None. + edges = [(0, 1), (1, 2), (2, 3), (2, 4)] + assert find_path_start(nx.DiGraph(edges)) is None + + +class TestEulerianPath: + def test_eulerian_path(self): + x = [(4, 0), (0, 1), (1, 2), (2, 0)] + for e1, e2 in zip(x, nx.eulerian_path(nx.DiGraph(x))): + assert e1 == e2 + + def test_eulerian_path_straight_link(self): + G = nx.DiGraph() + result = [(1, 2), (2, 3), (3, 4), (4, 5)] + G.add_edges_from(result) + assert result == list(nx.eulerian_path(G)) + assert result == list(nx.eulerian_path(G, source=1)) + with pytest.raises(nx.NetworkXError): + list(nx.eulerian_path(G, source=3)) + with pytest.raises(nx.NetworkXError): + list(nx.eulerian_path(G, source=4)) + with pytest.raises(nx.NetworkXError): + list(nx.eulerian_path(G, source=5)) + + def test_eulerian_path_multigraph(self): + G = nx.MultiDiGraph() + result = [(2, 1), (1, 2), (2, 1), (1, 2), (2, 3), (3, 4), (4, 3)] + G.add_edges_from(result) + assert result == list(nx.eulerian_path(G)) + assert result == list(nx.eulerian_path(G, source=2)) + with pytest.raises(nx.NetworkXError): + list(nx.eulerian_path(G, source=3)) + with pytest.raises(nx.NetworkXError): + list(nx.eulerian_path(G, source=4)) + + def test_eulerian_path_eulerian_circuit(self): + G = nx.DiGraph() + result = [(1, 2), (2, 3), (3, 4), (4, 1)] + result2 = [(2, 3), (3, 4), (4, 1), (1, 2)] + result3 = [(3, 4), (4, 1), (1, 2), (2, 3)] + G.add_edges_from(result) + assert result == list(nx.eulerian_path(G)) + assert result == list(nx.eulerian_path(G, source=1)) + assert result2 == list(nx.eulerian_path(G, source=2)) + assert result3 == list(nx.eulerian_path(G, source=3)) + + def test_eulerian_path_undirected(self): + G = nx.Graph() + result = [(1, 2), (2, 3), (3, 4), (4, 5)] + result2 = [(5, 4), (4, 3), (3, 2), (2, 1)] + G.add_edges_from(result) + assert list(nx.eulerian_path(G)) in (result, result2) + assert result == list(nx.eulerian_path(G, source=1)) + assert result2 == list(nx.eulerian_path(G, source=5)) + with pytest.raises(nx.NetworkXError): + list(nx.eulerian_path(G, source=3)) + with pytest.raises(nx.NetworkXError): + list(nx.eulerian_path(G, source=2)) + + def test_eulerian_path_multigraph_undirected(self): + G = nx.MultiGraph() + result = [(2, 1), (1, 2), (2, 1), (1, 2), (2, 3), (3, 4)] + G.add_edges_from(result) + assert result == list(nx.eulerian_path(G)) + assert result == list(nx.eulerian_path(G, source=2)) + with pytest.raises(nx.NetworkXError): + list(nx.eulerian_path(G, source=3)) + with pytest.raises(nx.NetworkXError): + list(nx.eulerian_path(G, source=1)) + + @pytest.mark.parametrize( + ("graph_type", "result"), + ( + (nx.MultiGraph, [(0, 1, 0), (1, 0, 1)]), + (nx.MultiDiGraph, [(0, 1, 0), (1, 0, 0)]), + ), + ) + def test_eulerian_with_keys(self, graph_type, result): + G = graph_type([(0, 1), (1, 0)]) + answer = nx.eulerian_path(G, keys=True) + assert list(answer) == result + + +class TestEulerize: + def test_disconnected(self): + with pytest.raises(nx.NetworkXError): + G = nx.from_edgelist([(0, 1), (2, 3)]) + nx.eulerize(G) + + def test_null_graph(self): + with pytest.raises(nx.NetworkXPointlessConcept): + nx.eulerize(nx.Graph()) + + def test_null_multigraph(self): + with pytest.raises(nx.NetworkXPointlessConcept): + nx.eulerize(nx.MultiGraph()) + + def test_on_empty_graph(self): + with pytest.raises(nx.NetworkXError): + nx.eulerize(nx.empty_graph(3)) + + def test_on_eulerian(self): + G = nx.cycle_graph(3) + H = nx.eulerize(G) + assert nx.is_isomorphic(G, H) + + def test_on_eulerian_multigraph(self): + G = nx.MultiGraph(nx.cycle_graph(3)) + G.add_edge(0, 1) + H = nx.eulerize(G) + assert nx.is_eulerian(H) + + def test_on_complete_graph(self): + G = nx.complete_graph(4) + assert nx.is_eulerian(nx.eulerize(G)) + assert nx.is_eulerian(nx.eulerize(nx.MultiGraph(G))) + + def test_on_non_eulerian_graph(self): + G = nx.cycle_graph(18) + G.add_edge(0, 18) + G.add_edge(18, 19) + G.add_edge(17, 19) + G.add_edge(4, 20) + G.add_edge(20, 21) + G.add_edge(21, 22) + G.add_edge(22, 23) + G.add_edge(23, 24) + G.add_edge(24, 25) + G.add_edge(25, 26) + G.add_edge(26, 27) + G.add_edge(27, 28) + G.add_edge(28, 13) + assert not nx.is_eulerian(G) + G = nx.eulerize(G) + assert nx.is_eulerian(G) + assert nx.number_of_edges(G) == 39 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_graph_hashing.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_graph_hashing.py new file mode 100644 index 0000000000000000000000000000000000000000..6c90c8ff128a02143c48322853bc2dcaa5f6fffc --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_graph_hashing.py @@ -0,0 +1,872 @@ +import copy + +import pytest + +import networkx as nx + +# Unit tests relevant for both functions in this module. + + +def test_positive_iters(): + G1 = nx.empty_graph() + with pytest.raises( + ValueError, + match="The WL algorithm requires that `iterations` be positive", + ): + nx.weisfeiler_lehman_graph_hash(G1, iterations=-3) + with pytest.raises( + ValueError, + match="The WL algorithm requires that `iterations` be positive", + ): + nx.weisfeiler_lehman_subgraph_hashes(G1, iterations=-3) + with pytest.raises( + ValueError, + match="The WL algorithm requires that `iterations` be positive", + ): + nx.weisfeiler_lehman_graph_hash(G1, iterations=0) + with pytest.raises( + ValueError, + match="The WL algorithm requires that `iterations` be positive", + ): + nx.weisfeiler_lehman_subgraph_hashes(G1, iterations=0) + + +# Unit tests for the :func:`~networkx.weisfeiler_lehman_graph_hash` function + + +def test_empty_graph_hash(): + """ + empty graphs should give hashes regardless of other params + """ + G1 = nx.empty_graph() + G2 = nx.empty_graph() + + h1 = nx.weisfeiler_lehman_graph_hash(G1) + h2 = nx.weisfeiler_lehman_graph_hash(G2) + h3 = nx.weisfeiler_lehman_graph_hash(G2, edge_attr="edge_attr1") + h4 = nx.weisfeiler_lehman_graph_hash(G2, node_attr="node_attr1") + h5 = nx.weisfeiler_lehman_graph_hash( + G2, edge_attr="edge_attr1", node_attr="node_attr1" + ) + h6 = nx.weisfeiler_lehman_graph_hash(G2, iterations=10) + + assert h1 == h2 + assert h1 == h3 + assert h1 == h4 + assert h1 == h5 + assert h1 == h6 + + +def test_directed(): + """ + A directed graph with no bi-directional edges should yield different a graph hash + to the same graph taken as undirected if there are no hash collisions. + """ + r = 10 + for i in range(r): + G_directed = nx.gn_graph(10 + r, seed=100 + i) + G_undirected = nx.to_undirected(G_directed) + + h_directed = nx.weisfeiler_lehman_graph_hash(G_directed) + h_undirected = nx.weisfeiler_lehman_graph_hash(G_undirected) + + assert h_directed != h_undirected + + +def test_reversed(): + """ + A directed graph with no bi-directional edges should yield different a graph hash + to the same graph taken with edge directions reversed if there are no hash + collisions. Here we test a cycle graph which is the minimal counterexample + """ + G = nx.cycle_graph(5, create_using=nx.DiGraph) + nx.set_node_attributes(G, {n: str(n) for n in G.nodes()}, name="label") + + G_reversed = G.reverse() + + h = nx.weisfeiler_lehman_graph_hash(G, node_attr="label") + h_reversed = nx.weisfeiler_lehman_graph_hash(G_reversed, node_attr="label") + + assert h != h_reversed + + +def test_isomorphic(): + """ + graph hashes should be invariant to node-relabeling (when the output is reindexed + by the same mapping) + """ + n, r = 100, 10 + p = 1.0 / r + for i in range(1, r + 1): + G1 = nx.erdos_renyi_graph(n, p * i, seed=200 + i) + G2 = nx.relabel_nodes(G1, {u: -1 * u for u in G1.nodes()}) + + g1_hash = nx.weisfeiler_lehman_graph_hash(G1) + g2_hash = nx.weisfeiler_lehman_graph_hash(G2) + + assert g1_hash == g2_hash + + +def test_isomorphic_edge_attr(): + """ + Isomorphic graphs with differing edge attributes should yield different graph + hashes if the 'edge_attr' argument is supplied and populated in the graph, + and there are no hash collisions. + The output should still be invariant to node-relabeling + """ + n, r = 100, 10 + p = 1.0 / r + for i in range(1, r + 1): + G1 = nx.erdos_renyi_graph(n, p * i, seed=300 + i) + + for a, b in G1.edges: + G1[a][b]["edge_attr1"] = f"{a}-{b}-1" + G1[a][b]["edge_attr2"] = f"{a}-{b}-2" + + g1_hash_with_edge_attr1 = nx.weisfeiler_lehman_graph_hash( + G1, edge_attr="edge_attr1" + ) + g1_hash_with_edge_attr2 = nx.weisfeiler_lehman_graph_hash( + G1, edge_attr="edge_attr2" + ) + g1_hash_no_edge_attr = nx.weisfeiler_lehman_graph_hash(G1, edge_attr=None) + + assert g1_hash_with_edge_attr1 != g1_hash_no_edge_attr + assert g1_hash_with_edge_attr2 != g1_hash_no_edge_attr + assert g1_hash_with_edge_attr1 != g1_hash_with_edge_attr2 + + G2 = nx.relabel_nodes(G1, {u: -1 * u for u in G1.nodes()}) + + g2_hash_with_edge_attr1 = nx.weisfeiler_lehman_graph_hash( + G2, edge_attr="edge_attr1" + ) + g2_hash_with_edge_attr2 = nx.weisfeiler_lehman_graph_hash( + G2, edge_attr="edge_attr2" + ) + + assert g1_hash_with_edge_attr1 == g2_hash_with_edge_attr1 + assert g1_hash_with_edge_attr2 == g2_hash_with_edge_attr2 + + +def test_missing_edge_attr(): + """ + If the 'edge_attr' argument is supplied but is missing from an edge in the graph, + we should raise a KeyError + """ + G = nx.Graph() + G.add_edges_from([(1, 2, {"edge_attr1": "a"}), (1, 3, {})]) + pytest.raises(KeyError, nx.weisfeiler_lehman_graph_hash, G, edge_attr="edge_attr1") + + +def test_isomorphic_node_attr(): + """ + Isomorphic graphs with differing node attributes should yield different graph + hashes if the 'node_attr' argument is supplied and populated in the graph, and + there are no hash collisions. + The output should still be invariant to node-relabeling + """ + n, r = 100, 10 + p = 1.0 / r + for i in range(1, r + 1): + G1 = nx.erdos_renyi_graph(n, p * i, seed=400 + i) + + for u in G1.nodes(): + G1.nodes[u]["node_attr1"] = f"{u}-1" + G1.nodes[u]["node_attr2"] = f"{u}-2" + + g1_hash_with_node_attr1 = nx.weisfeiler_lehman_graph_hash( + G1, node_attr="node_attr1" + ) + g1_hash_with_node_attr2 = nx.weisfeiler_lehman_graph_hash( + G1, node_attr="node_attr2" + ) + g1_hash_no_node_attr = nx.weisfeiler_lehman_graph_hash(G1, node_attr=None) + + assert g1_hash_with_node_attr1 != g1_hash_no_node_attr + assert g1_hash_with_node_attr2 != g1_hash_no_node_attr + assert g1_hash_with_node_attr1 != g1_hash_with_node_attr2 + + G2 = nx.relabel_nodes(G1, {u: -1 * u for u in G1.nodes()}) + + g2_hash_with_node_attr1 = nx.weisfeiler_lehman_graph_hash( + G2, node_attr="node_attr1" + ) + g2_hash_with_node_attr2 = nx.weisfeiler_lehman_graph_hash( + G2, node_attr="node_attr2" + ) + + assert g1_hash_with_node_attr1 == g2_hash_with_node_attr1 + assert g1_hash_with_node_attr2 == g2_hash_with_node_attr2 + + +def test_missing_node_attr(): + """ + If the 'node_attr' argument is supplied but is missing from a node in the graph, + we should raise a KeyError + """ + G = nx.Graph() + G.add_nodes_from([(1, {"node_attr1": "a"}), (2, {})]) + G.add_edges_from([(1, 2), (2, 3), (3, 1), (1, 4)]) + pytest.raises(KeyError, nx.weisfeiler_lehman_graph_hash, G, node_attr="node_attr1") + + +def test_isomorphic_edge_attr_and_node_attr(): + """ + Isomorphic graphs with differing node attributes should yield different graph + hashes if the 'node_attr' and 'edge_attr' argument is supplied and populated in + the graph, and there are no hash collisions. + The output should still be invariant to node-relabeling + """ + n, r = 100, 10 + p = 1.0 / r + for i in range(1, r + 1): + G1 = nx.erdos_renyi_graph(n, p * i, seed=500 + i) + + for u in G1.nodes(): + G1.nodes[u]["node_attr1"] = f"{u}-1" + G1.nodes[u]["node_attr2"] = f"{u}-2" + + for a, b in G1.edges: + G1[a][b]["edge_attr1"] = f"{a}-{b}-1" + G1[a][b]["edge_attr2"] = f"{a}-{b}-2" + + g1_hash_edge1_node1 = nx.weisfeiler_lehman_graph_hash( + G1, edge_attr="edge_attr1", node_attr="node_attr1" + ) + g1_hash_edge2_node2 = nx.weisfeiler_lehman_graph_hash( + G1, edge_attr="edge_attr2", node_attr="node_attr2" + ) + g1_hash_edge1_node2 = nx.weisfeiler_lehman_graph_hash( + G1, edge_attr="edge_attr1", node_attr="node_attr2" + ) + g1_hash_no_attr = nx.weisfeiler_lehman_graph_hash(G1) + + assert g1_hash_edge1_node1 != g1_hash_no_attr + assert g1_hash_edge2_node2 != g1_hash_no_attr + assert g1_hash_edge1_node1 != g1_hash_edge2_node2 + assert g1_hash_edge1_node2 != g1_hash_edge2_node2 + assert g1_hash_edge1_node2 != g1_hash_edge1_node1 + + G2 = nx.relabel_nodes(G1, {u: -1 * u for u in G1.nodes()}) + + g2_hash_edge1_node1 = nx.weisfeiler_lehman_graph_hash( + G2, edge_attr="edge_attr1", node_attr="node_attr1" + ) + g2_hash_edge2_node2 = nx.weisfeiler_lehman_graph_hash( + G2, edge_attr="edge_attr2", node_attr="node_attr2" + ) + + assert g1_hash_edge1_node1 == g2_hash_edge1_node1 + assert g1_hash_edge2_node2 == g2_hash_edge2_node2 + + +def test_digest_size(): + """ + The hash string lengths should be as expected for a variety of graphs and + digest sizes + """ + n, r = 100, 10 + p = 1.0 / r + for i in range(1, r + 1): + G = nx.erdos_renyi_graph(n, p * i, seed=1000 + i) + + h16 = nx.weisfeiler_lehman_graph_hash(G) + h32 = nx.weisfeiler_lehman_graph_hash(G, digest_size=32) + + assert h16 != h32 + assert len(h16) == 16 * 2 + assert len(h32) == 32 * 2 + + +def test_directed_bugs(): + """ + These were bugs for directed graphs as discussed in issue #7806 + """ + Ga = nx.DiGraph() + Gb = nx.DiGraph() + Ga.add_nodes_from([1, 2, 3, 4]) + Gb.add_nodes_from([1, 2, 3, 4]) + Ga.add_edges_from([(1, 2), (3, 2)]) + Gb.add_edges_from([(1, 2), (3, 4)]) + Ga_hash = nx.weisfeiler_lehman_graph_hash(Ga) + Gb_hash = nx.weisfeiler_lehman_graph_hash(Gb) + assert Ga_hash != Gb_hash + + Tree1 = nx.DiGraph() + Tree1.add_edges_from([(0, 4), (1, 5), (2, 6), (3, 7)]) + Tree1.add_edges_from([(4, 8), (5, 8), (6, 9), (7, 9)]) + Tree1.add_edges_from([(8, 10), (9, 10)]) + nx.set_node_attributes( + Tree1, {10: "s", 8: "a", 9: "a", 4: "b", 5: "b", 6: "b", 7: "b"}, "weight" + ) + Tree2 = copy.deepcopy(Tree1) + nx.set_node_attributes(Tree1, {0: "d", 1: "c", 2: "d", 3: "c"}, "weight") + nx.set_node_attributes(Tree2, {0: "d", 1: "d", 2: "c", 3: "c"}, "weight") + Tree1_hash_short = nx.weisfeiler_lehman_graph_hash( + Tree1, iterations=1, node_attr="weight" + ) + Tree2_hash_short = nx.weisfeiler_lehman_graph_hash( + Tree2, iterations=1, node_attr="weight" + ) + assert Tree1_hash_short == Tree2_hash_short + Tree1_hash = nx.weisfeiler_lehman_graph_hash( + Tree1, node_attr="weight" + ) # Default is 3 iterations + Tree2_hash = nx.weisfeiler_lehman_graph_hash(Tree2, node_attr="weight") + assert Tree1_hash != Tree2_hash + + +def test_trivial_labels_isomorphism(): + """ + Trivial labelling of the graph should not change isomorphism verdicts. + """ + n, r = 100, 10 + p = 1.0 / r + for i in range(1, r + 1): + G1 = nx.erdos_renyi_graph(n, p * i, seed=500 + i) + G2 = nx.erdos_renyi_graph(n, p * i, seed=42 + i) + G1_hash = nx.weisfeiler_lehman_graph_hash(G1) + G2_hash = nx.weisfeiler_lehman_graph_hash(G2) + equal = G1_hash == G2_hash + + nx.set_node_attributes(G1, values=1, name="weight") + nx.set_node_attributes(G2, values=1, name="weight") + G1_hash_node = nx.weisfeiler_lehman_graph_hash(G1, node_attr="weight") + G2_hash_node = nx.weisfeiler_lehman_graph_hash(G2, node_attr="weight") + equal_node = G1_hash_node == G2_hash_node + + nx.set_edge_attributes(G1, values="a", name="e_weight") + nx.set_edge_attributes(G2, values="a", name="e_weight") + G1_hash_edge = nx.weisfeiler_lehman_graph_hash(G1, edge_attr="e_weight") + G2_hash_edge = nx.weisfeiler_lehman_graph_hash(G2, edge_attr="e_weight") + equal_edge = G1_hash_edge == G2_hash_edge + + G1_hash_both = nx.weisfeiler_lehman_graph_hash( + G1, edge_attr="e_weight", node_attr="weight" + ) + G2_hash_both = nx.weisfeiler_lehman_graph_hash( + G2, edge_attr="e_weight", node_attr="weight" + ) + equal_both = G1_hash_both == G2_hash_both + + assert equal == equal_node + assert equal_node == equal_edge + assert equal_edge == equal_both + + +def test_trivial_labels_isomorphism_directed(): + """ + Trivial labelling of the graph should not change isomorphism verdicts on digraphs. + """ + n, r = 100, 10 + p = 1.0 / r + for i in range(1, r + 1): + G1 = nx.erdos_renyi_graph(n, p * i, directed=True, seed=500 + i) + G2 = nx.erdos_renyi_graph(n, p * i, directed=True, seed=42 + i) + G1_hash = nx.weisfeiler_lehman_graph_hash(G1) + G2_hash = nx.weisfeiler_lehman_graph_hash(G2) + equal = G1_hash == G2_hash + + nx.set_node_attributes(G1, values=1, name="weight") + nx.set_node_attributes(G2, values=1, name="weight") + G1_hash_node = nx.weisfeiler_lehman_graph_hash(G1, node_attr="weight") + G2_hash_node = nx.weisfeiler_lehman_graph_hash(G2, node_attr="weight") + equal_node = G1_hash_node == G2_hash_node + + nx.set_edge_attributes(G1, values="a", name="e_weight") + nx.set_edge_attributes(G2, values="a", name="e_weight") + G1_hash_edge = nx.weisfeiler_lehman_graph_hash(G1, edge_attr="e_weight") + G2_hash_edge = nx.weisfeiler_lehman_graph_hash(G2, edge_attr="e_weight") + equal_edge = G1_hash_edge == G2_hash_edge + + G1_hash_both = nx.weisfeiler_lehman_graph_hash( + G1, edge_attr="e_weight", node_attr="weight" + ) + G2_hash_both = nx.weisfeiler_lehman_graph_hash( + G2, edge_attr="e_weight", node_attr="weight" + ) + equal_both = G1_hash_both == G2_hash_both + + assert equal == equal_node + assert equal_node == equal_edge + assert equal_edge == equal_both + + # Specific case that was found to be a bug in issue #7806 + # Without weights worked + Ga = nx.DiGraph() + Ga.add_nodes_from([1, 2, 3, 4]) + Gb = copy.deepcopy(Ga) + Ga.add_edges_from([(1, 2), (3, 2)]) + Gb.add_edges_from([(1, 2), (3, 4)]) + Ga_hash = nx.weisfeiler_lehman_graph_hash(Ga) + Gb_hash = nx.weisfeiler_lehman_graph_hash(Gb) + assert Ga_hash != Gb_hash + + # Now with trivial weights + nx.set_node_attributes(Ga, values=1, name="weight") + nx.set_node_attributes(Gb, values=1, name="weight") + Ga_hash = nx.weisfeiler_lehman_graph_hash(Ga, node_attr="weight") + Gb_hash = nx.weisfeiler_lehman_graph_hash(Gb, node_attr="weight") + assert Ga_hash != Gb_hash + + +def test_trivial_labels_hashes(): + """ + Test that 'empty' labelling of nodes or edges shouldn't have a different impact + on the calculated hash. Note that we cannot assume that trivial weights have no + impact at all. Without (trivial) weights, a node will start with hashing its + degree. This step is omitted when there are weights. + """ + n, r = 100, 10 + p = 1.0 / r + for i in range(1, r + 1): + G1 = nx.erdos_renyi_graph(n, p * i, seed=500 + i) + nx.set_node_attributes(G1, values="", name="weight") + first = nx.weisfeiler_lehman_graph_hash(G1, node_attr="weight") + nx.set_edge_attributes(G1, values="", name="e_weight") + second = nx.weisfeiler_lehman_graph_hash(G1, edge_attr="e_weight") + assert first == second + third = nx.weisfeiler_lehman_graph_hash( + G1, edge_attr="e_weight", node_attr="weight" + ) + assert second == third + + +# Unit tests for the :func:`~networkx.weisfeiler_lehman_subgraph_hashes` function + + +def is_subiteration(a, b): + """ + returns True if that each hash sequence in 'a' is a prefix for + the corresponding sequence indexed by the same node in 'b'. + """ + return all(b[node][: len(hashes)] == hashes for node, hashes in a.items()) + + +def hexdigest_sizes_correct(a, digest_size): + """ + returns True if all hex digest sizes are the expected length in a + node:subgraph-hashes dictionary. Hex digest string length == 2 * bytes digest + length since each pair of hex digits encodes 1 byte + (https://docs.python.org/3/library/hashlib.html) + """ + hexdigest_size = digest_size * 2 + + def list_digest_sizes_correct(l): + return all(len(x) == hexdigest_size for x in l) + + return all(list_digest_sizes_correct(hashes) for hashes in a.values()) + + +def test_empty_graph_subgraph_hash(): + """ " + empty graphs should give empty dict subgraph hashes regardless of other params + """ + G = nx.empty_graph() + + subgraph_hashes1 = nx.weisfeiler_lehman_subgraph_hashes(G) + subgraph_hashes2 = nx.weisfeiler_lehman_subgraph_hashes(G, edge_attr="edge_attr") + subgraph_hashes3 = nx.weisfeiler_lehman_subgraph_hashes(G, node_attr="edge_attr") + subgraph_hashes4 = nx.weisfeiler_lehman_subgraph_hashes(G, iterations=2) + subgraph_hashes5 = nx.weisfeiler_lehman_subgraph_hashes(G, digest_size=64) + + assert subgraph_hashes1 == {} + assert subgraph_hashes2 == {} + assert subgraph_hashes3 == {} + assert subgraph_hashes4 == {} + assert subgraph_hashes5 == {} + + +def test_directed_subgraph_hash(): + """ + A directed graph with no bi-directional edges should yield different subgraph + hashes to the same graph taken as undirected, if all hashes don't collide. + """ + r = 10 + for i in range(r): + G_directed = nx.gn_graph(10 + r, seed=100 + i) + G_undirected = nx.to_undirected(G_directed) + + directed_subgraph_hashes = nx.weisfeiler_lehman_subgraph_hashes(G_directed) + undirected_subgraph_hashes = nx.weisfeiler_lehman_subgraph_hashes(G_undirected) + + assert directed_subgraph_hashes != undirected_subgraph_hashes + + +def test_reversed_subgraph_hash(): + """ + A directed graph with no bi-directional edges should yield different subgraph + hashes to the same graph taken with edge directions reversed if there are no + hash collisions. Here we test a cycle graph which is the minimal counterexample + """ + G = nx.cycle_graph(5, create_using=nx.DiGraph) + nx.set_node_attributes(G, {n: str(n) for n in G.nodes()}, name="label") + + G_reversed = G.reverse() + + h = nx.weisfeiler_lehman_subgraph_hashes(G, node_attr="label") + h_reversed = nx.weisfeiler_lehman_subgraph_hashes(G_reversed, node_attr="label") + + assert h != h_reversed + + +def test_isomorphic_subgraph_hash(): + """ + the subgraph hashes should be invariant to node-relabeling when the output is + reindexed by the same mapping and all hashes don't collide. + """ + n, r = 100, 10 + p = 1.0 / r + for i in range(1, r + 1): + G1 = nx.erdos_renyi_graph(n, p * i, seed=200 + i) + G2 = nx.relabel_nodes(G1, {u: -1 * u for u in G1.nodes()}) + + g1_subgraph_hashes = nx.weisfeiler_lehman_subgraph_hashes(G1) + g2_subgraph_hashes = nx.weisfeiler_lehman_subgraph_hashes(G2) + + assert g1_subgraph_hashes == {-1 * k: v for k, v in g2_subgraph_hashes.items()} + + +def test_isomorphic_edge_attr_subgraph_hash(): + """ + Isomorphic graphs with differing edge attributes should yield different subgraph + hashes if the 'edge_attr' argument is supplied and populated in the graph, and + all hashes don't collide. + The output should still be invariant to node-relabeling + """ + n, r = 100, 10 + p = 1.0 / r + for i in range(1, r + 1): + G1 = nx.erdos_renyi_graph(n, p * i, seed=300 + i) + + for a, b in G1.edges: + G1[a][b]["edge_attr1"] = f"{a}-{b}-1" + G1[a][b]["edge_attr2"] = f"{a}-{b}-2" + + g1_hash_with_edge_attr1 = nx.weisfeiler_lehman_subgraph_hashes( + G1, edge_attr="edge_attr1" + ) + g1_hash_with_edge_attr2 = nx.weisfeiler_lehman_subgraph_hashes( + G1, edge_attr="edge_attr2" + ) + g1_hash_no_edge_attr = nx.weisfeiler_lehman_subgraph_hashes(G1, edge_attr=None) + + assert g1_hash_with_edge_attr1 != g1_hash_no_edge_attr + assert g1_hash_with_edge_attr2 != g1_hash_no_edge_attr + assert g1_hash_with_edge_attr1 != g1_hash_with_edge_attr2 + + G2 = nx.relabel_nodes(G1, {u: -1 * u for u in G1.nodes()}) + + g2_hash_with_edge_attr1 = nx.weisfeiler_lehman_subgraph_hashes( + G2, edge_attr="edge_attr1" + ) + g2_hash_with_edge_attr2 = nx.weisfeiler_lehman_subgraph_hashes( + G2, edge_attr="edge_attr2" + ) + + assert g1_hash_with_edge_attr1 == { + -1 * k: v for k, v in g2_hash_with_edge_attr1.items() + } + assert g1_hash_with_edge_attr2 == { + -1 * k: v for k, v in g2_hash_with_edge_attr2.items() + } + + +def test_missing_edge_attr_subgraph_hash(): + """ + If the 'edge_attr' argument is supplied but is missing from an edge in the graph, + we should raise a KeyError + """ + G = nx.Graph() + G.add_edges_from([(1, 2, {"edge_attr1": "a"}), (1, 3, {})]) + pytest.raises( + KeyError, nx.weisfeiler_lehman_subgraph_hashes, G, edge_attr="edge_attr1" + ) + + +def test_isomorphic_node_attr_subgraph_hash(): + """ + Isomorphic graphs with differing node attributes should yield different subgraph + hashes if the 'node_attr' argument is supplied and populated in the graph, and + all hashes don't collide. + The output should still be invariant to node-relabeling + """ + n, r = 100, 10 + p = 1.0 / r + for i in range(1, r + 1): + G1 = nx.erdos_renyi_graph(n, p * i, seed=400 + i) + + for u in G1.nodes(): + G1.nodes[u]["node_attr1"] = f"{u}-1" + G1.nodes[u]["node_attr2"] = f"{u}-2" + + g1_hash_with_node_attr1 = nx.weisfeiler_lehman_subgraph_hashes( + G1, node_attr="node_attr1" + ) + g1_hash_with_node_attr2 = nx.weisfeiler_lehman_subgraph_hashes( + G1, node_attr="node_attr2" + ) + g1_hash_no_node_attr = nx.weisfeiler_lehman_subgraph_hashes(G1, node_attr=None) + + assert g1_hash_with_node_attr1 != g1_hash_no_node_attr + assert g1_hash_with_node_attr2 != g1_hash_no_node_attr + assert g1_hash_with_node_attr1 != g1_hash_with_node_attr2 + + G2 = nx.relabel_nodes(G1, {u: -1 * u for u in G1.nodes()}) + + g2_hash_with_node_attr1 = nx.weisfeiler_lehman_subgraph_hashes( + G2, node_attr="node_attr1" + ) + g2_hash_with_node_attr2 = nx.weisfeiler_lehman_subgraph_hashes( + G2, node_attr="node_attr2" + ) + + assert g1_hash_with_node_attr1 == { + -1 * k: v for k, v in g2_hash_with_node_attr1.items() + } + assert g1_hash_with_node_attr2 == { + -1 * k: v for k, v in g2_hash_with_node_attr2.items() + } + + +def test_missing_node_attr_subgraph_hash(): + """ + If the 'node_attr' argument is supplied but is missing from a node in the graph, + we should raise a KeyError + """ + G = nx.Graph() + G.add_nodes_from([(1, {"node_attr1": "a"}), (2, {})]) + G.add_edges_from([(1, 2), (2, 3), (3, 1), (1, 4)]) + pytest.raises( + KeyError, nx.weisfeiler_lehman_subgraph_hashes, G, node_attr="node_attr1" + ) + + +def test_isomorphic_edge_attr_and_node_attr_subgraph_hash(): + """ + Isomorphic graphs with differing node attributes should yield different subgraph + hashes if the 'node_attr' and 'edge_attr' argument is supplied and populated in + the graph, and all hashes don't collide + The output should still be invariant to node-relabeling + """ + n, r = 100, 10 + p = 1.0 / r + for i in range(1, r + 1): + G1 = nx.erdos_renyi_graph(n, p * i, seed=500 + i) + + for u in G1.nodes(): + G1.nodes[u]["node_attr1"] = f"{u}-1" + G1.nodes[u]["node_attr2"] = f"{u}-2" + + for a, b in G1.edges: + G1[a][b]["edge_attr1"] = f"{a}-{b}-1" + G1[a][b]["edge_attr2"] = f"{a}-{b}-2" + + g1_hash_edge1_node1 = nx.weisfeiler_lehman_subgraph_hashes( + G1, edge_attr="edge_attr1", node_attr="node_attr1" + ) + g1_hash_edge2_node2 = nx.weisfeiler_lehman_subgraph_hashes( + G1, edge_attr="edge_attr2", node_attr="node_attr2" + ) + g1_hash_edge1_node2 = nx.weisfeiler_lehman_subgraph_hashes( + G1, edge_attr="edge_attr1", node_attr="node_attr2" + ) + g1_hash_no_attr = nx.weisfeiler_lehman_subgraph_hashes(G1) + + assert g1_hash_edge1_node1 != g1_hash_no_attr + assert g1_hash_edge2_node2 != g1_hash_no_attr + assert g1_hash_edge1_node1 != g1_hash_edge2_node2 + assert g1_hash_edge1_node2 != g1_hash_edge2_node2 + assert g1_hash_edge1_node2 != g1_hash_edge1_node1 + + G2 = nx.relabel_nodes(G1, {u: -1 * u for u in G1.nodes()}) + + g2_hash_edge1_node1 = nx.weisfeiler_lehman_subgraph_hashes( + G2, edge_attr="edge_attr1", node_attr="node_attr1" + ) + g2_hash_edge2_node2 = nx.weisfeiler_lehman_subgraph_hashes( + G2, edge_attr="edge_attr2", node_attr="node_attr2" + ) + + assert g1_hash_edge1_node1 == { + -1 * k: v for k, v in g2_hash_edge1_node1.items() + } + assert g1_hash_edge2_node2 == { + -1 * k: v for k, v in g2_hash_edge2_node2.items() + } + + +def test_iteration_depth(): + """ + All nodes should have the correct number of subgraph hashes in the output when + using degree as initial node labels. + Subsequent iteration depths for the same graph should be additive for each node + """ + n, r = 100, 10 + p = 1.0 / r + for i in range(1, r + 1): + G = nx.erdos_renyi_graph(n, p * i, seed=600 + i) + + depth3 = nx.weisfeiler_lehman_subgraph_hashes(G, iterations=3) + depth4 = nx.weisfeiler_lehman_subgraph_hashes(G, iterations=4) + depth5 = nx.weisfeiler_lehman_subgraph_hashes(G, iterations=5) + + assert all(len(hashes) == 3 for hashes in depth3.values()) + assert all(len(hashes) == 4 for hashes in depth4.values()) + assert all(len(hashes) == 5 for hashes in depth5.values()) + + assert is_subiteration(depth3, depth4) + assert is_subiteration(depth4, depth5) + assert is_subiteration(depth3, depth5) + + +def test_iteration_depth_edge_attr(): + """ + All nodes should have the correct number of subgraph hashes in the output when + setting initial node labels empty and using an edge attribute when aggregating + neighborhoods. + Subsequent iteration depths for the same graph should be additive for each node + """ + n, r = 100, 10 + p = 1.0 / r + for i in range(1, r + 1): + G = nx.erdos_renyi_graph(n, p * i, seed=700 + i) + + for a, b in G.edges: + G[a][b]["edge_attr1"] = f"{a}-{b}-1" + + depth3 = nx.weisfeiler_lehman_subgraph_hashes( + G, edge_attr="edge_attr1", iterations=3 + ) + depth4 = nx.weisfeiler_lehman_subgraph_hashes( + G, edge_attr="edge_attr1", iterations=4 + ) + depth5 = nx.weisfeiler_lehman_subgraph_hashes( + G, edge_attr="edge_attr1", iterations=5 + ) + + assert all(len(hashes) == 3 for hashes in depth3.values()) + assert all(len(hashes) == 4 for hashes in depth4.values()) + assert all(len(hashes) == 5 for hashes in depth5.values()) + + assert is_subiteration(depth3, depth4) + assert is_subiteration(depth4, depth5) + assert is_subiteration(depth3, depth5) + + +def test_iteration_depth_node_attr(): + """ + All nodes should have the correct number of subgraph hashes in the output when + setting initial node labels to an attribute. + Subsequent iteration depths for the same graph should be additive for each node + """ + n, r = 100, 10 + p = 1.0 / r + for i in range(1, r + 1): + G = nx.erdos_renyi_graph(n, p * i, seed=800 + i) + + for u in G.nodes(): + G.nodes[u]["node_attr1"] = f"{u}-1" + + depth3 = nx.weisfeiler_lehman_subgraph_hashes( + G, node_attr="node_attr1", iterations=3 + ) + depth4 = nx.weisfeiler_lehman_subgraph_hashes( + G, node_attr="node_attr1", iterations=4 + ) + depth5 = nx.weisfeiler_lehman_subgraph_hashes( + G, node_attr="node_attr1", iterations=5 + ) + + assert all(len(hashes) == 3 for hashes in depth3.values()) + assert all(len(hashes) == 4 for hashes in depth4.values()) + assert all(len(hashes) == 5 for hashes in depth5.values()) + + assert is_subiteration(depth3, depth4) + assert is_subiteration(depth4, depth5) + assert is_subiteration(depth3, depth5) + + +def test_iteration_depth_node_edge_attr(): + """ + All nodes should have the correct number of subgraph hashes in the output when + setting initial node labels to an attribute and also using an edge attribute when + aggregating neighborhoods. + Subsequent iteration depths for the same graph should be additive for each node + """ + n, r = 100, 10 + p = 1.0 / r + for i in range(1, r + 1): + G = nx.erdos_renyi_graph(n, p * i, seed=900 + i) + + for u in G.nodes(): + G.nodes[u]["node_attr1"] = f"{u}-1" + + for a, b in G.edges: + G[a][b]["edge_attr1"] = f"{a}-{b}-1" + + depth3 = nx.weisfeiler_lehman_subgraph_hashes( + G, edge_attr="edge_attr1", node_attr="node_attr1", iterations=3 + ) + depth4 = nx.weisfeiler_lehman_subgraph_hashes( + G, edge_attr="edge_attr1", node_attr="node_attr1", iterations=4 + ) + depth5 = nx.weisfeiler_lehman_subgraph_hashes( + G, edge_attr="edge_attr1", node_attr="node_attr1", iterations=5 + ) + + assert all(len(hashes) == 3 for hashes in depth3.values()) + assert all(len(hashes) == 4 for hashes in depth4.values()) + assert all(len(hashes) == 5 for hashes in depth5.values()) + + assert is_subiteration(depth3, depth4) + assert is_subiteration(depth4, depth5) + assert is_subiteration(depth3, depth5) + + +def test_digest_size_subgraph_hash(): + """ + The hash string lengths should be as expected for a variety of graphs and + digest sizes + """ + n, r = 100, 10 + p = 1.0 / r + for i in range(1, r + 1): + G = nx.erdos_renyi_graph(n, p * i, seed=1000 + i) + + digest_size16_hashes = nx.weisfeiler_lehman_subgraph_hashes(G) + digest_size32_hashes = nx.weisfeiler_lehman_subgraph_hashes(G, digest_size=32) + + assert digest_size16_hashes != digest_size32_hashes + + assert hexdigest_sizes_correct(digest_size16_hashes, 16) + assert hexdigest_sizes_correct(digest_size32_hashes, 32) + + +def test_initial_node_labels_subgraph_hash(): + """ + Including the hashed initial label prepends an extra hash to the lists + """ + G = nx.path_graph(5) + nx.set_node_attributes(G, {i: int(0 < i < 4) for i in G}, "label") + # initial node labels: + # 0--1--1--1--0 + + without_initial_label = nx.weisfeiler_lehman_subgraph_hashes(G, node_attr="label") + assert all(len(v) == 3 for v in without_initial_label.values()) + # 3 different 1 hop nhds + assert len({v[0] for v in without_initial_label.values()}) == 3 + + with_initial_label = nx.weisfeiler_lehman_subgraph_hashes( + G, node_attr="label", include_initial_labels=True + ) + assert all(len(v) == 4 for v in with_initial_label.values()) + # 2 different initial labels + assert len({v[0] for v in with_initial_label.values()}) == 2 + + # check hashes match otherwise + for u in G: + for a, b in zip( + with_initial_label[u][1:], without_initial_label[u], strict=True + ): + assert a == b diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_graphical.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_graphical.py new file mode 100644 index 0000000000000000000000000000000000000000..99f766f799d8573e80d905482f4b685a2d16bcc0 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_graphical.py @@ -0,0 +1,163 @@ +import pytest + +import networkx as nx + + +def test_valid_degree_sequence1(): + n = 100 + p = 0.3 + for i in range(10): + G = nx.erdos_renyi_graph(n, p) + deg = (d for n, d in G.degree()) + assert nx.is_graphical(deg, method="eg") + assert nx.is_graphical(deg, method="hh") + + +def test_valid_degree_sequence2(): + n = 100 + for i in range(10): + G = nx.barabasi_albert_graph(n, 1) + deg = (d for n, d in G.degree()) + assert nx.is_graphical(deg, method="eg") + assert nx.is_graphical(deg, method="hh") + + +def test_string_input(): + pytest.raises(nx.NetworkXException, nx.is_graphical, [], "foo") + pytest.raises(nx.NetworkXException, nx.is_graphical, ["red"], "hh") + pytest.raises(nx.NetworkXException, nx.is_graphical, ["red"], "eg") + + +def test_non_integer_input(): + pytest.raises(nx.NetworkXException, nx.is_graphical, [72.5], "eg") + pytest.raises(nx.NetworkXException, nx.is_graphical, [72.5], "hh") + + +def test_negative_input(): + assert not nx.is_graphical([-1], "hh") + assert not nx.is_graphical([-1], "eg") + + +class TestAtlas: + @classmethod + def setup_class(cls): + global atlas + from networkx.generators import atlas + + cls.GAG = atlas.graph_atlas_g() + + def test_atlas(self): + for graph in self.GAG: + deg = (d for n, d in graph.degree()) + assert nx.is_graphical(deg, method="eg") + assert nx.is_graphical(deg, method="hh") + + +def test_small_graph_true(): + z = [5, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1] + assert nx.is_graphical(z, method="hh") + assert nx.is_graphical(z, method="eg") + z = [10, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2] + assert nx.is_graphical(z, method="hh") + assert nx.is_graphical(z, method="eg") + z = [1, 1, 1, 1, 1, 2, 2, 2, 3, 4] + assert nx.is_graphical(z, method="hh") + assert nx.is_graphical(z, method="eg") + + +def test_small_graph_false(): + z = [1000, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1] + assert not nx.is_graphical(z, method="hh") + assert not nx.is_graphical(z, method="eg") + z = [6, 5, 4, 4, 2, 1, 1, 1] + assert not nx.is_graphical(z, method="hh") + assert not nx.is_graphical(z, method="eg") + z = [1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 4] + assert not nx.is_graphical(z, method="hh") + assert not nx.is_graphical(z, method="eg") + + +def test_directed_degree_sequence(): + # Test a range of valid directed degree sequences + n, r = 100, 10 + p = 1.0 / r + for i in range(r): + G = nx.erdos_renyi_graph(n, p * (i + 1), None, True) + din = (d for n, d in G.in_degree()) + dout = (d for n, d in G.out_degree()) + assert nx.is_digraphical(din, dout) + + +def test_small_directed_sequences(): + dout = [5, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1] + din = [3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1] + assert nx.is_digraphical(din, dout) + # Test nongraphical directed sequence + dout = [1000, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1] + din = [103, 102, 102, 102, 102, 102, 102, 102, 102, 102] + assert not nx.is_digraphical(din, dout) + # Test digraphical small sequence + dout = [1, 1, 1, 1, 1, 2, 2, 2, 3, 4] + din = [2, 2, 2, 2, 2, 2, 2, 2, 1, 1] + assert nx.is_digraphical(din, dout) + # Test nonmatching sum + din = [2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1] + assert not nx.is_digraphical(din, dout) + # Test for negative integer in sequence + din = [2, 2, 2, -2, 2, 2, 2, 2, 1, 1, 4] + assert not nx.is_digraphical(din, dout) + # Test for noninteger + din = dout = [1, 1, 1.1, 1] + assert not nx.is_digraphical(din, dout) + din = dout = [1, 1, "rer", 1] + assert not nx.is_digraphical(din, dout) + + +def test_multi_sequence(): + # Test nongraphical multi sequence + seq = [1000, 3, 3, 3, 3, 2, 2, 2, 1, 1] + assert not nx.is_multigraphical(seq) + # Test small graphical multi sequence + seq = [6, 5, 4, 4, 2, 1, 1, 1] + assert nx.is_multigraphical(seq) + # Test for negative integer in sequence + seq = [6, 5, 4, -4, 2, 1, 1, 1] + assert not nx.is_multigraphical(seq) + # Test for sequence with odd sum + seq = [1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 4] + assert not nx.is_multigraphical(seq) + # Test for noninteger + seq = [1, 1, 1.1, 1] + assert not nx.is_multigraphical(seq) + seq = [1, 1, "rer", 1] + assert not nx.is_multigraphical(seq) + + +def test_pseudo_sequence(): + # Test small valid pseudo sequence + seq = [1000, 3, 3, 3, 3, 2, 2, 2, 1, 1] + assert nx.is_pseudographical(seq) + # Test for sequence with odd sum + seq = [1000, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1] + assert not nx.is_pseudographical(seq) + # Test for negative integer in sequence + seq = [1000, 3, 3, 3, 3, 2, 2, -2, 1, 1] + assert not nx.is_pseudographical(seq) + # Test for noninteger + seq = [1, 1, 1.1, 1] + assert not nx.is_pseudographical(seq) + seq = [1, 1, "rer", 1] + assert not nx.is_pseudographical(seq) + + +def test_numpy_degree_sequence(): + np = pytest.importorskip("numpy") + ds = np.array([1, 2, 2, 2, 1], dtype=np.int64) + assert nx.is_graphical(ds, "eg") + assert nx.is_graphical(ds, "hh") + ds = np.array([1, 2, 2, 2, 1], dtype=np.float64) + assert nx.is_graphical(ds, "eg") + assert nx.is_graphical(ds, "hh") + ds = np.array([1.1, 2, 2, 2, 1], dtype=np.float64) + pytest.raises(nx.NetworkXException, nx.is_graphical, ds, "eg") + pytest.raises(nx.NetworkXException, nx.is_graphical, ds, "hh") diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_hierarchy.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_hierarchy.py new file mode 100644 index 0000000000000000000000000000000000000000..eaa6a67b8b7f048719aa189b8365ef8e4c65951c --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_hierarchy.py @@ -0,0 +1,46 @@ +import pytest + +import networkx as nx + + +def test_hierarchy_undirected(): + G = nx.cycle_graph(5) + pytest.raises(nx.NetworkXError, nx.flow_hierarchy, G) + + +def test_hierarchy_cycle(): + G = nx.cycle_graph(5, create_using=nx.DiGraph()) + assert nx.flow_hierarchy(G) == 0.0 + + +def test_hierarchy_tree(): + G = nx.full_rary_tree(2, 16, create_using=nx.DiGraph()) + assert nx.flow_hierarchy(G) == 1.0 + + +def test_hierarchy_1(): + G = nx.DiGraph() + G.add_edges_from([(0, 1), (1, 2), (2, 3), (3, 1), (3, 4), (0, 4)]) + assert nx.flow_hierarchy(G) == 0.5 + + +def test_hierarchy_weight(): + G = nx.DiGraph() + G.add_edges_from( + [ + (0, 1, {"weight": 0.3}), + (1, 2, {"weight": 0.1}), + (2, 3, {"weight": 0.1}), + (3, 1, {"weight": 0.1}), + (3, 4, {"weight": 0.3}), + (0, 4, {"weight": 0.3}), + ] + ) + assert nx.flow_hierarchy(G, weight="weight") == 0.75 + + +@pytest.mark.parametrize("n", (0, 1, 3)) +def test_hierarchy_empty_graph(n): + G = nx.empty_graph(n, create_using=nx.DiGraph) + with pytest.raises(nx.NetworkXError, match=".*not applicable to empty graphs"): + nx.flow_hierarchy(G) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_hybrid.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_hybrid.py new file mode 100644 index 0000000000000000000000000000000000000000..6af0016498549caed58772e304c93113a8b693d9 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_hybrid.py @@ -0,0 +1,24 @@ +import networkx as nx + + +def test_2d_grid_graph(): + # FC article claims 2d grid graph of size n is (3,3)-connected + # and (5,9)-connected, but I don't think it is (5,9)-connected + G = nx.grid_2d_graph(8, 8, periodic=True) + assert nx.is_kl_connected(G, 3, 3) + assert not nx.is_kl_connected(G, 5, 9) + (H, graphOK) = nx.kl_connected_subgraph(G, 5, 9, same_as_graph=True) + assert not graphOK + + +def test_small_graph(): + G = nx.Graph() + G.add_edge(1, 2) + G.add_edge(1, 3) + G.add_edge(2, 3) + assert nx.is_kl_connected(G, 2, 2) + H = nx.kl_connected_subgraph(G, 2, 2) + (H, graphOK) = nx.kl_connected_subgraph( + G, 2, 2, low_memory=True, same_as_graph=True + ) + assert graphOK diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_isolate.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_isolate.py new file mode 100644 index 0000000000000000000000000000000000000000..d29b306d2b13c2457905c41218e5c60793b309ba --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_isolate.py @@ -0,0 +1,26 @@ +"""Unit tests for the :mod:`networkx.algorithms.isolates` module.""" + +import networkx as nx + + +def test_is_isolate(): + G = nx.Graph() + G.add_edge(0, 1) + G.add_node(2) + assert not nx.is_isolate(G, 0) + assert not nx.is_isolate(G, 1) + assert nx.is_isolate(G, 2) + + +def test_isolates(): + G = nx.Graph() + G.add_edge(0, 1) + G.add_nodes_from([2, 3]) + assert sorted(nx.isolates(G)) == [2, 3] + + +def test_number_of_isolates(): + G = nx.Graph() + G.add_edge(0, 1) + G.add_nodes_from([2, 3]) + assert nx.number_of_isolates(G) == 2 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_link_prediction.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_link_prediction.py new file mode 100644 index 0000000000000000000000000000000000000000..0220d9cd24dc5f1eceb8937e3274a21415529349 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_link_prediction.py @@ -0,0 +1,615 @@ +import math +from functools import partial + +import pytest + +import networkx as nx + + +def _test_func(G, ebunch, expected, predict_func, **kwargs): + result = predict_func(G, ebunch, **kwargs) + exp_dict = {tuple(sorted([u, v])): score for u, v, score in expected} + res_dict = {tuple(sorted([u, v])): score for u, v, score in result} + + assert len(exp_dict) == len(res_dict) + for p in exp_dict: + assert exp_dict[p] == pytest.approx(res_dict[p], abs=1e-7) + + +class TestResourceAllocationIndex: + @classmethod + def setup_class(cls): + cls.func = staticmethod(nx.resource_allocation_index) + cls.test = staticmethod(partial(_test_func, predict_func=cls.func)) + + def test_K5(self): + G = nx.complete_graph(5) + self.test(G, [(0, 1)], [(0, 1, 0.75)]) + + def test_P3(self): + G = nx.path_graph(3) + self.test(G, [(0, 2)], [(0, 2, 0.5)]) + + def test_S4(self): + G = nx.star_graph(4) + self.test(G, [(1, 2)], [(1, 2, 0.25)]) + + @pytest.mark.parametrize("graph_type", (nx.DiGraph, nx.MultiGraph, nx.MultiDiGraph)) + def test_notimplemented(self, graph_type): + G = graph_type([(0, 1), (1, 2)]) + with pytest.raises(nx.NetworkXNotImplemented): + self.func(G, [(0, 2)]) + + def test_node_not_found(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (2, 3)]) + with pytest.raises(nx.NodeNotFound): + self.func(G, [(0, 4)]) + + def test_no_common_neighbor(self): + G = nx.Graph() + G.add_nodes_from([0, 1]) + self.test(G, [(0, 1)], [(0, 1, 0)]) + + def test_equal_nodes(self): + G = nx.complete_graph(4) + self.test(G, [(0, 0)], [(0, 0, 1)]) + + def test_all_nonexistent_edges(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (2, 3)]) + self.test(G, None, [(0, 3, 0.5), (1, 2, 0.5), (1, 3, 0)]) + + +class TestJaccardCoefficient: + @classmethod + def setup_class(cls): + cls.func = staticmethod(nx.jaccard_coefficient) + cls.test = staticmethod(partial(_test_func, predict_func=cls.func)) + + def test_K5(self): + G = nx.complete_graph(5) + self.test(G, [(0, 1)], [(0, 1, 0.6)]) + + def test_P4(self): + G = nx.path_graph(4) + self.test(G, [(0, 2)], [(0, 2, 0.5)]) + + @pytest.mark.parametrize("graph_type", (nx.DiGraph, nx.MultiGraph, nx.MultiDiGraph)) + def test_notimplemented(self, graph_type): + G = graph_type([(0, 1), (1, 2)]) + with pytest.raises(nx.NetworkXNotImplemented): + self.func(G, [(0, 2)]) + + def test_node_not_found(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (2, 3)]) + with pytest.raises(nx.NodeNotFound): + self.func(G, [(0, 4)]) + + def test_no_common_neighbor(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (2, 3)]) + self.test(G, [(0, 2)], [(0, 2, 0)]) + + def test_isolated_nodes(self): + G = nx.Graph() + G.add_nodes_from([0, 1]) + self.test(G, [(0, 1)], [(0, 1, 0)]) + + def test_all_nonexistent_edges(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (2, 3)]) + self.test(G, None, [(0, 3, 0.5), (1, 2, 0.5), (1, 3, 0)]) + + +class TestAdamicAdarIndex: + @classmethod + def setup_class(cls): + cls.func = staticmethod(nx.adamic_adar_index) + cls.test = staticmethod(partial(_test_func, predict_func=cls.func)) + + def test_K5(self): + G = nx.complete_graph(5) + self.test(G, [(0, 1)], [(0, 1, 3 / math.log(4))]) + + def test_P3(self): + G = nx.path_graph(3) + self.test(G, [(0, 2)], [(0, 2, 1 / math.log(2))]) + + def test_S4(self): + G = nx.star_graph(4) + self.test(G, [(1, 2)], [(1, 2, 1 / math.log(4))]) + + @pytest.mark.parametrize("graph_type", (nx.DiGraph, nx.MultiGraph, nx.MultiDiGraph)) + def test_notimplemented(self, graph_type): + with pytest.raises(nx.NetworkXNotImplemented): + G = graph_type([(0, 1), (1, 2)]) + self.func(G, [(0, 2)]) + + def test_node_not_found(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (2, 3)]) + with pytest.raises(nx.NodeNotFound): + self.func(G, [(0, 4)]) + + def test_no_common_neighbor(self): + G = nx.Graph() + G.add_nodes_from([0, 1]) + self.test(G, [(0, 1)], [(0, 1, 0)]) + + def test_equal_nodes(self): + G = nx.complete_graph(4) + self.test(G, [(0, 0)], [(0, 0, 3 / math.log(3))]) + + def test_all_nonexistent_edges(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (2, 3)]) + self.test( + G, None, [(0, 3, 1 / math.log(2)), (1, 2, 1 / math.log(2)), (1, 3, 0)] + ) + + +class TestCommonNeighborCentrality: + @classmethod + def setup_class(cls): + cls.func = staticmethod(nx.common_neighbor_centrality) + cls.test = staticmethod(partial(_test_func, predict_func=cls.func)) + + def test_K5(self): + G = nx.complete_graph(5) + self.test(G, [(0, 1)], [(0, 1, 3.0)], alpha=1) + self.test(G, [(0, 1)], [(0, 1, 5.0)], alpha=0) + + def test_P3(self): + G = nx.path_graph(3) + self.test(G, [(0, 2)], [(0, 2, 1.25)], alpha=0.5) + + def test_S4(self): + G = nx.star_graph(4) + self.test(G, [(1, 2)], [(1, 2, 1.75)], alpha=0.5) + + @pytest.mark.parametrize("graph_type", (nx.DiGraph, nx.MultiGraph, nx.MultiDiGraph)) + def test_notimplemented(self, graph_type): + G = graph_type([(0, 1), (1, 2)]) + with pytest.raises(nx.NetworkXNotImplemented): + self.func(G, [(0, 2)]) + + def test_node_u_not_found(self): + G = nx.Graph() + G.add_edges_from([(1, 3), (2, 3)]) + with pytest.raises(nx.NodeNotFound): + self.func(G, [(0, 1)]) + + def test_node_v_not_found(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (2, 3)]) + with pytest.raises(nx.NodeNotFound): + self.func(G, [(0, 4)]) + + def test_no_common_neighbor(self): + G = nx.Graph() + G.add_nodes_from([0, 1]) + self.test(G, [(0, 1)], [(0, 1, 0)]) + + def test_equal_nodes(self): + G = nx.complete_graph(4) + with pytest.raises(nx.NetworkXAlgorithmError): + self.test(G, [(0, 0)], []) + + def test_equal_nodes_with_alpha_one_raises_error(self): + G = nx.complete_graph(4) + with pytest.raises(nx.NetworkXAlgorithmError): + self.test(G, [(0, 0)], [], alpha=1.0) + + def test_all_nonexistent_edges(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (2, 3)]) + self.test(G, None, [(0, 3, 1.5), (1, 2, 1.5), (1, 3, 2 / 3)], alpha=0.5) + + +class TestPreferentialAttachment: + @classmethod + def setup_class(cls): + cls.func = staticmethod(nx.preferential_attachment) + cls.test = staticmethod(partial(_test_func, predict_func=cls.func)) + + def test_K5(self): + G = nx.complete_graph(5) + self.test(G, [(0, 1)], [(0, 1, 16)]) + + def test_P3(self): + G = nx.path_graph(3) + self.test(G, [(0, 1)], [(0, 1, 2)]) + + def test_S4(self): + G = nx.star_graph(4) + self.test(G, [(0, 2)], [(0, 2, 4)]) + + @pytest.mark.parametrize("graph_type", (nx.DiGraph, nx.MultiGraph, nx.MultiDiGraph)) + def test_notimplemented(self, graph_type): + G = graph_type([(0, 1), (1, 2)]) + with pytest.raises(nx.NetworkXNotImplemented): + self.func(G, [(0, 2)]) + + def test_node_not_found(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (2, 3)]) + with pytest.raises(nx.NodeNotFound): + self.func(G, [(0, 4)]) + + def test_zero_degrees(self): + G = nx.Graph() + G.add_nodes_from([0, 1]) + self.test(G, [(0, 1)], [(0, 1, 0)]) + + def test_all_nonexistent_edges(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (2, 3)]) + self.test(G, None, [(0, 3, 2), (1, 2, 2), (1, 3, 1)]) + + +class TestCNSoundarajanHopcroft: + @classmethod + def setup_class(cls): + cls.func = staticmethod(nx.cn_soundarajan_hopcroft) + cls.test = staticmethod( + partial(_test_func, predict_func=cls.func, community="community") + ) + + def test_K5(self): + G = nx.complete_graph(5) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 0 + G.nodes[2]["community"] = 0 + G.nodes[3]["community"] = 0 + G.nodes[4]["community"] = 1 + self.test(G, [(0, 1)], [(0, 1, 5)]) + + def test_P3(self): + G = nx.path_graph(3) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 1 + G.nodes[2]["community"] = 0 + self.test(G, [(0, 2)], [(0, 2, 1)]) + + def test_S4(self): + G = nx.star_graph(4) + G.nodes[0]["community"] = 1 + G.nodes[1]["community"] = 1 + G.nodes[2]["community"] = 1 + G.nodes[3]["community"] = 0 + G.nodes[4]["community"] = 0 + self.test(G, [(1, 2)], [(1, 2, 2)]) + + @pytest.mark.parametrize("graph_type", (nx.DiGraph, nx.MultiGraph, nx.MultiDiGraph)) + def test_notimplemented(self, graph_type): + G = graph_type([(0, 1), (1, 2)]) + G.add_nodes_from([0, 1, 2], community=0) + with pytest.raises(nx.NetworkXNotImplemented): + self.func(G, [(0, 2)]) + + def test_node_not_found(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (2, 3)]) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 1 + G.nodes[2]["community"] = 0 + G.nodes[3]["community"] = 0 + with pytest.raises(nx.NodeNotFound): + self.func(G, [(0, 4)]) + + def test_no_common_neighbor(self): + G = nx.Graph() + G.add_nodes_from([0, 1]) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 0 + self.test(G, [(0, 1)], [(0, 1, 0)]) + + def test_equal_nodes(self): + G = nx.complete_graph(3) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 0 + G.nodes[2]["community"] = 0 + self.test(G, [(0, 0)], [(0, 0, 4)]) + + def test_different_community(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 3)]) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 0 + G.nodes[2]["community"] = 0 + G.nodes[3]["community"] = 1 + self.test(G, [(0, 3)], [(0, 3, 2)]) + + def test_no_community_information(self): + G = nx.complete_graph(5) + with pytest.raises(nx.NetworkXAlgorithmError): + list(self.func(G, [(0, 1)])) + + def test_insufficient_community_information(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 3)]) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 0 + G.nodes[3]["community"] = 0 + with pytest.raises(nx.NetworkXAlgorithmError): + list(self.func(G, [(0, 3)])) + + def test_sufficient_community_information(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (1, 2), (1, 3), (2, 4), (3, 4), (4, 5)]) + G.nodes[1]["community"] = 0 + G.nodes[2]["community"] = 0 + G.nodes[3]["community"] = 0 + G.nodes[4]["community"] = 0 + self.test(G, [(1, 4)], [(1, 4, 4)]) + + def test_custom_community_attribute_name(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 3)]) + G.nodes[0]["cmty"] = 0 + G.nodes[1]["cmty"] = 0 + G.nodes[2]["cmty"] = 0 + G.nodes[3]["cmty"] = 1 + self.test(G, [(0, 3)], [(0, 3, 2)], community="cmty") + + def test_all_nonexistent_edges(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (2, 3)]) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 1 + G.nodes[2]["community"] = 0 + G.nodes[3]["community"] = 0 + self.test(G, None, [(0, 3, 2), (1, 2, 1), (1, 3, 0)]) + + +class TestRAIndexSoundarajanHopcroft: + @classmethod + def setup_class(cls): + cls.func = staticmethod(nx.ra_index_soundarajan_hopcroft) + cls.test = staticmethod( + partial(_test_func, predict_func=cls.func, community="community") + ) + + def test_K5(self): + G = nx.complete_graph(5) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 0 + G.nodes[2]["community"] = 0 + G.nodes[3]["community"] = 0 + G.nodes[4]["community"] = 1 + self.test(G, [(0, 1)], [(0, 1, 0.5)]) + + def test_P3(self): + G = nx.path_graph(3) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 1 + G.nodes[2]["community"] = 0 + self.test(G, [(0, 2)], [(0, 2, 0)]) + + def test_S4(self): + G = nx.star_graph(4) + G.nodes[0]["community"] = 1 + G.nodes[1]["community"] = 1 + G.nodes[2]["community"] = 1 + G.nodes[3]["community"] = 0 + G.nodes[4]["community"] = 0 + self.test(G, [(1, 2)], [(1, 2, 0.25)]) + + @pytest.mark.parametrize("graph_type", (nx.DiGraph, nx.MultiGraph, nx.MultiDiGraph)) + def test_notimplemented(self, graph_type): + G = graph_type([(0, 1), (1, 2)]) + G.add_nodes_from([0, 1, 2], community=0) + with pytest.raises(nx.NetworkXNotImplemented): + self.func(G, [(0, 2)]) + + def test_node_not_found(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (2, 3)]) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 1 + G.nodes[2]["community"] = 0 + G.nodes[3]["community"] = 0 + with pytest.raises(nx.NodeNotFound): + self.func(G, [(0, 4)]) + + def test_no_common_neighbor(self): + G = nx.Graph() + G.add_nodes_from([0, 1]) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 0 + self.test(G, [(0, 1)], [(0, 1, 0)]) + + def test_equal_nodes(self): + G = nx.complete_graph(3) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 0 + G.nodes[2]["community"] = 0 + self.test(G, [(0, 0)], [(0, 0, 1)]) + + def test_different_community(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 3)]) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 0 + G.nodes[2]["community"] = 0 + G.nodes[3]["community"] = 1 + self.test(G, [(0, 3)], [(0, 3, 0)]) + + def test_no_community_information(self): + G = nx.complete_graph(5) + with pytest.raises(nx.NetworkXAlgorithmError): + list(self.func(G, [(0, 1)])) + + def test_insufficient_community_information(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 3)]) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 0 + G.nodes[3]["community"] = 0 + with pytest.raises(nx.NetworkXAlgorithmError): + list(self.func(G, [(0, 3)])) + + def test_sufficient_community_information(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (1, 2), (1, 3), (2, 4), (3, 4), (4, 5)]) + G.nodes[1]["community"] = 0 + G.nodes[2]["community"] = 0 + G.nodes[3]["community"] = 0 + G.nodes[4]["community"] = 0 + self.test(G, [(1, 4)], [(1, 4, 1)]) + + def test_custom_community_attribute_name(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 3)]) + G.nodes[0]["cmty"] = 0 + G.nodes[1]["cmty"] = 0 + G.nodes[2]["cmty"] = 0 + G.nodes[3]["cmty"] = 1 + self.test(G, [(0, 3)], [(0, 3, 0)], community="cmty") + + def test_all_nonexistent_edges(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (2, 3)]) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 1 + G.nodes[2]["community"] = 0 + G.nodes[3]["community"] = 0 + self.test(G, None, [(0, 3, 0.5), (1, 2, 0), (1, 3, 0)]) + + +class TestWithinInterCluster: + @classmethod + def setup_class(cls): + cls.delta = 0.001 + cls.func = staticmethod(nx.within_inter_cluster) + cls.test = staticmethod( + partial( + _test_func, + predict_func=cls.func, + delta=cls.delta, + community="community", + ) + ) + + def test_K5(self): + G = nx.complete_graph(5) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 0 + G.nodes[2]["community"] = 0 + G.nodes[3]["community"] = 0 + G.nodes[4]["community"] = 1 + self.test(G, [(0, 1)], [(0, 1, 2 / (1 + self.delta))]) + + def test_P3(self): + G = nx.path_graph(3) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 1 + G.nodes[2]["community"] = 0 + self.test(G, [(0, 2)], [(0, 2, 0)]) + + def test_S4(self): + G = nx.star_graph(4) + G.nodes[0]["community"] = 1 + G.nodes[1]["community"] = 1 + G.nodes[2]["community"] = 1 + G.nodes[3]["community"] = 0 + G.nodes[4]["community"] = 0 + self.test(G, [(1, 2)], [(1, 2, 1 / self.delta)]) + + @pytest.mark.parametrize("graph_type", (nx.DiGraph, nx.MultiGraph, nx.MultiDiGraph)) + def test_notimplemented(self, graph_type): + G = graph_type([(0, 1), (1, 2)]) + G.add_nodes_from([0, 1, 2], community=0) + with pytest.raises(nx.NetworkXNotImplemented): + self.func(G, [(0, 2)]) + + def test_node_not_found(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (2, 3)]) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 1 + G.nodes[2]["community"] = 0 + G.nodes[3]["community"] = 0 + with pytest.raises(nx.NodeNotFound): + self.func(G, [(0, 4)]) + + def test_no_common_neighbor(self): + G = nx.Graph() + G.add_nodes_from([0, 1]) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 0 + self.test(G, [(0, 1)], [(0, 1, 0)]) + + def test_equal_nodes(self): + G = nx.complete_graph(3) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 0 + G.nodes[2]["community"] = 0 + self.test(G, [(0, 0)], [(0, 0, 2 / self.delta)]) + + def test_different_community(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 3)]) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 0 + G.nodes[2]["community"] = 0 + G.nodes[3]["community"] = 1 + self.test(G, [(0, 3)], [(0, 3, 0)]) + + def test_no_inter_cluster_common_neighbor(self): + G = nx.complete_graph(4) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 0 + G.nodes[2]["community"] = 0 + G.nodes[3]["community"] = 0 + self.test(G, [(0, 3)], [(0, 3, 2 / self.delta)]) + + def test_no_community_information(self): + G = nx.complete_graph(5) + with pytest.raises(nx.NetworkXAlgorithmError): + list(self.func(G, [(0, 1)])) + + def test_insufficient_community_information(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 3)]) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 0 + G.nodes[3]["community"] = 0 + with pytest.raises(nx.NetworkXAlgorithmError): + list(self.func(G, [(0, 3)])) + + def test_sufficient_community_information(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (1, 2), (1, 3), (2, 4), (3, 4), (4, 5)]) + G.nodes[1]["community"] = 0 + G.nodes[2]["community"] = 0 + G.nodes[3]["community"] = 0 + G.nodes[4]["community"] = 0 + self.test(G, [(1, 4)], [(1, 4, 2 / self.delta)]) + + def test_invalid_delta(self): + G = nx.complete_graph(3) + G.add_nodes_from([0, 1, 2], community=0) + with pytest.raises(nx.NetworkXAlgorithmError): + self.func(G, [(0, 1)], 0) + with pytest.raises(nx.NetworkXAlgorithmError): + self.func(G, [(0, 1)], -0.5) + + def test_custom_community_attribute_name(self): + G = nx.complete_graph(4) + G.nodes[0]["cmty"] = 0 + G.nodes[1]["cmty"] = 0 + G.nodes[2]["cmty"] = 0 + G.nodes[3]["cmty"] = 0 + self.test(G, [(0, 3)], [(0, 3, 2 / self.delta)], community="cmty") + + def test_all_nonexistent_edges(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (2, 3)]) + G.nodes[0]["community"] = 0 + G.nodes[1]["community"] = 1 + G.nodes[2]["community"] = 0 + G.nodes[3]["community"] = 0 + self.test(G, None, [(0, 3, 1 / self.delta), (1, 2, 0), (1, 3, 0)]) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_lowest_common_ancestors.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_lowest_common_ancestors.py new file mode 100644 index 0000000000000000000000000000000000000000..639a31fd5f306e2df432cf03d45154f5ee3ea48d --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_lowest_common_ancestors.py @@ -0,0 +1,459 @@ +from itertools import chain, combinations, product + +import pytest + +import networkx as nx + +tree_all_pairs_lca = nx.tree_all_pairs_lowest_common_ancestor +all_pairs_lca = nx.all_pairs_lowest_common_ancestor + + +def get_pair(dictionary, n1, n2): + if (n1, n2) in dictionary: + return dictionary[n1, n2] + else: + return dictionary[n2, n1] + + +class TestTreeLCA: + @classmethod + def setup_class(cls): + cls.DG = nx.DiGraph() + edges = [(0, 1), (0, 2), (1, 3), (1, 4), (2, 5), (2, 6)] + cls.DG.add_edges_from(edges) + cls.ans = dict(tree_all_pairs_lca(cls.DG, 0)) + gold = {(n, n): n for n in cls.DG} + gold.update({(0, i): 0 for i in range(1, 7)}) + gold.update( + { + (1, 2): 0, + (1, 3): 1, + (1, 4): 1, + (1, 5): 0, + (1, 6): 0, + (2, 3): 0, + (2, 4): 0, + (2, 5): 2, + (2, 6): 2, + (3, 4): 1, + (3, 5): 0, + (3, 6): 0, + (4, 5): 0, + (4, 6): 0, + (5, 6): 2, + } + ) + + cls.gold = gold + + @staticmethod + def assert_has_same_pairs(d1, d2): + for a, b in ((min(pair), max(pair)) for pair in chain(d1, d2)): + assert get_pair(d1, a, b) == get_pair(d2, a, b) + + def test_tree_all_pairs_lca_default_root(self): + assert dict(tree_all_pairs_lca(self.DG)) == self.ans + + def test_tree_all_pairs_lca_return_subset(self): + test_pairs = [(0, 1), (0, 1), (1, 0)] + ans = dict(tree_all_pairs_lca(self.DG, 0, test_pairs)) + assert (0, 1) in ans and (1, 0) in ans + assert len(ans) == 2 + + def test_tree_all_pairs_lca(self): + all_pairs = chain(combinations(self.DG, 2), ((node, node) for node in self.DG)) + + ans = dict(tree_all_pairs_lca(self.DG, 0, all_pairs)) + self.assert_has_same_pairs(ans, self.ans) + + def test_tree_all_pairs_gold_example(self): + ans = dict(tree_all_pairs_lca(self.DG)) + self.assert_has_same_pairs(self.gold, ans) + + def test_tree_all_pairs_lca_invalid_input(self): + empty_digraph = tree_all_pairs_lca(nx.DiGraph()) + pytest.raises(nx.NetworkXPointlessConcept, list, empty_digraph) + + bad_pairs_digraph = tree_all_pairs_lca(self.DG, pairs=[(-1, -2)]) + pytest.raises(nx.NodeNotFound, list, bad_pairs_digraph) + + def test_tree_all_pairs_lca_subtrees(self): + ans = dict(tree_all_pairs_lca(self.DG, 1)) + gold = { + pair: lca + for (pair, lca) in self.gold.items() + if all(n in (1, 3, 4) for n in pair) + } + self.assert_has_same_pairs(gold, ans) + + def test_tree_all_pairs_lca_disconnected_nodes(self): + G = nx.DiGraph() + G.add_node(1) + assert {(1, 1): 1} == dict(tree_all_pairs_lca(G)) + + G.add_node(0) + assert {(1, 1): 1} == dict(tree_all_pairs_lca(G, 1)) + assert {(0, 0): 0} == dict(tree_all_pairs_lca(G, 0)) + + pytest.raises(nx.NetworkXError, list, tree_all_pairs_lca(G)) + + def test_tree_all_pairs_lca_error_if_input_not_tree(self): + # Cycle + G = nx.DiGraph([(1, 2), (2, 1)]) + pytest.raises(nx.NetworkXError, list, tree_all_pairs_lca(G)) + # DAG + G = nx.DiGraph([(0, 2), (1, 2)]) + pytest.raises(nx.NetworkXError, list, tree_all_pairs_lca(G)) + + def test_tree_all_pairs_lca_generator(self): + pairs = iter([(0, 1), (0, 1), (1, 0)]) + some_pairs = dict(tree_all_pairs_lca(self.DG, 0, pairs)) + assert (0, 1) in some_pairs and (1, 0) in some_pairs + assert len(some_pairs) == 2 + + def test_tree_all_pairs_lca_nonexisting_pairs_exception(self): + lca = tree_all_pairs_lca(self.DG, 0, [(-1, -1)]) + pytest.raises(nx.NodeNotFound, list, lca) + # check if node is None + lca = tree_all_pairs_lca(self.DG, None, [(-1, -1)]) + pytest.raises(nx.NodeNotFound, list, lca) + + def test_tree_all_pairs_lca_routine_bails_on_DAGs(self): + G = nx.DiGraph([(3, 4), (5, 4)]) + pytest.raises(nx.NetworkXError, list, tree_all_pairs_lca(G)) + + def test_tree_all_pairs_lca_not_implemented(self): + NNI = nx.NetworkXNotImplemented + G = nx.Graph([(0, 1)]) + with pytest.raises(NNI): + next(tree_all_pairs_lca(G)) + with pytest.raises(NNI): + next(all_pairs_lca(G)) + pytest.raises(NNI, nx.lowest_common_ancestor, G, 0, 1) + G = nx.MultiGraph([(0, 1)]) + with pytest.raises(NNI): + next(tree_all_pairs_lca(G)) + with pytest.raises(NNI): + next(all_pairs_lca(G)) + pytest.raises(NNI, nx.lowest_common_ancestor, G, 0, 1) + + def test_tree_all_pairs_lca_trees_without_LCAs(self): + G = nx.DiGraph() + G.add_node(3) + ans = list(tree_all_pairs_lca(G)) + assert ans == [((3, 3), 3)] + + +class TestMultiTreeLCA(TestTreeLCA): + @classmethod + def setup_class(cls): + cls.DG = nx.MultiDiGraph() + edges = [(0, 1), (0, 2), (1, 3), (1, 4), (2, 5), (2, 6)] + cls.DG.add_edges_from(edges) + cls.ans = dict(tree_all_pairs_lca(cls.DG, 0)) + # add multiedges + cls.DG.add_edges_from(edges) + + gold = {(n, n): n for n in cls.DG} + gold.update({(0, i): 0 for i in range(1, 7)}) + gold.update( + { + (1, 2): 0, + (1, 3): 1, + (1, 4): 1, + (1, 5): 0, + (1, 6): 0, + (2, 3): 0, + (2, 4): 0, + (2, 5): 2, + (2, 6): 2, + (3, 4): 1, + (3, 5): 0, + (3, 6): 0, + (4, 5): 0, + (4, 6): 0, + (5, 6): 2, + } + ) + + cls.gold = gold + + +class TestDAGLCA: + @classmethod + def setup_class(cls): + cls.DG = nx.DiGraph() + nx.add_path(cls.DG, (0, 1, 2, 3)) + nx.add_path(cls.DG, (0, 4, 3)) + nx.add_path(cls.DG, (0, 5, 6, 8, 3)) + nx.add_path(cls.DG, (5, 7, 8)) + cls.DG.add_edge(6, 2) + cls.DG.add_edge(7, 2) + + cls.root_distance = nx.shortest_path_length(cls.DG, source=0) + + cls.gold = { + (1, 1): 1, + (1, 2): 1, + (1, 3): 1, + (1, 4): 0, + (1, 5): 0, + (1, 6): 0, + (1, 7): 0, + (1, 8): 0, + (2, 2): 2, + (2, 3): 2, + (2, 4): 0, + (2, 5): 5, + (2, 6): 6, + (2, 7): 7, + (2, 8): 7, + (3, 3): 3, + (3, 4): 4, + (3, 5): 5, + (3, 6): 6, + (3, 7): 7, + (3, 8): 8, + (4, 4): 4, + (4, 5): 0, + (4, 6): 0, + (4, 7): 0, + (4, 8): 0, + (5, 5): 5, + (5, 6): 5, + (5, 7): 5, + (5, 8): 5, + (6, 6): 6, + (6, 7): 5, + (6, 8): 6, + (7, 7): 7, + (7, 8): 7, + (8, 8): 8, + } + cls.gold.update(((0, n), 0) for n in cls.DG) + + def assert_lca_dicts_same(self, d1, d2, G=None): + """Checks if d1 and d2 contain the same pairs and + have a node at the same distance from root for each. + If G is None use self.DG.""" + if G is None: + G = self.DG + root_distance = self.root_distance + else: + roots = [n for n, deg in G.in_degree if deg == 0] + assert len(roots) == 1 + root_distance = nx.shortest_path_length(G, source=roots[0]) + + for a, b in ((min(pair), max(pair)) for pair in chain(d1, d2)): + assert ( + root_distance[get_pair(d1, a, b)] == root_distance[get_pair(d2, a, b)] + ) + + def test_all_pairs_lca_gold_example(self): + self.assert_lca_dicts_same(dict(all_pairs_lca(self.DG)), self.gold) + + def test_all_pairs_lca_all_pairs_given(self): + all_pairs = list(product(self.DG.nodes(), self.DG.nodes())) + ans = all_pairs_lca(self.DG, pairs=all_pairs) + self.assert_lca_dicts_same(dict(ans), self.gold) + + def test_all_pairs_lca_generator(self): + all_pairs = product(self.DG.nodes(), self.DG.nodes()) + ans = all_pairs_lca(self.DG, pairs=all_pairs) + self.assert_lca_dicts_same(dict(ans), self.gold) + + def test_all_pairs_lca_input_graph_with_two_roots(self): + G = self.DG.copy() + G.add_edge(9, 10) + G.add_edge(9, 4) + gold = self.gold.copy() + gold[9, 9] = 9 + gold[9, 10] = 9 + gold[9, 4] = 9 + gold[9, 3] = 9 + gold[10, 4] = 9 + gold[10, 3] = 9 + gold[10, 10] = 10 + + testing = dict(all_pairs_lca(G)) + + G.add_edge(-1, 9) + G.add_edge(-1, 0) + self.assert_lca_dicts_same(testing, gold, G) + + def test_all_pairs_lca_nonexisting_pairs_exception(self): + pytest.raises(nx.NodeNotFound, all_pairs_lca, self.DG, [(-1, -1)]) + + def test_all_pairs_lca_pairs_without_lca(self): + G = self.DG.copy() + G.add_node(-1) + gen = all_pairs_lca(G, [(-1, -1), (-1, 0)]) + assert dict(gen) == {(-1, -1): -1} + + def test_all_pairs_lca_null_graph(self): + pytest.raises(nx.NetworkXPointlessConcept, all_pairs_lca, nx.DiGraph()) + + def test_all_pairs_lca_non_dags(self): + pytest.raises(nx.NetworkXError, all_pairs_lca, nx.DiGraph([(3, 4), (4, 3)])) + + def test_all_pairs_lca_nonempty_graph_without_lca(self): + G = nx.DiGraph() + G.add_node(3) + ans = list(all_pairs_lca(G)) + assert ans == [((3, 3), 3)] + + def test_all_pairs_lca_bug_gh4942(self): + G = nx.DiGraph([(0, 2), (1, 2), (2, 3)]) + ans = list(all_pairs_lca(G)) + assert len(ans) == 9 + + def test_all_pairs_lca_default_kwarg(self): + G = nx.DiGraph([(0, 1), (2, 1)]) + sentinel = object() + assert nx.lowest_common_ancestor(G, 0, 2, default=sentinel) is sentinel + + def test_all_pairs_lca_identity(self): + G = nx.DiGraph() + G.add_node(3) + assert nx.lowest_common_ancestor(G, 3, 3) == 3 + + def test_all_pairs_lca_issue_4574(self): + G = nx.DiGraph() + G.add_nodes_from(range(17)) + G.add_edges_from( + [ + (2, 0), + (1, 2), + (3, 2), + (5, 2), + (8, 2), + (11, 2), + (4, 5), + (6, 5), + (7, 8), + (10, 8), + (13, 11), + (14, 11), + (15, 11), + (9, 10), + (12, 13), + (16, 15), + ] + ) + + assert nx.lowest_common_ancestor(G, 7, 9) is None + + def test_all_pairs_lca_one_pair_gh4942(self): + G = nx.DiGraph() + # Note: order edge addition is critical to the test + G.add_edge(0, 1) + G.add_edge(2, 0) + G.add_edge(2, 3) + G.add_edge(4, 0) + G.add_edge(5, 2) + + assert nx.lowest_common_ancestor(G, 1, 3) == 2 + + +class TestMultiDiGraph_DAGLCA(TestDAGLCA): + @classmethod + def setup_class(cls): + cls.DG = nx.MultiDiGraph() + nx.add_path(cls.DG, (0, 1, 2, 3)) + # add multiedges + nx.add_path(cls.DG, (0, 1, 2, 3)) + nx.add_path(cls.DG, (0, 4, 3)) + nx.add_path(cls.DG, (0, 5, 6, 8, 3)) + nx.add_path(cls.DG, (5, 7, 8)) + cls.DG.add_edge(6, 2) + cls.DG.add_edge(7, 2) + + cls.root_distance = nx.shortest_path_length(cls.DG, source=0) + + cls.gold = { + (1, 1): 1, + (1, 2): 1, + (1, 3): 1, + (1, 4): 0, + (1, 5): 0, + (1, 6): 0, + (1, 7): 0, + (1, 8): 0, + (2, 2): 2, + (2, 3): 2, + (2, 4): 0, + (2, 5): 5, + (2, 6): 6, + (2, 7): 7, + (2, 8): 7, + (3, 3): 3, + (3, 4): 4, + (3, 5): 5, + (3, 6): 6, + (3, 7): 7, + (3, 8): 8, + (4, 4): 4, + (4, 5): 0, + (4, 6): 0, + (4, 7): 0, + (4, 8): 0, + (5, 5): 5, + (5, 6): 5, + (5, 7): 5, + (5, 8): 5, + (6, 6): 6, + (6, 7): 5, + (6, 8): 6, + (7, 7): 7, + (7, 8): 7, + (8, 8): 8, + } + cls.gold.update(((0, n), 0) for n in cls.DG) + + +def test_all_pairs_lca_self_ancestors(): + """Self-ancestors should always be the node itself, i.e. lca of (0, 0) is 0. + See gh-4458.""" + # DAG for test - note order of node/edge addition is relevant + G = nx.DiGraph() + G.add_nodes_from(range(5)) + G.add_edges_from([(1, 0), (2, 0), (3, 2), (4, 1), (4, 3)]) + + ap_lca = nx.all_pairs_lowest_common_ancestor + assert all(u == v == a for (u, v), a in ap_lca(G) if u == v) + MG = nx.MultiDiGraph(G) + assert all(u == v == a for (u, v), a in ap_lca(MG) if u == v) + MG.add_edges_from([(1, 0), (2, 0)]) + assert all(u == v == a for (u, v), a in ap_lca(MG) if u == v) + + +def test_lca_on_null_graph(): + G = nx.null_graph(create_using=nx.DiGraph) + with pytest.raises( + nx.NetworkXPointlessConcept, match="LCA meaningless on null graphs" + ): + nx.lowest_common_ancestor(G, 0, 0) + + +def test_lca_on_cycle_graph(): + G = nx.cycle_graph(6, create_using=nx.DiGraph) + with pytest.raises( + nx.NetworkXError, match="LCA only defined on directed acyclic graphs" + ): + nx.lowest_common_ancestor(G, 0, 3) + + +def test_lca_multiple_valid_solutions(): + G = nx.DiGraph() + G.add_nodes_from(range(4)) + G.add_edges_from([(2, 0), (3, 0), (2, 1), (3, 1)]) + assert nx.lowest_common_ancestor(G, 0, 1) in {2, 3} + + +def test_lca_dont_rely_on_single_successor(): + # Nodes 0 and 1 have nodes 2 and 3 as immediate ancestors, + # and node 2 also has node 3 as an immediate ancestor. + G = nx.DiGraph() + G.add_nodes_from(range(4)) + G.add_edges_from([(2, 0), (2, 1), (3, 1), (3, 0), (3, 2)]) + assert nx.lowest_common_ancestor(G, 0, 1) == 2 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_matching.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_matching.py new file mode 100644 index 0000000000000000000000000000000000000000..5c98900669edf2cd1edbe37471b2cb1b56ae466e --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_matching.py @@ -0,0 +1,556 @@ +import math +from itertools import permutations + +import pytest + +import networkx as nx +from networkx.utils import edges_equal + + +@pytest.mark.parametrize( + "fn", (nx.is_matching, nx.is_maximal_matching, nx.is_perfect_matching) +) +@pytest.mark.parametrize( + "edgeset", + ( + {(0, 5)}, # Single edge, node not in G + {(5, 0)}, # for both edge orders + {(0, 5), (2, 3)}, # node not in G, but other edge is valid matching + {(5, 5), (2, 3)}, # Self-loop hits node not in G validation first + ), +) +def test_is_matching_node_not_in_G(fn, edgeset): + """All is_*matching functions have consistent exception message for node + not in G.""" + G = nx.path_graph(4) + with pytest.raises(nx.NetworkXError, match="matching.*with node not in G"): + fn(G, edgeset) + + +@pytest.mark.parametrize( + "fn", (nx.is_matching, nx.is_maximal_matching, nx.is_perfect_matching) +) +@pytest.mark.parametrize( + "edgeset", + ( + {(0, 1, 2), (2, 3)}, # 3-tuple + {(0,), (2, 3)}, # 1-tuple + ), +) +def test_is_matching_invalid_edge(fn, edgeset): + """All is_*matching functions have consistent exception message for invalid + edges in matching.""" + G = nx.path_graph(4) + with pytest.raises(nx.NetworkXError, match=".*non-2-tuple edge.*"): + fn(G, edgeset) + + +@pytest.mark.parametrize("graph_type", (nx.MultiGraph, nx.DiGraph, nx.MultiDiGraph)) +@pytest.mark.parametrize( + "fn", (nx.max_weight_matching, nx.min_weight_matching, nx.maximal_matching) +) +def test_wrong_graph_type(fn, graph_type): + G = graph_type() + with pytest.raises(nx.NetworkXNotImplemented): + fn(G) + + +class TestMaxWeightMatching: + """Unit tests for the + :func:`~networkx.algorithms.matching.max_weight_matching` function. + + """ + + def test_trivial1(self): + """Empty graph""" + G = nx.Graph() + assert nx.max_weight_matching(G) == set() + assert nx.min_weight_matching(G) == set() + + def test_selfloop(self): + G = nx.Graph() + G.add_edge(0, 0, weight=100) + assert nx.max_weight_matching(G) == set() + assert nx.min_weight_matching(G) == set() + + def test_single_edge(self): + G = nx.Graph() + G.add_edge(0, 1) + assert edges_equal(nx.max_weight_matching(G), {(0, 1)}) + assert edges_equal(nx.min_weight_matching(G), {(0, 1)}) + + def test_two_path(self): + G = nx.Graph() + G.add_edge("one", "two", weight=10) + G.add_edge("two", "three", weight=11) + assert edges_equal(nx.max_weight_matching(G), {("two", "three")}) + assert edges_equal(nx.min_weight_matching(G), {("one", "two")}) + + def test_path(self): + G = nx.Graph() + G.add_edge(1, 2, weight=5) + G.add_edge(2, 3, weight=11) + G.add_edge(3, 4, weight=5) + assert edges_equal(nx.max_weight_matching(G), {(2, 3)}) + assert edges_equal(nx.max_weight_matching(G, weight=None), {(1, 2), (3, 4)}) + assert edges_equal(nx.min_weight_matching(G), {(1, 2), (3, 4)}) + assert edges_equal(nx.min_weight_matching(G, weight=None), {(1, 2), (3, 4)}) + + def test_square(self): + G = nx.Graph() + G.add_edge(1, 4, weight=2) + G.add_edge(2, 3, weight=2) + G.add_edge(1, 2, weight=1) + G.add_edge(3, 4, weight=4) + assert edges_equal(nx.max_weight_matching(G), {(1, 2), (3, 4)}) + assert edges_equal(nx.min_weight_matching(G), {(1, 4), (2, 3)}) + + def test_edge_attribute_name(self): + G = nx.Graph() + G.add_edge("one", "two", weight=10, abcd=11) + G.add_edge("two", "three", weight=11, abcd=10) + assert edges_equal(nx.max_weight_matching(G, weight="abcd"), {("one", "two")}) + assert edges_equal(nx.min_weight_matching(G, weight="abcd"), {("two", "three")}) + + def test_floating_point_weights(self): + G = nx.Graph() + G.add_edge(1, 2, weight=math.pi) + G.add_edge(2, 3, weight=math.exp(1)) + G.add_edge(1, 3, weight=3.0) + G.add_edge(1, 4, weight=math.sqrt(2.0)) + assert edges_equal(nx.max_weight_matching(G), {(1, 4), (2, 3)}) + assert edges_equal(nx.min_weight_matching(G), {(1, 4), (2, 3)}) + + def test_negative_weights(self): + G = nx.Graph() + G.add_edge(1, 2, weight=2) + G.add_edge(1, 3, weight=-2) + G.add_edge(2, 3, weight=1) + G.add_edge(2, 4, weight=-1) + G.add_edge(3, 4, weight=-6) + assert edges_equal(nx.max_weight_matching(G), {(1, 2)}) + assert edges_equal( + nx.max_weight_matching(G, maxcardinality=True), {(1, 3), (2, 4)} + ) + assert edges_equal(nx.min_weight_matching(G), {(1, 2), (3, 4)}) + + def test_s_blossom(self): + """Create S-blossom and use it for augmentation:""" + G = nx.Graph() + G.add_weighted_edges_from([(1, 2, 8), (1, 3, 9), (2, 3, 10), (3, 4, 7)]) + answer = {(1, 2), (3, 4)} + assert edges_equal(nx.max_weight_matching(G), answer) + assert edges_equal(nx.min_weight_matching(G), answer) + + G.add_weighted_edges_from([(1, 6, 5), (4, 5, 6)]) + answer = {(1, 6), (2, 3), (4, 5)} + assert edges_equal(nx.max_weight_matching(G), answer) + assert edges_equal(nx.min_weight_matching(G), answer) + + def test_s_t_blossom(self): + """Create S-blossom, relabel as T-blossom, use for augmentation:""" + G = nx.Graph() + G.add_weighted_edges_from( + [(1, 2, 9), (1, 3, 8), (2, 3, 10), (1, 4, 5), (4, 5, 4), (1, 6, 3)] + ) + answer = {(1, 6), (2, 3), (4, 5)} + assert edges_equal(nx.max_weight_matching(G), answer) + assert edges_equal(nx.min_weight_matching(G), answer) + + G.add_edge(4, 5, weight=3) + G.add_edge(1, 6, weight=4) + assert edges_equal(nx.max_weight_matching(G), answer) + assert edges_equal(nx.min_weight_matching(G), answer) + + G.remove_edge(1, 6) + G.add_edge(3, 6, weight=4) + answer = {(1, 2), (3, 6), (4, 5)} + assert edges_equal(nx.max_weight_matching(G), answer) + assert edges_equal(nx.min_weight_matching(G), answer) + + def test_nested_s_blossom(self): + """Create nested S-blossom, use for augmentation:""" + + G = nx.Graph() + G.add_weighted_edges_from( + [ + (1, 2, 9), + (1, 3, 9), + (2, 3, 10), + (2, 4, 8), + (3, 5, 8), + (4, 5, 10), + (5, 6, 6), + ] + ) + expected_edgeset = {(1, 3), (2, 4), (5, 6)} + expected = {frozenset(e) for e in expected_edgeset} + answer = {frozenset(e) for e in nx.max_weight_matching(G)} + assert answer == expected + answer = {frozenset(e) for e in nx.min_weight_matching(G)} + assert answer == expected + + def test_nested_s_blossom_relabel(self): + """Create S-blossom, relabel as S, include in nested S-blossom:""" + G = nx.Graph() + G.add_weighted_edges_from( + [ + (1, 2, 10), + (1, 7, 10), + (2, 3, 12), + (3, 4, 20), + (3, 5, 20), + (4, 5, 25), + (5, 6, 10), + (6, 7, 10), + (7, 8, 8), + ] + ) + answer = {(1, 2), (3, 4), (5, 6), (7, 8)} + assert edges_equal(nx.max_weight_matching(G), answer) + assert edges_equal(nx.min_weight_matching(G), answer) + + def test_nested_s_blossom_expand(self): + """Create nested S-blossom, augment, expand recursively:""" + G = nx.Graph() + G.add_weighted_edges_from( + [ + (1, 2, 8), + (1, 3, 8), + (2, 3, 10), + (2, 4, 12), + (3, 5, 12), + (4, 5, 14), + (4, 6, 12), + (5, 7, 12), + (6, 7, 14), + (7, 8, 12), + ] + ) + answer = {(1, 2), (3, 5), (4, 6), (7, 8)} + assert edges_equal(nx.max_weight_matching(G), answer) + assert edges_equal(nx.min_weight_matching(G), answer) + + def test_s_blossom_relabel_expand(self): + """Create S-blossom, relabel as T, expand:""" + G = nx.Graph() + G.add_weighted_edges_from( + [ + (1, 2, 23), + (1, 5, 22), + (1, 6, 15), + (2, 3, 25), + (3, 4, 22), + (4, 5, 25), + (4, 8, 14), + (5, 7, 13), + ] + ) + answer = {(1, 6), (2, 3), (4, 8), (5, 7)} + assert edges_equal(nx.max_weight_matching(G), answer) + assert edges_equal(nx.min_weight_matching(G), answer) + + def test_nested_s_blossom_relabel_expand(self): + """Create nested S-blossom, relabel as T, expand:""" + G = nx.Graph() + G.add_weighted_edges_from( + [ + (1, 2, 19), + (1, 3, 20), + (1, 8, 8), + (2, 3, 25), + (2, 4, 18), + (3, 5, 18), + (4, 5, 13), + (4, 7, 7), + (5, 6, 7), + ] + ) + answer = {(1, 8), (2, 3), (4, 7), (5, 6)} + assert edges_equal(nx.max_weight_matching(G), answer) + assert edges_equal(nx.min_weight_matching(G), answer) + + def test_nasty_blossom1(self): + """Create blossom, relabel as T in more than one way, expand, + augment: + """ + G = nx.Graph() + G.add_weighted_edges_from( + [ + (1, 2, 45), + (1, 5, 45), + (2, 3, 50), + (3, 4, 45), + (4, 5, 50), + (1, 6, 30), + (3, 9, 35), + (4, 8, 35), + (5, 7, 26), + (9, 10, 5), + ] + ) + answer = {(1, 6), (2, 3), (4, 8), (5, 7), (9, 10)} + assert edges_equal(nx.max_weight_matching(G), answer) + assert edges_equal(nx.min_weight_matching(G), answer) + + def test_nasty_blossom2(self): + """Again but slightly different:""" + G = nx.Graph() + G.add_weighted_edges_from( + [ + (1, 2, 45), + (1, 5, 45), + (2, 3, 50), + (3, 4, 45), + (4, 5, 50), + (1, 6, 30), + (3, 9, 35), + (4, 8, 26), + (5, 7, 40), + (9, 10, 5), + ] + ) + answer = {(1, 6), (2, 3), (4, 8), (5, 7), (9, 10)} + assert edges_equal(nx.max_weight_matching(G), answer) + assert edges_equal(nx.min_weight_matching(G), answer) + + def test_nasty_blossom_least_slack(self): + """Create blossom, relabel as T, expand such that a new + least-slack S-to-free dge is produced, augment: + """ + G = nx.Graph() + G.add_weighted_edges_from( + [ + (1, 2, 45), + (1, 5, 45), + (2, 3, 50), + (3, 4, 45), + (4, 5, 50), + (1, 6, 30), + (3, 9, 35), + (4, 8, 28), + (5, 7, 26), + (9, 10, 5), + ] + ) + answer = {(1, 6), (2, 3), (4, 8), (5, 7), (9, 10)} + assert edges_equal(nx.max_weight_matching(G), answer) + assert edges_equal(nx.min_weight_matching(G), answer) + + def test_nasty_blossom_augmenting(self): + """Create nested blossom, relabel as T in more than one way""" + # expand outer blossom such that inner blossom ends up on an + # augmenting path: + G = nx.Graph() + G.add_weighted_edges_from( + [ + (1, 2, 45), + (1, 7, 45), + (2, 3, 50), + (3, 4, 45), + (4, 5, 95), + (4, 6, 94), + (5, 6, 94), + (6, 7, 50), + (1, 8, 30), + (3, 11, 35), + (5, 9, 36), + (7, 10, 26), + (11, 12, 5), + ] + ) + answer = {(1, 8), (2, 3), (4, 6), (5, 9), (7, 10), (11, 12)} + assert edges_equal(nx.max_weight_matching(G), answer) + assert edges_equal(nx.min_weight_matching(G), answer) + + def test_nasty_blossom_expand_recursively(self): + """Create nested S-blossom, relabel as S, expand recursively:""" + G = nx.Graph() + G.add_weighted_edges_from( + [ + (1, 2, 40), + (1, 3, 40), + (2, 3, 60), + (2, 4, 55), + (3, 5, 55), + (4, 5, 50), + (1, 8, 15), + (5, 7, 30), + (7, 6, 10), + (8, 10, 10), + (4, 9, 30), + ] + ) + answer = {(1, 2), (3, 5), (4, 9), (6, 7), (8, 10)} + assert edges_equal(nx.max_weight_matching(G), answer) + assert edges_equal(nx.min_weight_matching(G), answer) + + def test_min_weight_matching_max_cardinality(self): + G = nx.Graph() + G.add_weighted_edges_from([(1, 2, 1000), (2, 3, 2), (3, 4, 3000)]) + # The minimum-weight maximal matching is {(2, 3)}; the minimum-weight + # maximum-cardinality matching is {(1, 2), (3, 4)}. See gh-8062. + answer = {(1, 2), (3, 4)} + assert edges_equal(nx.min_weight_matching(G), answer) + + +class TestIsMatching: + """Unit tests for the + :func:`~networkx.algorithms.matching.is_matching` function. + + """ + + def test_dict(self): + G = nx.path_graph(4) + assert nx.is_matching(G, {0: 1, 1: 0, 2: 3, 3: 2}) + + def test_empty_matching(self): + G = nx.path_graph(4) + assert nx.is_matching(G, set()) + + def test_single_edge(self): + G = nx.path_graph(4) + assert nx.is_matching(G, {(1, 2)}) + + def test_edge_order(self): + G = nx.path_graph(4) + assert nx.is_matching(G, {(0, 1), (2, 3)}) + assert nx.is_matching(G, {(1, 0), (2, 3)}) + assert nx.is_matching(G, {(0, 1), (3, 2)}) + assert nx.is_matching(G, {(1, 0), (3, 2)}) + + def test_valid_matching(self): + G = nx.path_graph(4) + assert nx.is_matching(G, {(0, 1), (2, 3)}) + + def test_selfloops(self): + G = nx.path_graph(4) + # selfloop edge not in G + assert not nx.is_matching(G, {(0, 0), (1, 2), (2, 3)}) + # selfloop edge in G + G.add_edge(0, 0) + assert not nx.is_matching(G, {(0, 0), (1, 2)}) + + def test_invalid_matching(self): + G = nx.path_graph(4) + assert not nx.is_matching(G, {(0, 1), (1, 2), (2, 3)}) + + def test_invalid_edge(self): + G = nx.path_graph(4) + assert not nx.is_matching(G, {(0, 3), (1, 2)}) + + G = nx.DiGraph(G.edges) + assert nx.is_matching(G, {(0, 1)}) + assert not nx.is_matching(G, {(1, 0)}) + + +class TestIsMaximalMatching: + """Unit tests for the + :func:`~networkx.algorithms.matching.is_maximal_matching` function. + + """ + + def test_dict(self): + G = nx.path_graph(4) + assert nx.is_maximal_matching(G, {0: 1, 1: 0, 2: 3, 3: 2}) + + def test_valid(self): + G = nx.path_graph(4) + assert nx.is_maximal_matching(G, {(0, 1), (2, 3)}) + + def test_not_matching(self): + G = nx.path_graph(4) + assert not nx.is_maximal_matching(G, {(0, 1), (1, 2), (2, 3)}) + assert not nx.is_maximal_matching(G, {(0, 3)}) + G.add_edge(0, 0) + assert not nx.is_maximal_matching(G, {(0, 0)}) + + def test_not_maximal(self): + G = nx.path_graph(4) + assert not nx.is_maximal_matching(G, {(0, 1)}) + + +class TestIsPerfectMatching: + """Unit tests for the + :func:`~networkx.algorithms.matching.is_perfect_matching` function. + + """ + + def test_dict(self): + G = nx.path_graph(4) + assert nx.is_perfect_matching(G, {0: 1, 1: 0, 2: 3, 3: 2}) + + def test_valid(self): + G = nx.path_graph(4) + assert nx.is_perfect_matching(G, {(0, 1), (2, 3)}) + + def test_valid_not_path(self): + G = nx.cycle_graph(4) + G.add_edge(0, 4) + G.add_edge(1, 4) + G.add_edge(5, 2) + + assert nx.is_perfect_matching(G, {(1, 4), (0, 3), (5, 2)}) + + def test_selfloops(self): + G = nx.path_graph(4) + # selfloop edge not in G + assert not nx.is_perfect_matching(G, {(0, 0), (1, 2), (2, 3)}) + # selfloop edge in G + G.add_edge(0, 0) + assert not nx.is_perfect_matching(G, {(0, 0), (1, 2)}) + + def test_not_matching(self): + G = nx.path_graph(4) + assert not nx.is_perfect_matching(G, {(0, 3)}) + assert not nx.is_perfect_matching(G, {(0, 1), (1, 2), (2, 3)}) + + def test_maximal_but_not_perfect(self): + G = nx.cycle_graph(4) + G.add_edge(0, 4) + G.add_edge(1, 4) + + assert not nx.is_perfect_matching(G, {(1, 4), (0, 3)}) + + +class TestMaximalMatching: + """Unit tests for the + :func:`~networkx.algorithms.matching.maximal_matching`. + + """ + + def test_valid_matching(self): + edges = [(1, 2), (1, 5), (2, 3), (2, 5), (3, 4), (3, 6), (5, 6)] + G = nx.Graph(edges) + matching = nx.maximal_matching(G) + assert nx.is_maximal_matching(G, matching) + + def test_single_edge_matching(self): + # In the star graph, any maximal matching has just one edge. + G = nx.star_graph(5) + matching = nx.maximal_matching(G) + assert 1 == len(matching) + assert nx.is_maximal_matching(G, matching) + + def test_self_loops(self): + # Create the path graph with two self-loops. + G = nx.path_graph(3) + G.add_edges_from([(0, 0), (1, 1)]) + matching = nx.maximal_matching(G) + assert len(matching) == 1 + # The matching should never include self-loops. + assert not any(u == v for u, v in matching) + assert nx.is_maximal_matching(G, matching) + + def test_ordering(self): + """Tests that a maximal matching is computed correctly + regardless of the order in which nodes are added to the graph. + + """ + for nodes in permutations(range(3)): + G = nx.Graph() + G.add_nodes_from(nodes) + G.add_edges_from([(0, 1), (0, 2)]) + matching = nx.maximal_matching(G) + assert len(matching) == 1 + assert nx.is_maximal_matching(G, matching) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_max_weight_clique.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_max_weight_clique.py new file mode 100644 index 0000000000000000000000000000000000000000..6cd8584ebd5c2ab04741234018a976472a92ef91 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_max_weight_clique.py @@ -0,0 +1,179 @@ +"""Maximum weight clique test suite.""" + +import pytest + +import networkx as nx + + +class TestMaximumWeightClique: + def test_basic_cases(self): + def check_basic_case(graph_func, expected_weight, weight_accessor): + graph = graph_func() + clique, weight = nx.algorithms.max_weight_clique(graph, weight_accessor) + assert verify_clique( + graph, clique, weight, expected_weight, weight_accessor + ) + + for graph_func, (expected_weight, expected_size) in TEST_CASES.items(): + check_basic_case(graph_func, expected_weight, "weight") + check_basic_case(graph_func, expected_size, None) + + def test_key_error(self): + graph = two_node_graph() + with pytest.raises(KeyError): + nx.algorithms.max_weight_clique(graph, "nonexistent-key") + + def test_error_on_non_integer_weight(self): + graph = two_node_graph() + graph.nodes[2]["weight"] = 1.5 + with pytest.raises(ValueError): + nx.algorithms.max_weight_clique(graph) + + def test_unaffected_by_self_loops(self): + graph = two_node_graph() + graph.add_edge(1, 1) + graph.add_edge(2, 2) + clique, weight = nx.algorithms.max_weight_clique(graph, "weight") + assert verify_clique(graph, clique, weight, 30, "weight") + graph = three_node_independent_set() + graph.add_edge(1, 1) + clique, weight = nx.algorithms.max_weight_clique(graph, "weight") + assert verify_clique(graph, clique, weight, 20, "weight") + + def test_30_node_prob(self): + G = nx.Graph() + G.add_nodes_from(range(1, 31)) + for i in range(1, 31): + G.nodes[i]["weight"] = i + 1 + # fmt: off + G.add_edges_from( + [ + (1, 12), (1, 13), (1, 15), (1, 16), (1, 18), (1, 19), (1, 20), + (1, 23), (1, 26), (1, 28), (1, 29), (1, 30), (2, 3), (2, 4), + (2, 5), (2, 8), (2, 9), (2, 10), (2, 14), (2, 17), (2, 18), + (2, 21), (2, 22), (2, 23), (2, 27), (3, 9), (3, 15), (3, 21), + (3, 22), (3, 23), (3, 24), (3, 27), (3, 28), (3, 29), (4, 5), + (4, 6), (4, 8), (4, 21), (4, 22), (4, 23), (4, 26), (4, 28), + (4, 30), (5, 6), (5, 8), (5, 9), (5, 13), (5, 14), (5, 15), + (5, 16), (5, 20), (5, 21), (5, 22), (5, 25), (5, 28), (5, 29), + (6, 7), (6, 8), (6, 13), (6, 17), (6, 18), (6, 19), (6, 24), + (6, 26), (6, 27), (6, 28), (6, 29), (7, 12), (7, 14), (7, 15), + (7, 16), (7, 17), (7, 20), (7, 25), (7, 27), (7, 29), (7, 30), + (8, 10), (8, 15), (8, 16), (8, 18), (8, 20), (8, 22), (8, 24), + (8, 26), (8, 27), (8, 28), (8, 30), (9, 11), (9, 12), (9, 13), + (9, 14), (9, 15), (9, 16), (9, 19), (9, 20), (9, 21), (9, 24), + (9, 30), (10, 12), (10, 15), (10, 18), (10, 19), (10, 20), + (10, 22), (10, 23), (10, 24), (10, 26), (10, 27), (10, 29), + (10, 30), (11, 13), (11, 15), (11, 16), (11, 17), (11, 18), + (11, 19), (11, 20), (11, 22), (11, 29), (11, 30), (12, 14), + (12, 17), (12, 18), (12, 19), (12, 20), (12, 21), (12, 23), + (12, 25), (12, 26), (12, 30), (13, 20), (13, 22), (13, 23), + (13, 24), (13, 30), (14, 16), (14, 20), (14, 21), (14, 22), + (14, 23), (14, 25), (14, 26), (14, 27), (14, 29), (14, 30), + (15, 17), (15, 18), (15, 20), (15, 21), (15, 26), (15, 27), + (15, 28), (16, 17), (16, 18), (16, 19), (16, 20), (16, 21), + (16, 29), (16, 30), (17, 18), (17, 21), (17, 22), (17, 25), + (17, 27), (17, 28), (17, 30), (18, 19), (18, 20), (18, 21), + (18, 22), (18, 23), (18, 24), (19, 20), (19, 22), (19, 23), + (19, 24), (19, 25), (19, 27), (19, 30), (20, 21), (20, 23), + (20, 24), (20, 26), (20, 28), (20, 29), (21, 23), (21, 26), + (21, 27), (21, 29), (22, 24), (22, 25), (22, 26), (22, 29), + (23, 25), (23, 30), (24, 25), (24, 26), (25, 27), (25, 29), + (26, 27), (26, 28), (26, 30), (28, 29), (29, 30), + ] + ) + # fmt: on + clique, weight = nx.algorithms.max_weight_clique(G) + assert verify_clique(G, clique, weight, 111, "weight") + + +# ############################ Utility functions ############################ +def verify_clique( + graph, clique, reported_clique_weight, expected_clique_weight, weight_accessor +): + for node1 in clique: + for node2 in clique: + if node1 == node2: + continue + if not graph.has_edge(node1, node2): + return False + + if weight_accessor is None: + clique_weight = len(clique) + else: + clique_weight = sum(graph.nodes[v]["weight"] for v in clique) + + if clique_weight != expected_clique_weight: + return False + if clique_weight != reported_clique_weight: + return False + + return True + + +# ############################ Graph Generation ############################ + + +def empty_graph(): + return nx.Graph() + + +def one_node_graph(): + graph = nx.Graph() + graph.add_nodes_from([1]) + graph.nodes[1]["weight"] = 10 + return graph + + +def two_node_graph(): + graph = nx.Graph() + graph.add_nodes_from([1, 2]) + graph.add_edges_from([(1, 2)]) + graph.nodes[1]["weight"] = 10 + graph.nodes[2]["weight"] = 20 + return graph + + +def three_node_clique(): + graph = nx.Graph() + graph.add_nodes_from([1, 2, 3]) + graph.add_edges_from([(1, 2), (1, 3), (2, 3)]) + graph.nodes[1]["weight"] = 10 + graph.nodes[2]["weight"] = 20 + graph.nodes[3]["weight"] = 5 + return graph + + +def three_node_independent_set(): + graph = nx.Graph() + graph.add_nodes_from([1, 2, 3]) + graph.nodes[1]["weight"] = 10 + graph.nodes[2]["weight"] = 20 + graph.nodes[3]["weight"] = 5 + return graph + + +def disconnected(): + graph = nx.Graph() + graph.add_edges_from([(1, 2), (2, 3), (4, 5), (5, 6)]) + graph.nodes[1]["weight"] = 10 + graph.nodes[2]["weight"] = 20 + graph.nodes[3]["weight"] = 5 + graph.nodes[4]["weight"] = 100 + graph.nodes[5]["weight"] = 200 + graph.nodes[6]["weight"] = 50 + return graph + + +# -------------------------------------------------------------------------- +# Basic tests for all strategies +# For each basic graph function, specify expected weight of max weight clique +# and expected size of maximum clique +TEST_CASES = { + empty_graph: (0, 0), + one_node_graph: (10, 1), + two_node_graph: (30, 2), + three_node_clique: (35, 3), + three_node_independent_set: (20, 1), + disconnected: (300, 2), +} diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_mis.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_mis.py new file mode 100644 index 0000000000000000000000000000000000000000..02be02d4c33f233d27d2838e5e3d361c4212c40b --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_mis.py @@ -0,0 +1,62 @@ +""" +Tests for maximal (not maximum) independent sets. + +""" + +import random + +import pytest + +import networkx as nx + + +def test_random_seed(): + G = nx.empty_graph(5) + assert nx.maximal_independent_set(G, seed=1) == [1, 0, 3, 2, 4] + + +@pytest.mark.parametrize("graph", [nx.complete_graph(5), nx.complete_graph(55)]) +def test_K5(graph): + """Maximal independent set for complete graphs""" + assert all(nx.maximal_independent_set(graph, [n]) == [n] for n in graph) + + +def test_exceptions(): + """Bad input should raise exception.""" + G = nx.florentine_families_graph() + pytest.raises(nx.NetworkXUnfeasible, nx.maximal_independent_set, G, ["Smith"]) + pytest.raises( + nx.NetworkXUnfeasible, nx.maximal_independent_set, G, ["Salviati", "Pazzi"] + ) + # MaximalIndependentSet is not implemented for directed graphs + pytest.raises(nx.NetworkXNotImplemented, nx.maximal_independent_set, nx.DiGraph(G)) + + +def test_florentine_family(): + G = nx.florentine_families_graph() + indep = nx.maximal_independent_set(G, ["Medici", "Bischeri"]) + assert set(indep) == { + "Medici", + "Bischeri", + "Castellani", + "Pazzi", + "Ginori", + "Lamberteschi", + } + + +def test_bipartite(): + G = nx.complete_bipartite_graph(12, 34) + indep = nx.maximal_independent_set(G, [4, 5, 9, 10]) + assert sorted(indep) == list(range(12)) + + +def test_random_graphs(): + """Generate 5 random graphs of different types and sizes and + make sure that all sets are independent and maximal.""" + for i in range(0, 50, 10): + G = nx.erdos_renyi_graph(i * 10 + 1, random.random()) + IS = nx.maximal_independent_set(G) + assert G.subgraph(IS).number_of_edges() == 0 + nbrs_of_MIS = set.union(*(set(G.neighbors(v)) for v in IS)) + assert all(v in nbrs_of_MIS for v in set(G.nodes()).difference(IS)) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_moral.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_moral.py new file mode 100644 index 0000000000000000000000000000000000000000..fc98c9729a95897857013ae22333e3b8c17202fb --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_moral.py @@ -0,0 +1,15 @@ +import networkx as nx +from networkx.algorithms.moral import moral_graph + + +def test_get_moral_graph(): + graph = nx.DiGraph() + graph.add_nodes_from([1, 2, 3, 4, 5, 6, 7]) + graph.add_edges_from([(1, 2), (3, 2), (4, 1), (4, 5), (6, 5), (7, 5)]) + H = moral_graph(graph) + assert not H.is_directed() + assert H.has_edge(1, 3) + assert H.has_edge(4, 6) + assert H.has_edge(6, 7) + assert H.has_edge(4, 7) + assert not H.has_edge(1, 5) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_node_classification.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_node_classification.py new file mode 100644 index 0000000000000000000000000000000000000000..2e1fc79d48ae830625c3528f52e805d2e0d183ad --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_node_classification.py @@ -0,0 +1,140 @@ +import pytest + +pytest.importorskip("numpy") +pytest.importorskip("scipy") + +import networkx as nx +from networkx.algorithms import node_classification + + +class TestHarmonicFunction: + def test_path_graph(self): + G = nx.path_graph(4) + label_name = "label" + G.nodes[0][label_name] = "A" + G.nodes[3][label_name] = "B" + predicted = node_classification.harmonic_function(G, label_name=label_name) + assert predicted[0] == "A" + assert predicted[1] == "A" + assert predicted[2] == "B" + assert predicted[3] == "B" + + def test_no_labels(self): + with pytest.raises(nx.NetworkXError): + G = nx.path_graph(4) + node_classification.harmonic_function(G) + + def test_no_nodes(self): + with pytest.raises(nx.NetworkXError): + G = nx.Graph() + node_classification.harmonic_function(G) + + def test_no_edges(self): + with pytest.raises(nx.NetworkXError): + G = nx.Graph() + G.add_node(1) + G.add_node(2) + node_classification.harmonic_function(G) + + def test_digraph(self): + with pytest.raises(nx.NetworkXNotImplemented): + G = nx.DiGraph() + G.add_edge(0, 1) + G.add_edge(1, 2) + G.add_edge(2, 3) + label_name = "label" + G.nodes[0][label_name] = "A" + G.nodes[3][label_name] = "B" + node_classification.harmonic_function(G) + + def test_one_labeled_node(self): + G = nx.path_graph(4) + label_name = "label" + G.nodes[0][label_name] = "A" + predicted = node_classification.harmonic_function(G, label_name=label_name) + assert predicted[0] == "A" + assert predicted[1] == "A" + assert predicted[2] == "A" + assert predicted[3] == "A" + + def test_nodes_all_labeled(self): + G = nx.karate_club_graph() + label_name = "club" + predicted = node_classification.harmonic_function(G, label_name=label_name) + for i in range(len(G)): + assert predicted[i] == G.nodes[i][label_name] + + def test_labeled_nodes_are_not_changed(self): + G = nx.karate_club_graph() + label_name = "club" + label_removed = {0, 1, 2, 3, 4, 5, 6, 7} + for i in label_removed: + del G.nodes[i][label_name] + predicted = node_classification.harmonic_function(G, label_name=label_name) + label_not_removed = set(range(len(G))) - label_removed + for i in label_not_removed: + assert predicted[i] == G.nodes[i][label_name] + + +class TestLocalAndGlobalConsistency: + def test_path_graph(self): + G = nx.path_graph(4) + label_name = "label" + G.nodes[0][label_name] = "A" + G.nodes[3][label_name] = "B" + predicted = node_classification.local_and_global_consistency( + G, label_name=label_name + ) + assert predicted[0] == "A" + assert predicted[1] == "A" + assert predicted[2] == "B" + assert predicted[3] == "B" + + def test_no_labels(self): + with pytest.raises(nx.NetworkXError): + G = nx.path_graph(4) + node_classification.local_and_global_consistency(G) + + def test_no_nodes(self): + with pytest.raises(nx.NetworkXError): + G = nx.Graph() + node_classification.local_and_global_consistency(G) + + def test_no_edges(self): + with pytest.raises(nx.NetworkXError): + G = nx.Graph() + G.add_node(1) + G.add_node(2) + node_classification.local_and_global_consistency(G) + + def test_digraph(self): + with pytest.raises(nx.NetworkXNotImplemented): + G = nx.DiGraph() + G.add_edge(0, 1) + G.add_edge(1, 2) + G.add_edge(2, 3) + label_name = "label" + G.nodes[0][label_name] = "A" + G.nodes[3][label_name] = "B" + node_classification.harmonic_function(G) + + def test_one_labeled_node(self): + G = nx.path_graph(4) + label_name = "label" + G.nodes[0][label_name] = "A" + predicted = node_classification.local_and_global_consistency( + G, label_name=label_name + ) + assert predicted[0] == "A" + assert predicted[1] == "A" + assert predicted[2] == "A" + assert predicted[3] == "A" + + def test_nodes_all_labeled(self): + G = nx.karate_club_graph() + label_name = "club" + predicted = node_classification.local_and_global_consistency( + G, alpha=0, label_name=label_name + ) + for i in range(len(G)): + assert predicted[i] == G.nodes[i][label_name] diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_non_randomness.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_non_randomness.py new file mode 100644 index 0000000000000000000000000000000000000000..bdbcdaf15445f17fb22a7e3ec737a9f1a774b51c --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_non_randomness.py @@ -0,0 +1,60 @@ +import pytest + +import networkx as nx + +np = pytest.importorskip("numpy") + + +@pytest.mark.parametrize( + "k, weight, expected", + [ + (None, None, 7.21), # infers 3 communities + (2, None, 11.7), + (None, "weight", 25.45), + (2, "weight", 38.8), + ], +) +def test_non_randomness(k, weight, expected): + G = nx.karate_club_graph() + np.testing.assert_almost_equal( + nx.non_randomness(G, k, weight)[0], expected, decimal=2 + ) + + +def test_non_connected(): + G = nx.Graph([(1, 2)]) + G.add_node(3) + with pytest.raises(nx.NetworkXException, match="Non connected"): + nx.non_randomness(G) + + +def test_self_loops(): + G = nx.Graph() + G.add_edge(1, 2) + G.add_edge(1, 1) + with pytest.raises(nx.NetworkXError, match="Graph must not contain self-loops"): + nx.non_randomness(G) + + +def test_empty_graph(): + G = nx.empty_graph(1) + with pytest.raises(nx.NetworkXError, match=".*not applicable to empty graphs"): + nx.non_randomness(G) + + +@pytest.mark.parametrize("k", [-1, 0, 2, 5]) +def test_value_error(k): + """ + Check that invalid values of k raise (must be between 1 and n - 1, inclusive, + and such that the probability is between 0 and 1, exclusive). + """ + G = nx.path_graph(5) + with pytest.raises(ValueError, match=r"invalid number of communities"): + nx.non_randomness(G, k=k) + + +@pytest.mark.parametrize("G", [nx.DiGraph(), nx.MultiGraph(), nx.MultiDiGraph()]) +def test_not_implemented(G): + """Check that non-randomness is not implemented for directed or multigraphs.""" + with pytest.raises(nx.NetworkXNotImplemented, match=r"not implemented for"): + nx.non_randomness(G) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_perfect_graph.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_perfect_graph.py new file mode 100644 index 0000000000000000000000000000000000000000..51c12589fb713176d1a06b272c63e095d04ad2af --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_perfect_graph.py @@ -0,0 +1,27 @@ +import networkx as nx + + +def test_chordal_graph(): + G = nx.complete_graph(5) + assert nx.is_perfect_graph(G) + + +def test_odd_cycle(): + G = nx.cycle_graph(5) # Induced odd cycle + assert not nx.is_perfect_graph(G) + + +def test_even_cycle(): + G = nx.cycle_graph(6) # Even cycle is perfect + assert nx.is_perfect_graph(G) + + +def test_complement_of_odd_cycle(): + G = nx.cycle_graph(7) + GC = nx.complement(G) + assert not nx.is_perfect_graph(GC) + + +def test_disconnected_union_of_cliques(): + G = nx.disjoint_union(nx.complete_graph(3), nx.complete_graph(4)) + assert nx.is_perfect_graph(G) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_planar_drawing.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_planar_drawing.py new file mode 100644 index 0000000000000000000000000000000000000000..b59d5c17331d6aac71e688b3dfde46991ea2ef97 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_planar_drawing.py @@ -0,0 +1,274 @@ +import math + +import pytest + +import networkx as nx +from networkx.algorithms.planar_drawing import triangulate_embedding + + +def test_graph1(): + embedding_data = {0: [1, 2, 3], 1: [2, 0], 2: [3, 0, 1], 3: [2, 0]} + check_embedding_data(embedding_data) + + +def test_graph2(): + embedding_data = { + 0: [8, 6], + 1: [2, 6, 9], + 2: [8, 1, 7, 9, 6, 4], + 3: [9], + 4: [2], + 5: [6, 8], + 6: [9, 1, 0, 5, 2], + 7: [9, 2], + 8: [0, 2, 5], + 9: [1, 6, 2, 7, 3], + } + check_embedding_data(embedding_data) + + +def test_circle_graph(): + embedding_data = { + 0: [1, 9], + 1: [0, 2], + 2: [1, 3], + 3: [2, 4], + 4: [3, 5], + 5: [4, 6], + 6: [5, 7], + 7: [6, 8], + 8: [7, 9], + 9: [8, 0], + } + check_embedding_data(embedding_data) + + +def test_grid_graph(): + embedding_data = { + (0, 1): [(0, 0), (1, 1), (0, 2)], + (1, 2): [(1, 1), (2, 2), (0, 2)], + (0, 0): [(0, 1), (1, 0)], + (2, 1): [(2, 0), (2, 2), (1, 1)], + (1, 1): [(2, 1), (1, 2), (0, 1), (1, 0)], + (2, 0): [(1, 0), (2, 1)], + (2, 2): [(1, 2), (2, 1)], + (1, 0): [(0, 0), (2, 0), (1, 1)], + (0, 2): [(1, 2), (0, 1)], + } + check_embedding_data(embedding_data) + + +def test_one_node_graph(): + embedding_data = {0: []} + check_embedding_data(embedding_data) + + +def test_two_node_graph(): + embedding_data = {0: [1], 1: [0]} + check_embedding_data(embedding_data) + + +def test_three_node_graph(): + embedding_data = {0: [1, 2], 1: [0, 2], 2: [0, 1]} + check_embedding_data(embedding_data) + + +def test_multiple_component_graph1(): + embedding_data = {0: [], 1: []} + check_embedding_data(embedding_data) + + +def test_multiple_component_graph2(): + embedding_data = {0: [1, 2], 1: [0, 2], 2: [0, 1], 3: [4, 5], 4: [3, 5], 5: [3, 4]} + check_embedding_data(embedding_data) + + +def test_invalid_half_edge(): + with pytest.raises(nx.NetworkXException): + embedding_data = {1: [2, 3, 4], 2: [1, 3, 4], 3: [1, 2, 4], 4: [1, 2, 3]} + embedding = nx.PlanarEmbedding() + embedding.set_data(embedding_data) + nx.combinatorial_embedding_to_pos(embedding) + + +def test_triangulate_embedding1(): + embedding = nx.PlanarEmbedding() + embedding.add_node(1) + expected_embedding = {1: []} + check_triangulation(embedding, expected_embedding) + + +def test_triangulate_embedding2(): + embedding = nx.PlanarEmbedding() + embedding.connect_components(1, 2) + expected_embedding = {1: [2], 2: [1]} + check_triangulation(embedding, expected_embedding) + + +def check_triangulation(embedding, expected_embedding): + res_embedding, _ = triangulate_embedding(embedding, True) + assert res_embedding.get_data() == expected_embedding, ( + "Expected embedding incorrect" + ) + res_embedding, _ = triangulate_embedding(embedding, False) + assert res_embedding.get_data() == expected_embedding, ( + "Expected embedding incorrect" + ) + + +def check_embedding_data(embedding_data): + """Checks that the planar embedding of the input is correct""" + embedding = nx.PlanarEmbedding() + embedding.set_data(embedding_data) + pos_fully = nx.combinatorial_embedding_to_pos(embedding, False) + msg = "Planar drawing does not conform to the embedding (fully triangulation)" + assert planar_drawing_conforms_to_embedding(embedding, pos_fully), msg + check_edge_intersections(embedding, pos_fully) + pos_internally = nx.combinatorial_embedding_to_pos(embedding, True) + msg = "Planar drawing does not conform to the embedding (internal triangulation)" + assert planar_drawing_conforms_to_embedding(embedding, pos_internally), msg + check_edge_intersections(embedding, pos_internally) + + +def is_close(a, b, rel_tol=1e-09, abs_tol=0.0): + # Check if float numbers are basically equal, for python >=3.5 there is + # function for that in the standard library + return abs(a - b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol) + + +def point_in_between(a, b, p): + # checks if p is on the line between a and b + x1, y1 = a + x2, y2 = b + px, py = p + dist_1_2 = math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2) + dist_1_p = math.sqrt((x1 - px) ** 2 + (y1 - py) ** 2) + dist_2_p = math.sqrt((x2 - px) ** 2 + (y2 - py) ** 2) + return is_close(dist_1_p + dist_2_p, dist_1_2) + + +def check_edge_intersections(G, pos): + """Check all edges in G for intersections. + + Raises an exception if an intersection is found. + + Parameters + ---------- + G : NetworkX graph + pos : dict + Maps every node to a tuple (x, y) representing its position + + """ + for a, b in G.edges(): + for c, d in G.edges(): + # Check if end points are different + if a != c and b != d and b != c and a != d: + x1, y1 = pos[a] + x2, y2 = pos[b] + x3, y3 = pos[c] + x4, y4 = pos[d] + determinant = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4) + if determinant != 0: # the lines are not parallel + # calculate intersection point, see: + # https://en.wikipedia.org/wiki/Line%E2%80%93line_intersection + px = (x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * ( + x3 * y4 - y3 * x4 + ) / determinant + py = (x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * ( + x3 * y4 - y3 * x4 + ) / determinant + + # Check if intersection lies between the points + if point_in_between(pos[a], pos[b], (px, py)) and point_in_between( + pos[c], pos[d], (px, py) + ): + msg = f"There is an intersection at {px},{py}" + raise nx.NetworkXException(msg) + + # Check overlap + msg = "A node lies on a edge connecting two other nodes" + if ( + point_in_between(pos[a], pos[b], pos[c]) + or point_in_between(pos[a], pos[b], pos[d]) + or point_in_between(pos[c], pos[d], pos[a]) + or point_in_between(pos[c], pos[d], pos[b]) + ): + raise nx.NetworkXException(msg) + # No edge intersection found + + +class Vector: + """Compare vectors by their angle without loss of precision + + All vectors in direction [0, 1] are the smallest. + The vectors grow in clockwise direction. + """ + + __slots__ = ["x", "y", "node", "quadrant"] + + def __init__(self, x, y, node): + self.x = x + self.y = y + self.node = node + if self.x >= 0 and self.y > 0: + self.quadrant = 1 + elif self.x > 0 and self.y <= 0: + self.quadrant = 2 + elif self.x <= 0 and self.y < 0: + self.quadrant = 3 + else: + self.quadrant = 4 + + def __eq__(self, other): + return self.quadrant == other.quadrant and self.x * other.y == self.y * other.x + + def __lt__(self, other): + if self.quadrant < other.quadrant: + return True + elif self.quadrant > other.quadrant: + return False + else: + return self.x * other.y < self.y * other.x + + def __ne__(self, other): + return self != other + + def __le__(self, other): + return not other < self + + def __gt__(self, other): + return other < self + + def __ge__(self, other): + return not self < other + + +def planar_drawing_conforms_to_embedding(embedding, pos): + """Checks if pos conforms to the planar embedding + + Returns true iff the neighbors are actually oriented in the orientation + specified of the embedding + """ + for v in embedding: + nbr_vectors = [] + v_pos = pos[v] + for nbr in embedding[v]: + new_vector = Vector(pos[nbr][0] - v_pos[0], pos[nbr][1] - v_pos[1], nbr) + nbr_vectors.append(new_vector) + # Sort neighbors according to their phi angle + nbr_vectors.sort() + for idx, nbr_vector in enumerate(nbr_vectors): + cw_vector = nbr_vectors[(idx + 1) % len(nbr_vectors)] + ccw_vector = nbr_vectors[idx - 1] + if ( + embedding[v][nbr_vector.node]["cw"] != cw_vector.node + or embedding[v][nbr_vector.node]["ccw"] != ccw_vector.node + ): + return False + if cw_vector.node != nbr_vector.node and cw_vector == nbr_vector: + # Lines overlap + return False + if ccw_vector.node != nbr_vector.node and ccw_vector == nbr_vector: + # Lines overlap + return False + return True diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_planarity.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_planarity.py new file mode 100644 index 0000000000000000000000000000000000000000..af2d9a981d0120f97dce4a3a32bef457431c2e3d --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_planarity.py @@ -0,0 +1,556 @@ +import pytest + +import networkx as nx +from networkx.algorithms.planarity import ( + check_planarity_recursive, + get_counterexample, + get_counterexample_recursive, +) + + +class TestLRPlanarity: + """Nose Unit tests for the :mod:`networkx.algorithms.planarity` module. + + Tests three things: + 1. Check that the result is correct + (returns planar if and only if the graph is actually planar) + 2. In case a counter example is returned: Check if it is correct + 3. In case an embedding is returned: Check if its actually an embedding + """ + + @staticmethod + def check_graph(G, is_planar=None): + """Raises an exception if the lr_planarity check returns a wrong result + + Parameters + ---------- + G : NetworkX graph + is_planar : bool + The expected result of the planarity check. + If set to None only counter example or embedding are verified. + + """ + + # obtain results of planarity check + is_planar_lr, result = nx.check_planarity(G, True) + is_planar_lr_rec, result_rec = check_planarity_recursive(G, True) + + if is_planar is not None: + # set a message for the assert + if is_planar: + msg = "Wrong planarity check result. Should be planar." + else: + msg = "Wrong planarity check result. Should be non-planar." + + # check if the result is as expected + assert is_planar == is_planar_lr, msg + assert is_planar == is_planar_lr_rec, msg + + if is_planar_lr: + # check embedding + check_embedding(G, result) + check_embedding(G, result_rec) + else: + # check counter example + check_counterexample(G, result) + check_counterexample(G, result_rec) + + def test_simple_planar_graph(self): + e = [ + (1, 2), + (2, 3), + (3, 4), + (4, 6), + (6, 7), + (7, 1), + (1, 5), + (5, 2), + (2, 4), + (4, 5), + (5, 7), + ] + self.check_graph(nx.Graph(e), is_planar=True) + + def test_planar_with_selfloop(self): + e = [ + (1, 1), + (2, 2), + (3, 3), + (4, 4), + (5, 5), + (1, 2), + (1, 3), + (1, 5), + (2, 5), + (2, 4), + (3, 4), + (3, 5), + (4, 5), + ] + self.check_graph(nx.Graph(e), is_planar=True) + + def test_k3_3(self): + self.check_graph(nx.complete_bipartite_graph(3, 3), is_planar=False) + + def test_k5(self): + self.check_graph(nx.complete_graph(5), is_planar=False) + + def test_multiple_components_planar(self): + e = [(1, 2), (2, 3), (3, 1), (4, 5), (5, 6), (6, 4)] + self.check_graph(nx.Graph(e), is_planar=True) + + def test_multiple_components_non_planar(self): + G = nx.complete_graph(5) + # add another planar component to the non planar component + # G stays non planar + G.add_edges_from([(6, 7), (7, 8), (8, 6)]) + self.check_graph(G, is_planar=False) + + def test_non_planar_with_selfloop(self): + G = nx.complete_graph(5) + # add self loops + for i in range(5): + G.add_edge(i, i) + self.check_graph(G, is_planar=False) + + def test_non_planar1(self): + # tests a graph that has no subgraph directly isomorph to K5 or K3_3 + e = [ + (1, 5), + (1, 6), + (1, 7), + (2, 6), + (2, 3), + (3, 5), + (3, 7), + (4, 5), + (4, 6), + (4, 7), + ] + self.check_graph(nx.Graph(e), is_planar=False) + + def test_loop(self): + # test a graph with a selfloop + e = [(1, 2), (2, 2)] + G = nx.Graph(e) + self.check_graph(G, is_planar=True) + + def test_comp(self): + # test multiple component graph + e = [(1, 2), (3, 4)] + G = nx.Graph(e) + G.remove_edge(1, 2) + self.check_graph(G, is_planar=True) + + def test_goldner_harary(self): + # test goldner-harary graph (a maximal planar graph) + e = [ + (1, 2), + (1, 3), + (1, 4), + (1, 5), + (1, 7), + (1, 8), + (1, 10), + (1, 11), + (2, 3), + (2, 4), + (2, 6), + (2, 7), + (2, 9), + (2, 10), + (2, 11), + (3, 4), + (4, 5), + (4, 6), + (4, 7), + (5, 7), + (6, 7), + (7, 8), + (7, 9), + (7, 10), + (8, 10), + (9, 10), + (10, 11), + ] + G = nx.Graph(e) + self.check_graph(G, is_planar=True) + + def test_planar_multigraph(self): + G = nx.MultiGraph([(1, 2), (1, 2), (1, 2), (1, 2), (2, 3), (3, 1)]) + self.check_graph(G, is_planar=True) + + def test_non_planar_multigraph(self): + G = nx.MultiGraph(nx.complete_graph(5)) + G.add_edges_from([(1, 2)] * 5) + self.check_graph(G, is_planar=False) + + def test_planar_digraph(self): + G = nx.DiGraph([(1, 2), (2, 3), (2, 4), (4, 1), (4, 2), (1, 4), (3, 2)]) + self.check_graph(G, is_planar=True) + + def test_non_planar_digraph(self): + G = nx.DiGraph(nx.complete_graph(5)) + G.remove_edge(1, 2) + G.remove_edge(4, 1) + self.check_graph(G, is_planar=False) + + def test_single_component(self): + # Test a graph with only a single node + G = nx.Graph() + G.add_node(1) + self.check_graph(G, is_planar=True) + + def test_graph1(self): + G = nx.Graph( + [ + (3, 10), + (2, 13), + (1, 13), + (7, 11), + (0, 8), + (8, 13), + (0, 2), + (0, 7), + (0, 10), + (1, 7), + ] + ) + self.check_graph(G, is_planar=True) + + def test_graph2(self): + G = nx.Graph( + [ + (1, 2), + (4, 13), + (0, 13), + (4, 5), + (7, 10), + (1, 7), + (0, 3), + (2, 6), + (5, 6), + (7, 13), + (4, 8), + (0, 8), + (0, 9), + (2, 13), + (6, 7), + (3, 6), + (2, 8), + ] + ) + self.check_graph(G, is_planar=False) + + def test_graph3(self): + G = nx.Graph( + [ + (0, 7), + (3, 11), + (3, 4), + (8, 9), + (4, 11), + (1, 7), + (1, 13), + (1, 11), + (3, 5), + (5, 7), + (1, 3), + (0, 4), + (5, 11), + (5, 13), + ] + ) + self.check_graph(G, is_planar=False) + + def test_counterexample_planar(self): + with pytest.raises(nx.NetworkXException): + # Try to get a counterexample of a planar graph + G = nx.Graph() + G.add_node(1) + get_counterexample(G) + + def test_counterexample_planar_recursive(self): + with pytest.raises(nx.NetworkXException): + # Try to get a counterexample of a planar graph + G = nx.Graph() + G.add_node(1) + get_counterexample_recursive(G) + + def test_edge_removal_from_planar_embedding(self): + # PlanarEmbedding.check_structure() must succeed after edge removal + edges = ((0, 1), (1, 2), (2, 3), (3, 4), (4, 0), (0, 2), (0, 3)) + G = nx.Graph(edges) + cert, P = nx.check_planarity(G) + assert cert is True + P.remove_edge(0, 2) + self.check_graph(P, is_planar=True) + P.add_half_edge_ccw(1, 3, 2) + P.add_half_edge_cw(3, 1, 2) + self.check_graph(P, is_planar=True) + P.remove_edges_from(((0, 3), (1, 3))) + self.check_graph(P, is_planar=True) + + @pytest.mark.parametrize("graph_type", (nx.Graph, nx.MultiGraph)) + def test_graph_planar_embedding_to_undirected(self, graph_type): + G = graph_type([(0, 1), (0, 1), (1, 2), (2, 3), (3, 0), (0, 2)]) + is_planar, P = nx.check_planarity(G) + assert is_planar + U = P.to_undirected() + assert isinstance(U, nx.Graph) + assert all((d == {} for _, _, d in U.edges(data=True))) + + @pytest.mark.parametrize( + "reciprocal, as_view", [(True, True), (True, False), (False, True)] + ) + def test_planar_embedding_to_undirected_invalid_parameters( + self, reciprocal, as_view + ): + G = nx.Graph([(0, 1), (1, 2), (2, 3), (3, 0), (0, 2)]) + is_planar, P = nx.check_planarity(G) + assert is_planar + with pytest.raises(ValueError, match="is not supported for PlanarEmbedding."): + P.to_undirected(reciprocal=reciprocal, as_view=as_view) + + +def check_embedding(G, embedding): + """Raises an exception if the combinatorial embedding is not correct + + Parameters + ---------- + G : NetworkX graph + embedding : a dict mapping nodes to a list of edges + This specifies the ordering of the outgoing edges from a node for + a combinatorial embedding + + Notes + ----- + Checks the following things: + - The type of the embedding is correct + - The nodes and edges match the original graph + - Every half edge has its matching opposite half edge + - No intersections of edges (checked by Euler's formula) + """ + + if not isinstance(embedding, nx.PlanarEmbedding): + raise nx.NetworkXException("Bad embedding. Not of type nx.PlanarEmbedding") + + # Check structure + embedding.check_structure() + + # Check that graphs are equivalent + + assert set(G.nodes) == set(embedding.nodes), ( + "Bad embedding. Nodes don't match the original graph." + ) + + # Check that the edges are equal + g_edges = set() + for edge in G.edges: + if edge[0] != edge[1]: + g_edges.add((edge[0], edge[1])) + g_edges.add((edge[1], edge[0])) + assert g_edges == set(embedding.edges), ( + "Bad embedding. Edges don't match the original graph." + ) + + +def check_counterexample(G, sub_graph): + """Raises an exception if the counterexample is wrong. + + Parameters + ---------- + G : NetworkX graph + subdivision_nodes : set + A set of nodes inducing a subgraph as a counterexample + """ + # 1. Create the sub graph + sub_graph = nx.Graph(sub_graph) + + # 2. Remove self loops + for u in sub_graph: + if sub_graph.has_edge(u, u): + sub_graph.remove_edge(u, u) + + # keep track of nodes we might need to contract + contract = list(sub_graph) + + # 3. Contract Edges + while len(contract) > 0: + contract_node = contract.pop() + if contract_node not in sub_graph: + # Node was already contracted + continue + degree = sub_graph.degree[contract_node] + # Check if we can remove the node + if degree == 2: + # Get the two neighbors + neighbors = iter(sub_graph[contract_node]) + u = next(neighbors) + v = next(neighbors) + # Save nodes for later + contract.append(u) + contract.append(v) + # Contract edge + sub_graph.remove_node(contract_node) + sub_graph.add_edge(u, v) + + # 4. Check for isomorphism with K5 or K3_3 graphs + if len(sub_graph) == 5: + if not nx.is_isomorphic(nx.complete_graph(5), sub_graph): + raise nx.NetworkXException("Bad counter example.") + elif len(sub_graph) == 6: + if not nx.is_isomorphic(nx.complete_bipartite_graph(3, 3), sub_graph): + raise nx.NetworkXException("Bad counter example.") + else: + raise nx.NetworkXException("Bad counter example.") + + +class TestPlanarEmbeddingClass: + def test_add_half_edge(self): + embedding = nx.PlanarEmbedding() + embedding.add_half_edge(0, 1) + with pytest.raises( + nx.NetworkXException, match="Invalid clockwise reference node." + ): + embedding.add_half_edge(0, 2, cw=3) + with pytest.raises( + nx.NetworkXException, match="Invalid counterclockwise reference node." + ): + embedding.add_half_edge(0, 2, ccw=3) + with pytest.raises( + nx.NetworkXException, match="Only one of cw/ccw can be specified." + ): + embedding.add_half_edge(0, 2, cw=1, ccw=1) + with pytest.raises( + nx.NetworkXException, + match=( + r"Node already has out-half-edge\(s\), either" + " cw or ccw reference node required." + ), + ): + embedding.add_half_edge(0, 2) + # these should work + embedding.add_half_edge(0, 2, cw=1) + embedding.add_half_edge(0, 3, ccw=1) + assert sorted(embedding.edges(data=True)) == [ + (0, 1, {"ccw": 2, "cw": 3}), + (0, 2, {"cw": 1, "ccw": 3}), + (0, 3, {"cw": 2, "ccw": 1}), + ] + + def test_get_data(self): + embedding = self.get_star_embedding(4) + data = embedding.get_data() + data_cmp = {0: [3, 2, 1], 1: [0], 2: [0], 3: [0]} + assert data == data_cmp + + def test_edge_removal(self): + embedding = nx.PlanarEmbedding() + embedding.set_data( + { + 1: [2, 5, 7], + 2: [1, 3, 4, 5], + 3: [2, 4], + 4: [3, 6, 5, 2], + 5: [7, 1, 2, 4], + 6: [4, 7], + 7: [6, 1, 5], + } + ) + # remove_edges_from() calls remove_edge(), so both are tested here + embedding.remove_edges_from(((5, 4), (1, 5))) + embedding.check_structure() + embedding_expected = nx.PlanarEmbedding() + embedding_expected.set_data( + { + 1: [2, 7], + 2: [1, 3, 4, 5], + 3: [2, 4], + 4: [3, 6, 2], + 5: [7, 2], + 6: [4, 7], + 7: [6, 1, 5], + } + ) + assert nx.utils.graphs_equal(embedding, embedding_expected) + + def test_missing_edge_orientation(self): + embedding = nx.PlanarEmbedding({1: {2: {}}, 2: {1: {}}}) + with pytest.raises(nx.NetworkXException): + # Invalid structure because the orientation of the edge was not set + embedding.check_structure() + + def test_invalid_edge_orientation(self): + embedding = nx.PlanarEmbedding( + { + 1: {2: {"cw": 2, "ccw": 2}}, + 2: {1: {"cw": 1, "ccw": 1}}, + 1: {3: {}}, + 3: {1: {}}, + } + ) + with pytest.raises(nx.NetworkXException): + embedding.check_structure() + + def test_missing_half_edge(self): + embedding = nx.PlanarEmbedding() + embedding.add_half_edge(1, 2) + with pytest.raises(nx.NetworkXException): + # Invalid structure because other half edge is missing + embedding.check_structure() + + def test_not_fulfilling_euler_formula(self): + embedding = nx.PlanarEmbedding() + for i in range(5): + ref = None + for j in range(5): + if i != j: + embedding.add_half_edge(i, j, cw=ref) + ref = j + with pytest.raises(nx.NetworkXException): + embedding.check_structure() + + def test_missing_reference(self): + embedding = nx.PlanarEmbedding() + with pytest.raises(nx.NetworkXException, match="Invalid reference node."): + embedding.add_half_edge(1, 2, ccw=3) + + def test_connect_components(self): + embedding = nx.PlanarEmbedding() + embedding.connect_components(1, 2) + + def test_successful_face_traversal(self): + embedding = nx.PlanarEmbedding() + embedding.add_half_edge(1, 2) + embedding.add_half_edge(2, 1) + face = embedding.traverse_face(1, 2) + assert face == [1, 2] + + def test_unsuccessful_face_traversal(self): + embedding = nx.PlanarEmbedding( + {1: {2: {"cw": 3, "ccw": 2}}, 2: {1: {"cw": 3, "ccw": 1}}} + ) + with pytest.raises(nx.NetworkXException): + embedding.traverse_face(1, 2) + + def test_forbidden_methods(self): + embedding = nx.PlanarEmbedding() + embedding.add_node(42) # no exception + embedding.add_nodes_from([(23, 24)]) # no exception + with pytest.raises(NotImplementedError): + embedding.add_edge(1, 3) + with pytest.raises(NotImplementedError): + embedding.add_edges_from([(0, 2), (1, 4)]) + with pytest.raises(NotImplementedError): + embedding.add_weighted_edges_from([(0, 2, 350), (1, 4, 125)]) + + @staticmethod + def get_star_embedding(n): + embedding = nx.PlanarEmbedding() + ref = None + for i in range(1, n): + embedding.add_half_edge(0, i, cw=ref) + ref = i + embedding.add_half_edge(i, 0) + return embedding diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_polynomials.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_polynomials.py new file mode 100644 index 0000000000000000000000000000000000000000..a81d6a69551ead74d3335fda408111a0b580bf6a --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_polynomials.py @@ -0,0 +1,57 @@ +"""Unit tests for the :mod:`networkx.algorithms.polynomials` module.""" + +import pytest + +import networkx as nx + +sympy = pytest.importorskip("sympy") + + +# Mapping of input graphs to a string representation of their tutte polynomials +_test_tutte_graphs = { + nx.complete_graph(1): "1", + nx.complete_graph(4): "x**3 + 3*x**2 + 4*x*y + 2*x + y**3 + 3*y**2 + 2*y", + nx.cycle_graph(5): "x**4 + x**3 + x**2 + x + y", + nx.diamond_graph(): "x**3 + 2*x**2 + 2*x*y + x + y**2 + y", +} + +_test_chromatic_graphs = { + nx.complete_graph(1): "x", + nx.complete_graph(4): "x**4 - 6*x**3 + 11*x**2 - 6*x", + nx.cycle_graph(5): "x**5 - 5*x**4 + 10*x**3 - 10*x**2 + 4*x", + nx.diamond_graph(): "x**4 - 5*x**3 + 8*x**2 - 4*x", + nx.path_graph(5): "x**5 - 4*x**4 + 6*x**3 - 4*x**2 + x", +} + + +@pytest.mark.parametrize(("G", "expected"), _test_tutte_graphs.items()) +def test_tutte_polynomial(G, expected): + assert nx.tutte_polynomial(G).equals(expected) + + +@pytest.mark.parametrize("G", _test_tutte_graphs.keys()) +def test_tutte_polynomial_disjoint(G): + """Tutte polynomial factors into the Tutte polynomials of its components. + Verify this property with the disjoint union of two copies of the input graph. + """ + t_g = nx.tutte_polynomial(G) + H = nx.disjoint_union(G, G) + t_h = nx.tutte_polynomial(H) + assert sympy.simplify(t_g * t_g).equals(t_h) + + +@pytest.mark.parametrize(("G", "expected"), _test_chromatic_graphs.items()) +def test_chromatic_polynomial(G, expected): + assert nx.chromatic_polynomial(G).equals(expected) + + +@pytest.mark.parametrize("G", _test_chromatic_graphs.keys()) +def test_chromatic_polynomial_disjoint(G): + """Chromatic polynomial factors into the Chromatic polynomials of its + components. Verify this property with the disjoint union of two copies of + the input graph. + """ + x_g = nx.chromatic_polynomial(G) + H = nx.disjoint_union(G, G) + x_h = nx.chromatic_polynomial(H) + assert sympy.simplify(x_g * x_g).equals(x_h) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_reciprocity.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_reciprocity.py new file mode 100644 index 0000000000000000000000000000000000000000..e713bc4303f9bfea1199f01d8369c6bdab1a221f --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_reciprocity.py @@ -0,0 +1,37 @@ +import pytest + +import networkx as nx + + +class TestReciprocity: + # test overall reciprocity by passing whole graph + def test_reciprocity_digraph(self): + DG = nx.DiGraph([(1, 2), (2, 1)]) + reciprocity = nx.reciprocity(DG) + assert reciprocity == 1.0 + + # test empty graph's overall reciprocity which will throw an error + def test_overall_reciprocity_empty_graph(self): + with pytest.raises(nx.NetworkXError): + DG = nx.DiGraph() + nx.overall_reciprocity(DG) + + # test for reciprocity for a list of nodes + def test_reciprocity_graph_nodes(self): + DG = nx.DiGraph([(1, 2), (2, 3), (3, 2)]) + reciprocity = nx.reciprocity(DG, [1, 2]) + expected_reciprocity = {1: 0.0, 2: 0.6666666666666666} + assert reciprocity == expected_reciprocity + + # test for reciprocity for a single node + def test_reciprocity_graph_node(self): + DG = nx.DiGraph([(1, 2), (2, 3), (3, 2)]) + reciprocity = nx.reciprocity(DG, 2) + assert reciprocity == 0.6666666666666666 + + # test for reciprocity for an isolated node + def test_reciprocity_graph_isolated_nodes(self): + with pytest.raises(nx.NetworkXError): + DG = nx.DiGraph([(1, 2)]) + DG.add_node(4) + nx.reciprocity(DG, 4) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_regular.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_regular.py new file mode 100644 index 0000000000000000000000000000000000000000..b652089a65c927256efda2bae2f4510d7aead739 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_regular.py @@ -0,0 +1,88 @@ +import pytest + +import networkx as nx +import networkx.algorithms.regular as reg +import networkx.generators as gen + + +class TestKFactor: + @pytest.mark.parametrize("n", [3, 4, 5]) + def test_k_factor_cycle(self, n): + g = nx.cycle_graph(n) + kf = nx.k_factor(g, 2) + assert g.edges == kf.edges + assert g.nodes == kf.nodes + + @pytest.mark.parametrize("k", range(3)) + def test_k_factor_grid(self, k): + g = nx.grid_2d_graph(4, 4) + kf = nx.k_factor(g, k) + assert g.nodes == kf.nodes + assert all(g.has_edge(*e) for e in kf.edges) + assert nx.is_k_regular(kf, k) + + @pytest.mark.parametrize("k", range(6)) + def test_k_factor_complete(self, k): + g = nx.complete_graph(6) + kf = nx.k_factor(g, k) + assert g.nodes == kf.nodes + assert all(g.has_edge(*e) for e in kf.edges) + assert nx.is_k_regular(kf, k) + + def test_k_factor_degree(self): + g = nx.grid_2d_graph(4, 4) + with pytest.raises(nx.NetworkXUnfeasible, match=r"degree less than"): + nx.k_factor(g, 3) + + def test_k_factor_no_matching(self): + g = nx.hexagonal_lattice_graph(4, 4) + # Perfect matching doesn't exist for 4,4 hexagonal lattice graph + with pytest.raises(nx.NetworkXUnfeasible, match=r"no perfect matching"): + nx.k_factor(g, 2) + + @pytest.mark.parametrize("graph_type", [nx.DiGraph, nx.MultiGraph, nx.MultiDiGraph]) + def test_k_factor_not_implemented(self, graph_type): + with pytest.raises(nx.NetworkXNotImplemented, match=r"not implemented for"): + nx.k_factor(graph_type(), 2) + + +class TestIsRegular: + @pytest.mark.parametrize( + "graph,expected", + [ + (nx.cycle_graph(4), True), + (nx.complete_graph(5), True), + (nx.path_graph(5), False), + (nx.lollipop_graph(5, 5), False), + (nx.cycle_graph(3, create_using=nx.DiGraph), True), + (nx.Graph([(0, 1)]), True), + (nx.DiGraph([(0, 1)]), False), + (nx.MultiGraph([(0, 1), (0, 1)]), True), + (nx.MultiDiGraph([(0, 1), (0, 1)]), False), + ], + ) + def test_is_regular(self, graph, expected): + assert reg.is_regular(graph) == expected + + def test_is_regular_empty_graph_raises(self): + G = nx.Graph() + with pytest.raises(nx.NetworkXPointlessConcept, match="Graph has no nodes"): + nx.is_regular(G) + + +class TestIsKRegular: + def test_is_k_regular1(self): + g = gen.cycle_graph(4) + assert reg.is_k_regular(g, 2) + assert not reg.is_k_regular(g, 3) + + def test_is_k_regular2(self): + g = gen.complete_graph(5) + assert reg.is_k_regular(g, 4) + assert not reg.is_k_regular(g, 3) + assert not reg.is_k_regular(g, 6) + + def test_is_k_regular3(self): + g = gen.lollipop_graph(5, 5) + assert not reg.is_k_regular(g, 5) + assert not reg.is_k_regular(g, 6) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_richclub.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_richclub.py new file mode 100644 index 0000000000000000000000000000000000000000..21721577fed219aebcfe9a4388b25503ad252140 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_richclub.py @@ -0,0 +1,149 @@ +import pytest + +import networkx as nx + + +def test_richclub(): + G = nx.Graph([(0, 1), (0, 2), (1, 2), (1, 3), (1, 4), (4, 5)]) + rc = nx.richclub.rich_club_coefficient(G, normalized=False) + assert rc == {0: 12.0 / 30, 1: 8.0 / 12} + + # test single value + rc0 = nx.richclub.rich_club_coefficient(G, normalized=False)[0] + assert rc0 == 12.0 / 30.0 + + +def test_richclub_seed(): + G = nx.Graph([(0, 1), (0, 2), (1, 2), (1, 3), (1, 4), (4, 5)]) + rcNorm = nx.richclub.rich_club_coefficient(G, Q=2, seed=1) + assert rcNorm == {0: 1.0, 1: 1.0} + + +def test_richclub_normalized(): + G = nx.Graph([(0, 1), (0, 2), (1, 2), (1, 3), (1, 4), (4, 5)]) + rcNorm = nx.richclub.rich_club_coefficient(G, Q=2, seed=42) + assert rcNorm == {0: 1.0, 1: 1.0} + + +def test_richclub2(): + T = nx.balanced_tree(2, 10) + rc = nx.richclub.rich_club_coefficient(T, normalized=False) + assert rc == { + 0: 4092 / (2047 * 2046.0), + 1: (2044.0 / (1023 * 1022)), + 2: (2040.0 / (1022 * 1021)), + } + + +def test_richclub3(): + # tests edgecase + G = nx.karate_club_graph() + rc = nx.rich_club_coefficient(G, normalized=False) + assert rc == { + 0: 156.0 / 1122, + 1: 154.0 / 1056, + 2: 110.0 / 462, + 3: 78.0 / 240, + 4: 44.0 / 90, + 5: 22.0 / 42, + 6: 10.0 / 20, + 7: 10.0 / 20, + 8: 10.0 / 20, + 9: 6.0 / 12, + 10: 2.0 / 6, + 11: 2.0 / 6, + 12: 0.0, + 13: 0.0, + 14: 0.0, + 15: 0.0, + } + + +def test_richclub4(): + G = nx.Graph() + G.add_edges_from( + [(0, 1), (0, 2), (0, 3), (0, 4), (4, 5), (5, 9), (6, 9), (7, 9), (8, 9)] + ) + rc = nx.rich_club_coefficient(G, normalized=False) + assert rc == {0: 18 / 90.0, 1: 6 / 12.0, 2: 0.0, 3: 0.0} + + +def test_richclub_exception(): + with pytest.raises(nx.NetworkXNotImplemented): + G = nx.DiGraph() + nx.rich_club_coefficient(G) + + +def test_rich_club_exception2(): + with pytest.raises(nx.NetworkXNotImplemented): + G = nx.MultiGraph() + nx.rich_club_coefficient(G) + + +def test_rich_club_selfloop(): + G = nx.Graph() # or DiGraph, MultiGraph, MultiDiGraph, etc + G.add_edge(1, 1) # self loop + G.add_edge(1, 2) + with pytest.raises( + Exception, + match="rich_club_coefficient is not implemented for graphs with self loops.", + ): + nx.rich_club_coefficient(G) + + +def test_rich_club_leq_3_nodes_unnormalized(): + # edgeless graphs upto 3 nodes + G = nx.Graph() + rc = nx.rich_club_coefficient(G, normalized=False) + assert rc == {} + + for i in range(3): + G.add_node(i) + rc = nx.rich_club_coefficient(G, normalized=False) + assert rc == {} + + # 2 nodes, single edge + G = nx.Graph() + G.add_edge(0, 1) + rc = nx.rich_club_coefficient(G, normalized=False) + assert rc == {0: 1} + + # 3 nodes, single edge + G = nx.Graph() + G.add_nodes_from([0, 1, 2]) + G.add_edge(0, 1) + rc = nx.rich_club_coefficient(G, normalized=False) + assert rc == {0: 1} + + # 3 nodes, 2 edges + G.add_edge(1, 2) + rc = nx.rich_club_coefficient(G, normalized=False) + assert rc == {0: 2 / 3} + + # 3 nodes, 3 edges + G.add_edge(0, 2) + rc = nx.rich_club_coefficient(G, normalized=False) + assert rc == {0: 1, 1: 1} + + +def test_rich_club_leq_3_nodes_normalized(): + G = nx.Graph() + with pytest.raises( + nx.exception.NetworkXError, + match="Graph has fewer than four nodes", + ): + rc = nx.rich_club_coefficient(G, normalized=True) + + for i in range(3): + G.add_node(i) + with pytest.raises( + nx.exception.NetworkXError, + match="Graph has fewer than four nodes", + ): + rc = nx.rich_club_coefficient(G, normalized=True) + + +# def test_richclub2_normalized(): +# T = nx.balanced_tree(2,10) +# rcNorm = nx.richclub.rich_club_coefficient(T,Q=2) +# assert_true(rcNorm[0] ==1.0 and rcNorm[1] < 0.9 and rcNorm[2] < 0.9) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_similarity.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_similarity.py new file mode 100644 index 0000000000000000000000000000000000000000..3ee0a1fd10bb25d57af5d355ec3ff91b2140fd0e --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_similarity.py @@ -0,0 +1,1158 @@ +import pytest + +import networkx as nx +from networkx.algorithms.similarity import ( + graph_edit_distance, + optimal_edit_paths, + optimize_graph_edit_distance, +) +from networkx.generators.classic import ( + circular_ladder_graph, + cycle_graph, + path_graph, + wheel_graph, +) + + +@pytest.mark.parametrize("source", (10, "foo")) +def test_generate_random_paths_source_not_in_G(source): + pytest.importorskip("numpy") + G = nx.complete_graph(5) + # No exception at generator construction time + path_gen = nx.generate_random_paths(G, sample_size=3, source=source) + with pytest.raises(nx.NodeNotFound, match="Initial node.*not in G"): + next(path_gen) + + +@pytest.mark.filterwarnings("ignore::RuntimeWarning") +def test_generate_random_paths_with_isolated_nodes(): + pytest.importorskip("numpy") + G = nx.Graph() + G.add_nodes_from([0, 1, 2]) + G.add_edge(0, 1) + + # Connected source node + paths = list(nx.generate_random_paths(G, 2, path_length=2, source=0, seed=42)) + assert len(paths) == 2 + assert all(len(path) == 3 for path in paths) + assert all(path[0] == 0 for path in paths) + + # Isolated source node + path_gen = nx.generate_random_paths(G, 2, path_length=2, source=2, seed=42) + with pytest.raises(ValueError, match="probabilities contain NaN"): + list(path_gen) + + # Random source that might pick isolated node + path_gen = nx.generate_random_paths(G, 2, path_length=2, seed=42) + with pytest.raises(ValueError, match="probabilities contain NaN"): + list(path_gen) + + +def nmatch(n1, n2): + return n1 == n2 + + +def ematch(e1, e2): + return e1 == e2 + + +def getCanonical(): + G = nx.Graph() + G.add_node("A", label="A") + G.add_node("B", label="B") + G.add_node("C", label="C") + G.add_node("D", label="D") + G.add_edge("A", "B", label="a-b") + G.add_edge("B", "C", label="b-c") + G.add_edge("B", "D", label="b-d") + return G + + +class TestSimilarity: + @classmethod + def setup_class(cls): + global np + np = pytest.importorskip("numpy") + pytest.importorskip("scipy") + + def test_graph_edit_distance_roots_and_timeout(self): + G0 = nx.star_graph(5) + G1 = G0.copy() + pytest.raises(ValueError, graph_edit_distance, G0, G1, roots=[2]) + pytest.raises(ValueError, graph_edit_distance, G0, G1, roots=[2, 3, 4]) + pytest.raises(nx.NodeNotFound, graph_edit_distance, G0, G1, roots=(9, 3)) + pytest.raises(nx.NodeNotFound, graph_edit_distance, G0, G1, roots=(3, 9)) + pytest.raises(nx.NodeNotFound, graph_edit_distance, G0, G1, roots=(9, 9)) + assert graph_edit_distance(G0, G1, roots=(1, 2)) == 0 + assert graph_edit_distance(G0, G1, roots=(0, 1)) == 8 + assert graph_edit_distance(G0, G1, roots=(1, 2), timeout=5) == 0 + assert graph_edit_distance(G0, G1, roots=(0, 1), timeout=5) == 8 + assert graph_edit_distance(G0, G1, roots=(0, 1), timeout=0.0001) is None + # test raise on 0 timeout + pytest.raises(nx.NetworkXError, graph_edit_distance, G0, G1, timeout=0) + + def test_graph_edit_distance(self): + G0 = nx.Graph() + G1 = path_graph(6) + G2 = cycle_graph(6) + G3 = wheel_graph(7) + + assert graph_edit_distance(G0, G0) == 0 + assert graph_edit_distance(G0, G1) == 11 + assert graph_edit_distance(G1, G0) == 11 + assert graph_edit_distance(G0, G2) == 12 + assert graph_edit_distance(G2, G0) == 12 + assert graph_edit_distance(G0, G3) == 19 + assert graph_edit_distance(G3, G0) == 19 + + assert graph_edit_distance(G1, G1) == 0 + assert graph_edit_distance(G1, G2) == 1 + assert graph_edit_distance(G2, G1) == 1 + assert graph_edit_distance(G1, G3) == 8 + assert graph_edit_distance(G3, G1) == 8 + + assert graph_edit_distance(G2, G2) == 0 + assert graph_edit_distance(G2, G3) == 7 + assert graph_edit_distance(G3, G2) == 7 + + assert graph_edit_distance(G3, G3) == 0 + + def test_graph_edit_distance_node_match(self): + G1 = cycle_graph(5) + G2 = cycle_graph(5) + for n, attr in G1.nodes.items(): + attr["color"] = "red" if n % 2 == 0 else "blue" + for n, attr in G2.nodes.items(): + attr["color"] = "red" if n % 2 == 1 else "blue" + assert graph_edit_distance(G1, G2) == 0 + assert ( + graph_edit_distance( + G1, G2, node_match=lambda n1, n2: n1["color"] == n2["color"] + ) + == 1 + ) + + def test_graph_edit_distance_edge_match(self): + G1 = path_graph(6) + G2 = path_graph(6) + for e, attr in G1.edges.items(): + attr["color"] = "red" if min(e) % 2 == 0 else "blue" + for e, attr in G2.edges.items(): + attr["color"] = "red" if min(e) // 3 == 0 else "blue" + assert graph_edit_distance(G1, G2) == 0 + assert ( + graph_edit_distance( + G1, G2, edge_match=lambda e1, e2: e1["color"] == e2["color"] + ) + == 2 + ) + + def test_graph_edit_distance_node_cost(self): + G1 = path_graph(6) + G2 = path_graph(6) + for n, attr in G1.nodes.items(): + attr["color"] = "red" if n % 2 == 0 else "blue" + for n, attr in G2.nodes.items(): + attr["color"] = "red" if n % 2 == 1 else "blue" + + def node_subst_cost(uattr, vattr): + if uattr["color"] == vattr["color"]: + return 1 + else: + return 10 + + def node_del_cost(attr): + if attr["color"] == "blue": + return 20 + else: + return 50 + + def node_ins_cost(attr): + if attr["color"] == "blue": + return 40 + else: + return 100 + + assert ( + graph_edit_distance( + G1, + G2, + node_subst_cost=node_subst_cost, + node_del_cost=node_del_cost, + node_ins_cost=node_ins_cost, + ) + == 6 + ) + + def test_graph_edit_distance_edge_cost(self): + G1 = path_graph(6) + G2 = path_graph(6) + for e, attr in G1.edges.items(): + attr["color"] = "red" if min(e) % 2 == 0 else "blue" + for e, attr in G2.edges.items(): + attr["color"] = "red" if min(e) // 3 == 0 else "blue" + + def edge_subst_cost(gattr, hattr): + if gattr["color"] == hattr["color"]: + return 0.01 + else: + return 0.1 + + def edge_del_cost(attr): + if attr["color"] == "blue": + return 0.2 + else: + return 0.5 + + def edge_ins_cost(attr): + if attr["color"] == "blue": + return 0.4 + else: + return 1.0 + + assert ( + graph_edit_distance( + G1, + G2, + edge_subst_cost=edge_subst_cost, + edge_del_cost=edge_del_cost, + edge_ins_cost=edge_ins_cost, + ) + == 0.23 + ) + + def test_graph_edit_distance_upper_bound(self): + G1 = circular_ladder_graph(2) + G2 = circular_ladder_graph(6) + assert graph_edit_distance(G1, G2, upper_bound=5) is None + assert graph_edit_distance(G1, G2, upper_bound=24) == 22 + assert graph_edit_distance(G1, G2) == 22 + + def test_optimal_edit_paths(self): + G1 = path_graph(3) + G2 = cycle_graph(3) + paths, cost = optimal_edit_paths(G1, G2) + assert cost == 1 + assert len(paths) == 6 + + def canonical(vertex_path, edge_path): + return ( + tuple(sorted(vertex_path)), + tuple(sorted(edge_path, key=lambda x: (None in x, x))), + ) + + expected_paths = [ + ( + [(0, 0), (1, 1), (2, 2)], + [((0, 1), (0, 1)), ((1, 2), (1, 2)), (None, (0, 2))], + ), + ( + [(0, 0), (1, 2), (2, 1)], + [((0, 1), (0, 2)), ((1, 2), (1, 2)), (None, (0, 1))], + ), + ( + [(0, 1), (1, 0), (2, 2)], + [((0, 1), (0, 1)), ((1, 2), (0, 2)), (None, (1, 2))], + ), + ( + [(0, 1), (1, 2), (2, 0)], + [((0, 1), (1, 2)), ((1, 2), (0, 2)), (None, (0, 1))], + ), + ( + [(0, 2), (1, 0), (2, 1)], + [((0, 1), (0, 2)), ((1, 2), (0, 1)), (None, (1, 2))], + ), + ( + [(0, 2), (1, 1), (2, 0)], + [((0, 1), (1, 2)), ((1, 2), (0, 1)), (None, (0, 2))], + ), + ] + assert {canonical(*p) for p in paths} == {canonical(*p) for p in expected_paths} + + def test_optimize_graph_edit_distance(self): + G1 = circular_ladder_graph(2) + G2 = circular_ladder_graph(6) + bestcost = 1000 + for cost in optimize_graph_edit_distance(G1, G2): + assert cost < bestcost + bestcost = cost + assert bestcost == 22 + + # def test_graph_edit_distance_bigger(self): + # G1 = circular_ladder_graph(12) + # G2 = circular_ladder_graph(16) + # assert_equal(graph_edit_distance(G1, G2), 22) + + def test_selfloops(self): + G0 = nx.Graph() + G1 = nx.Graph() + G1.add_edges_from((("A", "A"), ("A", "B"))) + G2 = nx.Graph() + G2.add_edges_from((("A", "B"), ("B", "B"))) + G3 = nx.Graph() + G3.add_edges_from((("A", "A"), ("A", "B"), ("B", "B"))) + + assert graph_edit_distance(G0, G0) == 0 + assert graph_edit_distance(G0, G1) == 4 + assert graph_edit_distance(G1, G0) == 4 + assert graph_edit_distance(G0, G2) == 4 + assert graph_edit_distance(G2, G0) == 4 + assert graph_edit_distance(G0, G3) == 5 + assert graph_edit_distance(G3, G0) == 5 + + assert graph_edit_distance(G1, G1) == 0 + assert graph_edit_distance(G1, G2) == 0 + assert graph_edit_distance(G2, G1) == 0 + assert graph_edit_distance(G1, G3) == 1 + assert graph_edit_distance(G3, G1) == 1 + + assert graph_edit_distance(G2, G2) == 0 + assert graph_edit_distance(G2, G3) == 1 + assert graph_edit_distance(G3, G2) == 1 + + assert graph_edit_distance(G3, G3) == 0 + + def test_digraph(self): + G0 = nx.DiGraph() + G1 = nx.DiGraph() + G1.add_edges_from((("A", "B"), ("B", "C"), ("C", "D"), ("D", "A"))) + G2 = nx.DiGraph() + G2.add_edges_from((("A", "B"), ("B", "C"), ("C", "D"), ("A", "D"))) + G3 = nx.DiGraph() + G3.add_edges_from((("A", "B"), ("A", "C"), ("B", "D"), ("C", "D"))) + + assert graph_edit_distance(G0, G0) == 0 + assert graph_edit_distance(G0, G1) == 8 + assert graph_edit_distance(G1, G0) == 8 + assert graph_edit_distance(G0, G2) == 8 + assert graph_edit_distance(G2, G0) == 8 + assert graph_edit_distance(G0, G3) == 8 + assert graph_edit_distance(G3, G0) == 8 + + assert graph_edit_distance(G1, G1) == 0 + assert graph_edit_distance(G1, G2) == 2 + assert graph_edit_distance(G2, G1) == 2 + assert graph_edit_distance(G1, G3) == 4 + assert graph_edit_distance(G3, G1) == 4 + + assert graph_edit_distance(G2, G2) == 0 + assert graph_edit_distance(G2, G3) == 2 + assert graph_edit_distance(G3, G2) == 2 + + assert graph_edit_distance(G3, G3) == 0 + + def test_multigraph(self): + G0 = nx.MultiGraph() + G1 = nx.MultiGraph() + G1.add_edges_from((("A", "B"), ("B", "C"), ("A", "C"))) + G2 = nx.MultiGraph() + G2.add_edges_from((("A", "B"), ("B", "C"), ("B", "C"), ("A", "C"))) + G3 = nx.MultiGraph() + G3.add_edges_from((("A", "B"), ("B", "C"), ("A", "C"), ("A", "C"), ("A", "C"))) + + assert graph_edit_distance(G0, G0) == 0 + assert graph_edit_distance(G0, G1) == 6 + assert graph_edit_distance(G1, G0) == 6 + assert graph_edit_distance(G0, G2) == 7 + assert graph_edit_distance(G2, G0) == 7 + assert graph_edit_distance(G0, G3) == 8 + assert graph_edit_distance(G3, G0) == 8 + + assert graph_edit_distance(G1, G1) == 0 + assert graph_edit_distance(G1, G2) == 1 + assert graph_edit_distance(G2, G1) == 1 + assert graph_edit_distance(G1, G3) == 2 + assert graph_edit_distance(G3, G1) == 2 + + assert graph_edit_distance(G2, G2) == 0 + assert graph_edit_distance(G2, G3) == 1 + assert graph_edit_distance(G3, G2) == 1 + + assert graph_edit_distance(G3, G3) == 0 + + def test_multidigraph(self): + G1 = nx.MultiDiGraph() + G1.add_edges_from( + ( + ("hardware", "kernel"), + ("kernel", "hardware"), + ("kernel", "userspace"), + ("userspace", "kernel"), + ) + ) + G2 = nx.MultiDiGraph() + G2.add_edges_from( + ( + ("winter", "spring"), + ("spring", "summer"), + ("summer", "autumn"), + ("autumn", "winter"), + ) + ) + + assert graph_edit_distance(G1, G2) == 5 + assert graph_edit_distance(G2, G1) == 5 + + # by https://github.com/jfbeaumont + def testCopy(self): + G = nx.Graph() + G.add_node("A", label="A") + G.add_node("B", label="B") + G.add_edge("A", "B", label="a-b") + assert ( + graph_edit_distance(G, G.copy(), node_match=nmatch, edge_match=ematch) == 0 + ) + + def testSame(self): + G1 = nx.Graph() + G1.add_node("A", label="A") + G1.add_node("B", label="B") + G1.add_edge("A", "B", label="a-b") + G2 = nx.Graph() + G2.add_node("A", label="A") + G2.add_node("B", label="B") + G2.add_edge("A", "B", label="a-b") + assert graph_edit_distance(G1, G2, node_match=nmatch, edge_match=ematch) == 0 + + def testOneEdgeLabelDiff(self): + G1 = nx.Graph() + G1.add_node("A", label="A") + G1.add_node("B", label="B") + G1.add_edge("A", "B", label="a-b") + G2 = nx.Graph() + G2.add_node("A", label="A") + G2.add_node("B", label="B") + G2.add_edge("A", "B", label="bad") + assert graph_edit_distance(G1, G2, node_match=nmatch, edge_match=ematch) == 1 + + def testOneNodeLabelDiff(self): + G1 = nx.Graph() + G1.add_node("A", label="A") + G1.add_node("B", label="B") + G1.add_edge("A", "B", label="a-b") + G2 = nx.Graph() + G2.add_node("A", label="Z") + G2.add_node("B", label="B") + G2.add_edge("A", "B", label="a-b") + assert graph_edit_distance(G1, G2, node_match=nmatch, edge_match=ematch) == 1 + + def testOneExtraNode(self): + G1 = nx.Graph() + G1.add_node("A", label="A") + G1.add_node("B", label="B") + G1.add_edge("A", "B", label="a-b") + G2 = nx.Graph() + G2.add_node("A", label="A") + G2.add_node("B", label="B") + G2.add_edge("A", "B", label="a-b") + G2.add_node("C", label="C") + assert graph_edit_distance(G1, G2, node_match=nmatch, edge_match=ematch) == 1 + + def testOneExtraEdge(self): + G1 = nx.Graph() + G1.add_node("A", label="A") + G1.add_node("B", label="B") + G1.add_node("C", label="C") + G1.add_node("C", label="C") + G1.add_edge("A", "B", label="a-b") + G2 = nx.Graph() + G2.add_node("A", label="A") + G2.add_node("B", label="B") + G2.add_node("C", label="C") + G2.add_edge("A", "B", label="a-b") + G2.add_edge("A", "C", label="a-c") + assert graph_edit_distance(G1, G2, node_match=nmatch, edge_match=ematch) == 1 + + def testOneExtraNodeAndEdge(self): + G1 = nx.Graph() + G1.add_node("A", label="A") + G1.add_node("B", label="B") + G1.add_edge("A", "B", label="a-b") + G2 = nx.Graph() + G2.add_node("A", label="A") + G2.add_node("B", label="B") + G2.add_node("C", label="C") + G2.add_edge("A", "B", label="a-b") + G2.add_edge("A", "C", label="a-c") + assert graph_edit_distance(G1, G2, node_match=nmatch, edge_match=ematch) == 2 + + def testGraph1(self): + G1 = getCanonical() + G2 = nx.Graph() + G2.add_node("A", label="A") + G2.add_node("B", label="B") + G2.add_node("D", label="D") + G2.add_node("E", label="E") + G2.add_edge("A", "B", label="a-b") + G2.add_edge("B", "D", label="b-d") + G2.add_edge("D", "E", label="d-e") + assert graph_edit_distance(G1, G2, node_match=nmatch, edge_match=ematch) == 3 + + def testGraph2(self): + G1 = getCanonical() + G2 = nx.Graph() + G2.add_node("A", label="A") + G2.add_node("B", label="B") + G2.add_node("C", label="C") + G2.add_node("D", label="D") + G2.add_node("E", label="E") + G2.add_edge("A", "B", label="a-b") + G2.add_edge("B", "C", label="b-c") + G2.add_edge("C", "D", label="c-d") + G2.add_edge("C", "E", label="c-e") + assert graph_edit_distance(G1, G2, node_match=nmatch, edge_match=ematch) == 4 + + def testGraph3(self): + G1 = getCanonical() + G2 = nx.Graph() + G2.add_node("A", label="A") + G2.add_node("B", label="B") + G2.add_node("C", label="C") + G2.add_node("D", label="D") + G2.add_node("E", label="E") + G2.add_node("F", label="F") + G2.add_node("G", label="G") + G2.add_edge("A", "C", label="a-c") + G2.add_edge("A", "D", label="a-d") + G2.add_edge("D", "E", label="d-e") + G2.add_edge("D", "F", label="d-f") + G2.add_edge("D", "G", label="d-g") + G2.add_edge("E", "B", label="e-b") + assert graph_edit_distance(G1, G2, node_match=nmatch, edge_match=ematch) == 12 + + def testGraph4(self): + G1 = getCanonical() + G2 = nx.Graph() + G2.add_node("A", label="A") + G2.add_node("B", label="B") + G2.add_node("C", label="C") + G2.add_node("D", label="D") + G2.add_edge("A", "B", label="a-b") + G2.add_edge("B", "C", label="b-c") + G2.add_edge("C", "D", label="c-d") + assert graph_edit_distance(G1, G2, node_match=nmatch, edge_match=ematch) == 2 + + def testGraph4_a(self): + G1 = getCanonical() + G2 = nx.Graph() + G2.add_node("A", label="A") + G2.add_node("B", label="B") + G2.add_node("C", label="C") + G2.add_node("D", label="D") + G2.add_edge("A", "B", label="a-b") + G2.add_edge("B", "C", label="b-c") + G2.add_edge("A", "D", label="a-d") + assert graph_edit_distance(G1, G2, node_match=nmatch, edge_match=ematch) == 2 + + def testGraph4_b(self): + G1 = getCanonical() + G2 = nx.Graph() + G2.add_node("A", label="A") + G2.add_node("B", label="B") + G2.add_node("C", label="C") + G2.add_node("D", label="D") + G2.add_edge("A", "B", label="a-b") + G2.add_edge("B", "C", label="b-c") + G2.add_edge("B", "D", label="bad") + assert graph_edit_distance(G1, G2, node_match=nmatch, edge_match=ematch) == 1 + + # note: nx.simrank_similarity_numpy not included because returns np.array + simrank_algs = [ + nx.simrank_similarity, + nx.algorithms.similarity._simrank_similarity_python, + ] + + @pytest.mark.parametrize("simrank_similarity", simrank_algs) + def test_simrank_no_source_no_target(self, simrank_similarity): + G = nx.cycle_graph(5) + expected = { + 0: { + 0: 1, + 1: 0.3951219505902448, + 2: 0.5707317069281646, + 3: 0.5707317069281646, + 4: 0.3951219505902449, + }, + 1: { + 0: 0.3951219505902448, + 1: 1, + 2: 0.3951219505902449, + 3: 0.5707317069281646, + 4: 0.5707317069281646, + }, + 2: { + 0: 0.5707317069281646, + 1: 0.3951219505902449, + 2: 1, + 3: 0.3951219505902449, + 4: 0.5707317069281646, + }, + 3: { + 0: 0.5707317069281646, + 1: 0.5707317069281646, + 2: 0.3951219505902449, + 3: 1, + 4: 0.3951219505902449, + }, + 4: { + 0: 0.3951219505902449, + 1: 0.5707317069281646, + 2: 0.5707317069281646, + 3: 0.3951219505902449, + 4: 1, + }, + } + actual = simrank_similarity(G) + for k, v in expected.items(): + assert v == pytest.approx(actual[k], abs=1e-2) + + # For a DiGraph test, use the first graph from the paper cited in + # the docs: https://dl.acm.org/doi/pdf/10.1145/775047.775126 + G = nx.DiGraph() + G.add_node(0, label="Univ") + G.add_node(1, label="ProfA") + G.add_node(2, label="ProfB") + G.add_node(3, label="StudentA") + G.add_node(4, label="StudentB") + G.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 4), (4, 2), (3, 0)]) + + expected = { + 0: {0: 1, 1: 0.0, 2: 0.1323363991265798, 3: 0.0, 4: 0.03387811817640443}, + 1: {0: 0.0, 1: 1, 2: 0.4135512472705618, 3: 0.0, 4: 0.10586911930126384}, + 2: { + 0: 0.1323363991265798, + 1: 0.4135512472705618, + 2: 1, + 3: 0.04234764772050554, + 4: 0.08822426608438655, + }, + 3: {0: 0.0, 1: 0.0, 2: 0.04234764772050554, 3: 1, 4: 0.3308409978164495}, + 4: { + 0: 0.03387811817640443, + 1: 0.10586911930126384, + 2: 0.08822426608438655, + 3: 0.3308409978164495, + 4: 1, + }, + } + # Use the importance_factor from the paper to get the same numbers. + actual = simrank_similarity(G, importance_factor=0.8) + for k, v in expected.items(): + assert v == pytest.approx(actual[k], abs=1e-2) + + @pytest.mark.parametrize("simrank_similarity", simrank_algs) + def test_simrank_source_no_target(self, simrank_similarity): + G = nx.cycle_graph(5) + expected = { + 0: 1, + 1: 0.3951219505902448, + 2: 0.5707317069281646, + 3: 0.5707317069281646, + 4: 0.3951219505902449, + } + actual = simrank_similarity(G, source=0) + assert expected == pytest.approx(actual, abs=1e-2) + + # For a DiGraph test, use the first graph from the paper cited in + # the docs: https://dl.acm.org/doi/pdf/10.1145/775047.775126 + G = nx.DiGraph() + G.add_node(0, label="Univ") + G.add_node(1, label="ProfA") + G.add_node(2, label="ProfB") + G.add_node(3, label="StudentA") + G.add_node(4, label="StudentB") + G.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 4), (4, 2), (3, 0)]) + + expected = {0: 1, 1: 0.0, 2: 0.1323363991265798, 3: 0.0, 4: 0.03387811817640443} + # Use the importance_factor from the paper to get the same numbers. + actual = simrank_similarity(G, importance_factor=0.8, source=0) + assert expected == pytest.approx(actual, abs=1e-2) + + @pytest.mark.parametrize("simrank_similarity", simrank_algs) + def test_simrank_noninteger_nodes(self, simrank_similarity): + G = nx.cycle_graph(5) + G = nx.relabel_nodes(G, dict(enumerate("abcde"))) + expected = { + "a": 1, + "b": 0.3951219505902448, + "c": 0.5707317069281646, + "d": 0.5707317069281646, + "e": 0.3951219505902449, + } + actual = simrank_similarity(G, source="a") + assert expected == pytest.approx(actual, abs=1e-2) + + # For a DiGraph test, use the first graph from the paper cited in + # the docs: https://dl.acm.org/doi/pdf/10.1145/775047.775126 + G = nx.DiGraph() + G.add_node(0, label="Univ") + G.add_node(1, label="ProfA") + G.add_node(2, label="ProfB") + G.add_node(3, label="StudentA") + G.add_node(4, label="StudentB") + G.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 4), (4, 2), (3, 0)]) + node_labels = dict(enumerate(nx.get_node_attributes(G, "label").values())) + G = nx.relabel_nodes(G, node_labels) + + expected = { + "Univ": 1, + "ProfA": 0.0, + "ProfB": 0.1323363991265798, + "StudentA": 0.0, + "StudentB": 0.03387811817640443, + } + # Use the importance_factor from the paper to get the same numbers. + actual = simrank_similarity(G, importance_factor=0.8, source="Univ") + assert expected == pytest.approx(actual, abs=1e-2) + + @pytest.mark.parametrize("simrank_similarity", simrank_algs) + def test_simrank_source_and_target(self, simrank_similarity): + G = nx.cycle_graph(5) + expected = 1 + actual = simrank_similarity(G, source=0, target=0) + assert expected == pytest.approx(actual, abs=1e-2) + + # For a DiGraph test, use the first graph from the paper cited in + # the docs: https://dl.acm.org/doi/pdf/10.1145/775047.775126 + G = nx.DiGraph() + G.add_node(0, label="Univ") + G.add_node(1, label="ProfA") + G.add_node(2, label="ProfB") + G.add_node(3, label="StudentA") + G.add_node(4, label="StudentB") + G.add_edges_from([(0, 1), (0, 2), (1, 3), (2, 4), (4, 2), (3, 0)]) + + expected = 0.1323363991265798 + # Use the importance_factor from the paper to get the same numbers. + # Use the pair (0,2) because (0,0) and (0,1) have trivial results. + actual = simrank_similarity(G, importance_factor=0.8, source=0, target=2) + assert expected == pytest.approx(actual, abs=1e-5) + + @pytest.mark.parametrize("alg", simrank_algs) + def test_simrank_max_iterations(self, alg): + G = nx.cycle_graph(5) + pytest.raises(nx.ExceededMaxIterations, alg, G, max_iterations=10) + + def test_simrank_source_not_found(self): + G = nx.cycle_graph(5) + with pytest.raises(nx.NodeNotFound, match="Source node 10 not in G"): + nx.simrank_similarity(G, source=10) + + def test_simrank_target_not_found(self): + G = nx.cycle_graph(5) + with pytest.raises(nx.NodeNotFound, match="Target node 10 not in G"): + nx.simrank_similarity(G, target=10) + + def test_simrank_between_versions(self): + G = nx.cycle_graph(5) + # _python tolerance 1e-4 + expected_python_tol4 = { + 0: 1, + 1: 0.394512499239852, + 2: 0.5703550452791322, + 3: 0.5703550452791323, + 4: 0.394512499239852, + } + # _numpy tolerance 1e-4 + expected_numpy_tol4 = { + 0: 1.0, + 1: 0.3947180735764555, + 2: 0.570482097206368, + 3: 0.570482097206368, + 4: 0.3947180735764555, + } + actual = nx.simrank_similarity(G, source=0) + assert expected_numpy_tol4 == pytest.approx(actual, abs=1e-7) + # versions differ at 1e-4 level but equal at 1e-3 + assert expected_python_tol4 != pytest.approx(actual, abs=1e-4) + assert expected_python_tol4 == pytest.approx(actual, abs=1e-3) + + actual = nx.similarity._simrank_similarity_python(G, source=0) + assert expected_python_tol4 == pytest.approx(actual, abs=1e-7) + # versions differ at 1e-4 level but equal at 1e-3 + assert expected_numpy_tol4 != pytest.approx(actual, abs=1e-4) + assert expected_numpy_tol4 == pytest.approx(actual, abs=1e-3) + + def test_simrank_numpy_no_source_no_target(self): + G = nx.cycle_graph(5) + expected = np.array( + [ + [ + 1.0, + 0.3947180735764555, + 0.570482097206368, + 0.570482097206368, + 0.3947180735764555, + ], + [ + 0.3947180735764555, + 1.0, + 0.3947180735764555, + 0.570482097206368, + 0.570482097206368, + ], + [ + 0.570482097206368, + 0.3947180735764555, + 1.0, + 0.3947180735764555, + 0.570482097206368, + ], + [ + 0.570482097206368, + 0.570482097206368, + 0.3947180735764555, + 1.0, + 0.3947180735764555, + ], + [ + 0.3947180735764555, + 0.570482097206368, + 0.570482097206368, + 0.3947180735764555, + 1.0, + ], + ] + ) + actual = nx.similarity._simrank_similarity_numpy(G) + np.testing.assert_allclose(expected, actual, atol=1e-7) + + def test_simrank_numpy_source_no_target(self): + G = nx.cycle_graph(5) + expected = np.array( + [ + 1.0, + 0.3947180735764555, + 0.570482097206368, + 0.570482097206368, + 0.3947180735764555, + ] + ) + actual = nx.similarity._simrank_similarity_numpy(G, source=0) + np.testing.assert_allclose(expected, actual, atol=1e-7) + + def test_simrank_numpy_source_and_target(self): + G = nx.cycle_graph(5) + expected = 1.0 + actual = nx.similarity._simrank_similarity_numpy(G, source=0, target=0) + np.testing.assert_allclose(expected, actual, atol=1e-7) + + def test_panther_similarity_unweighted(self): + G = nx.Graph() + G.add_edge(0, 1) + G.add_edge(0, 2) + G.add_edge(0, 3) + G.add_edge(1, 2) + G.add_edge(2, 4) + expected = {3: 0.5, 2: 0.5, 1: 0.5, 4: 0.125} + sim = nx.panther_similarity(G, 0, path_length=2, seed=42) + assert sim == expected + + def test_panther_similarity_weighted(self): + G = nx.Graph() + G.add_edge("v1", "v2", w=5) + G.add_edge("v1", "v3", w=1) + G.add_edge("v1", "v4", w=2) + G.add_edge("v2", "v3", w=0.1) + G.add_edge("v3", "v5", w=1) + expected = {"v3": 0.75, "v4": 0.5, "v2": 0.5, "v5": 0.25} + sim = nx.panther_similarity(G, "v1", path_length=2, weight="w", seed=42) + assert sim == expected + + def test_panther_similarity_source_not_found(self): + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (0, 3), (1, 2), (2, 4)]) + with pytest.raises(nx.NodeNotFound, match="Source node 10 not in G"): + nx.panther_similarity(G, source=10) + + def test_panther_similarity_isolated(self): + G = nx.Graph() + G.add_nodes_from(range(5)) + with pytest.raises( + nx.NetworkXUnfeasible, + match="Panther similarity is not defined for the isolated source node 1.", + ): + nx.panther_similarity(G, source=1) + + @pytest.mark.parametrize("num_paths", (1, 3, 10)) + @pytest.mark.parametrize("source", (0, 1)) + def test_generate_random_paths_with_start(self, num_paths, source): + G = nx.Graph([(0, 1), (0, 2), (0, 3), (1, 2), (2, 4)]) + index_map = {} + + path_gen = nx.generate_random_paths( + G, + num_paths, + path_length=2, + index_map=index_map, + source=source, + ) + paths = list(path_gen) + + # There should be num_paths paths + assert len(paths) == num_paths + # And they should all start with `source` + assert all(p[0] == source for p in paths) + # The index_map for the `source` node should contain the indices for + # all of the generated paths. + assert sorted(index_map[source]) == list(range(num_paths)) + + def test_generate_random_paths_unweighted(self): + index_map = {} + num_paths = 10 + path_length = 2 + G = nx.Graph() + G.add_edge(0, 1) + G.add_edge(0, 2) + G.add_edge(0, 3) + G.add_edge(1, 2) + G.add_edge(2, 4) + paths = nx.generate_random_paths( + G, num_paths, path_length=path_length, index_map=index_map, seed=42 + ) + expected_paths = [ + [3, 0, 3], + [4, 2, 1], + [2, 1, 0], + [2, 0, 3], + [3, 0, 1], + [3, 0, 1], + [4, 2, 0], + [2, 1, 0], + [3, 0, 2], + [2, 1, 2], + ] + expected_map = { + 0: {0, 2, 3, 4, 5, 6, 7, 8}, + 1: {1, 2, 4, 5, 7, 9}, + 2: {1, 2, 3, 6, 7, 8, 9}, + 3: {0, 3, 4, 5, 8}, + 4: {1, 6}, + } + + assert expected_paths == list(paths) + assert expected_map == index_map + + def test_generate_random_paths_weighted(self): + index_map = {} + num_paths = 10 + path_length = 6 + G = nx.Graph() + G.add_edge("a", "b", weight=0.6) + G.add_edge("a", "c", weight=0.2) + G.add_edge("c", "d", weight=0.1) + G.add_edge("c", "e", weight=0.7) + G.add_edge("c", "f", weight=0.9) + G.add_edge("a", "d", weight=0.3) + paths = nx.generate_random_paths( + G, num_paths, path_length=path_length, index_map=index_map, seed=42 + ) + + expected_paths = [ + ["d", "c", "f", "c", "d", "a", "b"], + ["e", "c", "f", "c", "f", "c", "e"], + ["d", "a", "b", "a", "b", "a", "c"], + ["b", "a", "d", "a", "b", "a", "b"], + ["d", "a", "b", "a", "b", "a", "d"], + ["d", "a", "b", "a", "b", "a", "c"], + ["d", "a", "b", "a", "b", "a", "b"], + ["f", "c", "f", "c", "f", "c", "e"], + ["d", "a", "d", "a", "b", "a", "b"], + ["e", "c", "f", "c", "e", "c", "d"], + ] + expected_map = { + "d": {0, 2, 3, 4, 5, 6, 8, 9}, + "c": {0, 1, 2, 5, 7, 9}, + "f": {0, 1, 9, 7}, + "a": {0, 2, 3, 4, 5, 6, 8}, + "b": {0, 2, 3, 4, 5, 6, 8}, + "e": {1, 9, 7}, + } + + assert expected_paths == list(paths) + assert expected_map == index_map + + def test_one_node_one_loop_and_empty_graph(self): + G1 = nx.DiGraph([(0, 0)]) + G2 = nx.DiGraph() + assert nx.graph_edit_distance(G1, G2) == 2 + + def test_one_node_two_loops_and_empty_graph(self): + G1 = nx.MultiDiGraph([(0, 0), (0, 0)]) + assert nx.graph_edit_distance(G1, nx.DiGraph()) == 3 + assert nx.graph_edit_distance(G1, nx.MultiDiGraph()) == 3 + + def test_two_directed_loops(self): + G = nx.DiGraph([(0, 0), (1, 1)]) + assert nx.graph_edit_distance(G, nx.DiGraph()) == 4 + + def test_symmetry_with_custom_matching(self): + """G2 has edge (a,b) and G3 has edge (a,a) but node order for G2 is (a,b) + while for G3 it is (b,a)""" + + a, b = "A", "B" + G2 = nx.Graph() + G2.add_nodes_from((a, b)) + G2.add_edges_from([(a, b)]) + G3 = nx.Graph() + G3.add_nodes_from((b, a)) + G3.add_edges_from([(a, a)]) + for G in (G2, G3): + for n in G: + G.nodes[n]["attr"] = n + for e in G.edges: + G.edges[e]["attr"] = e + + def user_match(x, y): + return x == y + + assert ( + nx.graph_edit_distance(G2, G3, node_match=user_match, edge_match=user_match) + == 1 + ) + assert ( + nx.graph_edit_distance(G3, G2, node_match=user_match, edge_match=user_match) + == 1 + ) + + def test_panther_vector_similarity_basic(self): + """Basic test for panther_vector_similarity function.""" + G = nx.Graph() + G.add_edge(0, 1) + G.add_edge(0, 2) + G.add_edge(0, 3) + G.add_edge(1, 2) + G.add_edge(2, 4) + + sim = nx.panther_vector_similarity(G, 0, D=3, k=4, path_length=2, seed=42) + + assert len(sim) > 0 + assert 0 not in sim # Source node should not be included + assert all(node in [1, 2, 3, 4] for node in sim) # Only valid nodes + assert all(0 <= score <= 1 for score in sim.values()) # Valid scores + + def test_panther_vector_similarity_unweighted(self): + """Test panther_vector_similarity with unweighted graph.""" + G = nx.Graph() + G.add_edge(0, 1) + G.add_edge(0, 2) + G.add_edge(0, 3) + G.add_edge(1, 2) + G.add_edge(2, 4) + + sim = nx.panther_vector_similarity(G, 0, D=3, k=4, path_length=2, seed=42) + + assert len(sim) == 4 + assert 0 not in sim + assert all(node in sim for node in [1, 2, 3, 4]) + assert all(0 <= score <= 1 for score in sim.values()) + + def test_panther_vector_similarity_weighted(self): + """Test panther_vector_similarity with weighted graph.""" + G = nx.Graph() + G.add_edge("v1", "v2", weight=5) + G.add_edge("v1", "v3", weight=1) + G.add_edge("v1", "v4", weight=2) + G.add_edge("v2", "v3", weight=0.1) + G.add_edge("v3", "v5", weight=1) + + sim = nx.panther_vector_similarity( + G, "v1", D=3, k=4, path_length=2, weight="weight", seed=42 + ) + + assert len(sim) == 4 + assert "v1" not in sim + assert all(0 <= score <= 1 for score in sim.values()) + assert all(node in sim for node in ["v2", "v3", "v4"]) + + def test_panther_vector_similarity_source_not_found(self): + """Test panther_vector_similarity with non-existent source node.""" + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (0, 3), (1, 2), (2, 4)]) + + with pytest.raises(nx.NodeNotFound): + nx.panther_vector_similarity(G, source=10) + + def test_panther_vector_similarity_isolated(self): + """Test panther_vector_similarity with isolated source node.""" + G = nx.Graph() + G.add_nodes_from(range(5)) + G.add_edge(0, 1) + + with pytest.raises(nx.NetworkXUnfeasible): + nx.panther_vector_similarity(G, source=2) + + def test_panther_vector_similarity_too_large_D(self): + """Test raises when D > number of nodes.""" + G = nx.star_graph(3) + + with pytest.raises(nx.NetworkXUnfeasible): + nx.panther_vector_similarity(G, 0, D=5, k=3) + + def test_panther_vector_similarity_too_large_k(self): + """Test raises when k > number of nodes.""" + G = nx.star_graph(3) + + with pytest.raises(nx.NetworkXUnfeasible): + nx.panther_vector_similarity(G, 0, k=5) + + def test_panther_vector_similarity_small_graph(self): + """Test panther_vector_similarity with a very small graph.""" + G = nx.Graph() + G.add_edge(0, 1) + + sim = nx.panther_vector_similarity(G, 0, D=2, k=2, seed=42) + + assert len(sim) == 1 + assert 1 in sim + assert sim[1] > 0 + + def test_panther_vector_similarity_deterministic(self): + """Test that results are deterministic with fixed seed.""" + G = nx.Graph() + G.add_edges_from([(0, 1), (0, 2), (0, 3), (1, 2), (2, 4)]) + + sim1 = nx.panther_vector_similarity(G, 0, D=3, path_length=2, seed=42) + + sim2 = nx.panther_vector_similarity(G, 0, D=3, path_length=2, seed=42) + + assert sim1 == sim2 + + def test_panther_similarity_string_nodes(self): + """Test panther_similarity with string node names.""" + pytest.importorskip("numpy") + G = nx.Graph() + G.add_edges_from([("A", "B"), ("A", "C"), ("A", "D"), ("B", "C")]) + + sim = nx.panther_similarity(G, "A", k=2, path_length=2, seed=42) + + assert "A" not in sim # Source node should not be included + assert all(isinstance(node, str) for node in sim) # Nodes should remain strings + + def test_panther_vector_similarity_string_nodes(self): + """Test panther_vector_similarity with string node names.""" + pytest.importorskip("numpy") + G = nx.Graph() + G.add_edges_from([("A", "B"), ("A", "C"), ("A", "D"), ("B", "C")]) + + sim = nx.panther_vector_similarity(G, "A", D=3, k=2, path_length=2, seed=42) + + assert "A" not in sim # Source node should not be included + assert all(isinstance(node, str) for node in sim) # Nodes should remain strings + + def test_panther_similarity_k_parameter_returns_k_results(self): + pytest.importorskip("numpy") + G = nx.star_graph(100) + + for k_val in [1, 2, 3, 4, 5, 10]: + result_panther = nx.panther_similarity(G, source=1, k=k_val, seed=42) + assert len(result_panther) == k_val, ( + f"panther_similarity k={k_val} returned {len(result_panther)} results" + ) + assert 1 not in result_panther, "Source node should not be in results" + + result_vector = nx.panther_vector_similarity(G, source=1, k=k_val, seed=42) + assert len(result_vector) == k_val, ( + f"panther_vector_similarity k={k_val} returned {len(result_vector)} results" + ) + assert 1 not in result_vector, "Source node should not be in results" diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_simple_paths.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_simple_paths.py new file mode 100644 index 0000000000000000000000000000000000000000..7855bbad27b896750faa932a74062aa2bc8ca143 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_simple_paths.py @@ -0,0 +1,803 @@ +import random + +import pytest + +import networkx as nx +from networkx import convert_node_labels_to_integers as cnlti +from networkx.algorithms.simple_paths import ( + _bidirectional_dijkstra, + _bidirectional_shortest_path, +) +from networkx.utils import arbitrary_element, pairwise + + +class TestIsSimplePath: + """Unit tests for the + :func:`networkx.algorithms.simple_paths.is_simple_path` function. + + """ + + def test_empty_list(self): + """Tests that the empty list is not a valid path, since there + should be a one-to-one correspondence between paths as lists of + nodes and paths as lists of edges. + + """ + G = nx.trivial_graph() + assert not nx.is_simple_path(G, []) + + def test_trivial_path(self): + """Tests that the trivial path, a path of length one, is + considered a simple path in a graph. + + """ + G = nx.trivial_graph() + assert nx.is_simple_path(G, [0]) + + def test_trivial_nonpath(self): + """Tests that a list whose sole element is an object not in the + graph is not considered a simple path. + + """ + G = nx.trivial_graph() + assert not nx.is_simple_path(G, ["not a node"]) + + def test_simple_path(self): + G = nx.path_graph(2) + assert nx.is_simple_path(G, [0, 1]) + + def test_non_simple_path(self): + G = nx.path_graph(2) + assert not nx.is_simple_path(G, [0, 1, 0]) + + def test_cycle(self): + G = nx.cycle_graph(3) + assert not nx.is_simple_path(G, [0, 1, 2, 0]) + + def test_missing_node(self): + G = nx.path_graph(2) + assert not nx.is_simple_path(G, [0, 2]) + + def test_missing_starting_node(self): + G = nx.path_graph(2) + assert not nx.is_simple_path(G, [2, 0]) + + def test_directed_path(self): + G = nx.DiGraph([(0, 1), (1, 2)]) + assert nx.is_simple_path(G, [0, 1, 2]) + + def test_directed_non_path(self): + G = nx.DiGraph([(0, 1), (1, 2)]) + assert not nx.is_simple_path(G, [2, 1, 0]) + + def test_directed_cycle(self): + G = nx.DiGraph([(0, 1), (1, 2), (2, 0)]) + assert not nx.is_simple_path(G, [0, 1, 2, 0]) + + def test_multigraph(self): + G = nx.MultiGraph([(0, 1), (0, 1)]) + assert nx.is_simple_path(G, [0, 1]) + + def test_multidigraph(self): + G = nx.MultiDiGraph([(0, 1), (0, 1), (1, 0), (1, 0)]) + assert nx.is_simple_path(G, [0, 1]) + + +# Tests for all_simple_paths +def test_all_simple_paths(): + G = nx.path_graph(4) + paths = nx.all_simple_paths(G, 0, 3) + assert {tuple(p) for p in paths} == {(0, 1, 2, 3)} + + +def test_all_simple_paths_with_two_targets_emits_two_paths(): + G = nx.path_graph(4) + G.add_edge(2, 4) + paths = nx.all_simple_paths(G, 0, [3, 4]) + assert {tuple(p) for p in paths} == {(0, 1, 2, 3), (0, 1, 2, 4)} + + +def test_digraph_all_simple_paths_with_two_targets_emits_two_paths(): + G = nx.path_graph(4, create_using=nx.DiGraph()) + G.add_edge(2, 4) + paths = nx.all_simple_paths(G, 0, [3, 4]) + assert {tuple(p) for p in paths} == {(0, 1, 2, 3), (0, 1, 2, 4)} + + +def test_all_simple_paths_with_two_targets_cutoff(): + G = nx.path_graph(4) + G.add_edge(2, 4) + paths = nx.all_simple_paths(G, 0, [3, 4], cutoff=3) + assert {tuple(p) for p in paths} == {(0, 1, 2, 3), (0, 1, 2, 4)} + + +def test_digraph_all_simple_paths_with_two_targets_cutoff(): + G = nx.path_graph(4, create_using=nx.DiGraph()) + G.add_edge(2, 4) + paths = nx.all_simple_paths(G, 0, [3, 4], cutoff=3) + assert {tuple(p) for p in paths} == {(0, 1, 2, 3), (0, 1, 2, 4)} + + +def test_all_simple_paths_with_two_targets_in_line_emits_two_paths(): + G = nx.path_graph(4) + paths = nx.all_simple_paths(G, 0, [2, 3]) + assert {tuple(p) for p in paths} == {(0, 1, 2), (0, 1, 2, 3)} + + +def test_all_simple_paths_ignores_cycle(): + G = nx.cycle_graph(3, create_using=nx.DiGraph()) + G.add_edge(1, 3) + paths = nx.all_simple_paths(G, 0, 3) + assert {tuple(p) for p in paths} == {(0, 1, 3)} + + +def test_all_simple_paths_with_two_targets_inside_cycle_emits_two_paths(): + G = nx.cycle_graph(3, create_using=nx.DiGraph()) + G.add_edge(1, 3) + paths = nx.all_simple_paths(G, 0, [2, 3]) + assert {tuple(p) for p in paths} == {(0, 1, 2), (0, 1, 3)} + + +def test_all_simple_paths_source_target(): + G = nx.path_graph(4) + assert list(nx.all_simple_paths(G, 1, 1)) == [[1]] + + +def test_all_simple_paths_cutoff(): + G = nx.complete_graph(4) + paths = nx.all_simple_paths(G, 0, 1, cutoff=1) + assert {tuple(p) for p in paths} == {(0, 1)} + paths = nx.all_simple_paths(G, 0, 1, cutoff=2) + assert {tuple(p) for p in paths} == {(0, 1), (0, 2, 1), (0, 3, 1)} + + +def test_all_simple_paths_on_non_trivial_graph(): + """you may need to draw this graph to make sure it is reasonable""" + G = nx.path_graph(5, create_using=nx.DiGraph()) + G.add_edges_from([(0, 5), (1, 5), (1, 3), (5, 4), (4, 2), (4, 3)]) + paths = nx.all_simple_paths(G, 1, [2, 3]) + assert {tuple(p) for p in paths} == { + (1, 2), + (1, 3, 4, 2), + (1, 5, 4, 2), + (1, 3), + (1, 2, 3), + (1, 5, 4, 3), + (1, 5, 4, 2, 3), + } + paths = nx.all_simple_paths(G, 1, [2, 3], cutoff=3) + assert {tuple(p) for p in paths} == { + (1, 2), + (1, 3, 4, 2), + (1, 5, 4, 2), + (1, 3), + (1, 2, 3), + (1, 5, 4, 3), + } + paths = nx.all_simple_paths(G, 1, [2, 3], cutoff=2) + assert {tuple(p) for p in paths} == {(1, 2), (1, 3), (1, 2, 3)} + + +def test_all_simple_paths_multigraph(): + G = nx.MultiGraph([(1, 2), (1, 2)]) + assert list(nx.all_simple_paths(G, 1, 1)) == [[1]] + nx.add_path(G, [3, 1, 10, 2]) + paths = list(nx.all_simple_paths(G, 1, 2)) + assert len(paths) == 3 + assert {tuple(p) for p in paths} == {(1, 2), (1, 2), (1, 10, 2)} + + +def test_all_simple_paths_multigraph_with_cutoff(): + G = nx.MultiGraph([(1, 2), (1, 2), (1, 10), (10, 2)]) + paths = list(nx.all_simple_paths(G, 1, 2, cutoff=1)) + assert len(paths) == 2 + assert {tuple(p) for p in paths} == {(1, 2), (1, 2)} + + # See GitHub issue #6732. + G = nx.MultiGraph([(0, 1), (0, 2)]) + assert list(nx.all_simple_paths(G, 0, {1, 2}, cutoff=1)) == [[0, 1], [0, 2]] + + +def test_all_simple_paths_directed(): + G = nx.DiGraph() + nx.add_path(G, [1, 2, 3]) + nx.add_path(G, [3, 2, 1]) + paths = nx.all_simple_paths(G, 1, 3) + assert {tuple(p) for p in paths} == {(1, 2, 3)} + + +def test_all_simple_paths_empty(): + G = nx.path_graph(4) + paths = nx.all_simple_paths(G, 0, 3, cutoff=2) + assert list(paths) == [] + + +def test_all_simple_paths_corner_cases(): + assert list(nx.all_simple_paths(nx.empty_graph(2), 0, 0)) == [[0]] + assert list(nx.all_simple_paths(nx.empty_graph(2), 0, 1)) == [] + assert list(nx.all_simple_paths(nx.path_graph(9), 0, 8, 0)) == [] + + +def test_all_simple_paths_source_in_targets(): + # See GitHub issue #6690. + G = nx.path_graph(3) + assert list(nx.all_simple_paths(G, 0, {0, 1, 2})) == [[0], [0, 1], [0, 1, 2]] + + +def hamiltonian_path(G, source): + source = arbitrary_element(G) + neighbors = set(G[source]) - {source} + n = len(G) + for target in neighbors: + for path in nx.all_simple_paths(G, source, target): + if len(path) == n: + yield path + + +def test_hamiltonian_path(): + from itertools import permutations + + G = nx.complete_graph(4) + paths = [list(p) for p in hamiltonian_path(G, 0)] + exact = [[0] + list(p) for p in permutations([1, 2, 3], 3)] + assert sorted(paths) == sorted(exact) + + +def test_cutoff_zero(): + G = nx.complete_graph(4) + paths = nx.all_simple_paths(G, 0, 3, cutoff=0) + assert [list(p) for p in paths] == [] + paths = nx.all_simple_paths(nx.MultiGraph(G), 0, 3, cutoff=0) + assert [list(p) for p in paths] == [] + + +def test_source_missing(): + with pytest.raises(nx.NodeNotFound): + G = nx.Graph() + nx.add_path(G, [1, 2, 3]) + list(nx.all_simple_paths(nx.MultiGraph(G), 0, 3)) + + +def test_target_missing(): + with pytest.raises(nx.NodeNotFound): + G = nx.Graph() + nx.add_path(G, [1, 2, 3]) + list(nx.all_simple_paths(nx.MultiGraph(G), 1, 4)) + + +# Tests for all_simple_edge_paths +def test_all_simple_edge_paths(): + G = nx.path_graph(4) + paths = nx.all_simple_edge_paths(G, 0, 3) + assert {tuple(p) for p in paths} == {((0, 1), (1, 2), (2, 3))} + + +def test_all_simple_edge_paths_empty_path(): + G = nx.empty_graph(1) + assert list(nx.all_simple_edge_paths(G, 0, 0)) == [[]] + + +def test_all_simple_edge_paths_with_two_targets_emits_two_paths(): + G = nx.path_graph(4) + G.add_edge(2, 4) + paths = nx.all_simple_edge_paths(G, 0, [3, 4]) + assert {tuple(p) for p in paths} == { + ((0, 1), (1, 2), (2, 3)), + ((0, 1), (1, 2), (2, 4)), + } + + +def test_digraph_all_simple_edge_paths_with_two_targets_emits_two_paths(): + G = nx.path_graph(4, create_using=nx.DiGraph()) + G.add_edge(2, 4) + paths = nx.all_simple_edge_paths(G, 0, [3, 4]) + assert {tuple(p) for p in paths} == { + ((0, 1), (1, 2), (2, 3)), + ((0, 1), (1, 2), (2, 4)), + } + + +def test_all_simple_edge_paths_with_two_targets_cutoff(): + G = nx.path_graph(4) + G.add_edge(2, 4) + paths = nx.all_simple_edge_paths(G, 0, [3, 4], cutoff=3) + assert {tuple(p) for p in paths} == { + ((0, 1), (1, 2), (2, 3)), + ((0, 1), (1, 2), (2, 4)), + } + + +def test_digraph_all_simple_edge_paths_with_two_targets_cutoff(): + G = nx.path_graph(4, create_using=nx.DiGraph()) + G.add_edge(2, 4) + paths = nx.all_simple_edge_paths(G, 0, [3, 4], cutoff=3) + assert {tuple(p) for p in paths} == { + ((0, 1), (1, 2), (2, 3)), + ((0, 1), (1, 2), (2, 4)), + } + + +def test_all_simple_edge_paths_with_two_targets_in_line_emits_two_paths(): + G = nx.path_graph(4) + paths = nx.all_simple_edge_paths(G, 0, [2, 3]) + assert {tuple(p) for p in paths} == {((0, 1), (1, 2)), ((0, 1), (1, 2), (2, 3))} + + +def test_all_simple_edge_paths_ignores_cycle(): + G = nx.cycle_graph(3, create_using=nx.DiGraph()) + G.add_edge(1, 3) + paths = nx.all_simple_edge_paths(G, 0, 3) + assert {tuple(p) for p in paths} == {((0, 1), (1, 3))} + + +def test_all_simple_edge_paths_with_two_targets_inside_cycle_emits_two_paths(): + G = nx.cycle_graph(3, create_using=nx.DiGraph()) + G.add_edge(1, 3) + paths = nx.all_simple_edge_paths(G, 0, [2, 3]) + assert {tuple(p) for p in paths} == {((0, 1), (1, 2)), ((0, 1), (1, 3))} + + +def test_all_simple_edge_paths_source_target(): + G = nx.path_graph(4) + paths = nx.all_simple_edge_paths(G, 1, 1) + assert list(paths) == [[]] + + +def test_all_simple_edge_paths_cutoff(): + G = nx.complete_graph(4) + paths = nx.all_simple_edge_paths(G, 0, 1, cutoff=1) + assert {tuple(p) for p in paths} == {((0, 1),)} + paths = nx.all_simple_edge_paths(G, 0, 1, cutoff=2) + assert {tuple(p) for p in paths} == {((0, 1),), ((0, 2), (2, 1)), ((0, 3), (3, 1))} + + +def test_all_simple_edge_paths_on_non_trivial_graph(): + """you may need to draw this graph to make sure it is reasonable""" + G = nx.path_graph(5, create_using=nx.DiGraph()) + G.add_edges_from([(0, 5), (1, 5), (1, 3), (5, 4), (4, 2), (4, 3)]) + paths = nx.all_simple_edge_paths(G, 1, [2, 3]) + assert {tuple(p) for p in paths} == { + ((1, 2),), + ((1, 3), (3, 4), (4, 2)), + ((1, 5), (5, 4), (4, 2)), + ((1, 3),), + ((1, 2), (2, 3)), + ((1, 5), (5, 4), (4, 3)), + ((1, 5), (5, 4), (4, 2), (2, 3)), + } + paths = nx.all_simple_edge_paths(G, 1, [2, 3], cutoff=3) + assert {tuple(p) for p in paths} == { + ((1, 2),), + ((1, 3), (3, 4), (4, 2)), + ((1, 5), (5, 4), (4, 2)), + ((1, 3),), + ((1, 2), (2, 3)), + ((1, 5), (5, 4), (4, 3)), + } + paths = nx.all_simple_edge_paths(G, 1, [2, 3], cutoff=2) + assert {tuple(p) for p in paths} == {((1, 2),), ((1, 3),), ((1, 2), (2, 3))} + + +def test_all_simple_edge_paths_multigraph(): + G = nx.MultiGraph([(1, 2), (1, 2)]) + paths = nx.all_simple_edge_paths(G, 1, 1) + assert list(paths) == [[]] + nx.add_path(G, [3, 1, 10, 2]) + paths = list(nx.all_simple_edge_paths(G, 1, 2)) + assert len(paths) == 3 + assert {tuple(p) for p in paths} == { + ((1, 2, 0),), + ((1, 2, 1),), + ((1, 10, 0), (10, 2, 0)), + } + + +def test_all_simple_edge_paths_multigraph_with_cutoff(): + G = nx.MultiGraph([(1, 2), (1, 2), (1, 10), (10, 2)]) + paths = list(nx.all_simple_edge_paths(G, 1, 2, cutoff=1)) + assert len(paths) == 2 + assert {tuple(p) for p in paths} == {((1, 2, 0),), ((1, 2, 1),)} + + +def test_all_simple_edge_paths_directed(): + G = nx.DiGraph() + nx.add_path(G, [1, 2, 3]) + nx.add_path(G, [3, 2, 1]) + paths = nx.all_simple_edge_paths(G, 1, 3) + assert {tuple(p) for p in paths} == {((1, 2), (2, 3))} + + +def test_all_simple_edge_paths_empty(): + G = nx.path_graph(4) + paths = nx.all_simple_edge_paths(G, 0, 3, cutoff=2) + assert list(paths) == [] + + +def test_all_simple_edge_paths_corner_cases(): + assert list(nx.all_simple_edge_paths(nx.empty_graph(2), 0, 0)) == [[]] + assert list(nx.all_simple_edge_paths(nx.empty_graph(2), 0, 1)) == [] + assert list(nx.all_simple_edge_paths(nx.path_graph(9), 0, 8, 0)) == [] + + +def test_all_simple_edge_paths_ignores_self_loop(): + G = nx.Graph([(0, 0), (0, 1), (1, 1), (1, 2)]) + assert list(nx.all_simple_edge_paths(G, 0, 2)) == [[(0, 1), (1, 2)]] + + +def hamiltonian_edge_path(G, source): + source = arbitrary_element(G) + neighbors = set(G[source]) - {source} + n = len(G) + for target in neighbors: + for path in nx.all_simple_edge_paths(G, source, target): + if len(path) == n - 1: + yield path + + +def test_hamiltonian__edge_path(): + from itertools import permutations + + G = nx.complete_graph(4) + paths = hamiltonian_edge_path(G, 0) + exact = [list(pairwise([0] + list(p))) for p in permutations([1, 2, 3], 3)] + assert sorted(exact) == sorted(paths) + + +def test_edge_cutoff_zero(): + G = nx.complete_graph(4) + paths = nx.all_simple_edge_paths(G, 0, 3, cutoff=0) + assert [list(p) for p in paths] == [] + paths = nx.all_simple_edge_paths(nx.MultiGraph(G), 0, 3, cutoff=0) + assert [list(p) for p in paths] == [] + + +def test_edge_source_missing(): + with pytest.raises(nx.NodeNotFound): + G = nx.Graph() + nx.add_path(G, [1, 2, 3]) + list(nx.all_simple_edge_paths(nx.MultiGraph(G), 0, 3)) + + +def test_edge_target_missing(): + with pytest.raises(nx.NodeNotFound): + G = nx.Graph() + nx.add_path(G, [1, 2, 3]) + list(nx.all_simple_edge_paths(nx.MultiGraph(G), 1, 4)) + + +# Tests for shortest_simple_paths +def test_shortest_simple_paths(): + G = cnlti(nx.grid_2d_graph(4, 4), first_label=1, ordering="sorted") + paths = nx.shortest_simple_paths(G, 1, 12) + assert next(paths) == [1, 2, 3, 4, 8, 12] + assert next(paths) == [1, 5, 6, 7, 8, 12] + assert [len(path) for path in nx.shortest_simple_paths(G, 1, 12)] == sorted( + len(path) for path in nx.all_simple_paths(G, 1, 12) + ) + + +def test_shortest_simple_paths_singleton_path(): + G = nx.empty_graph(3) + assert list(nx.shortest_simple_paths(G, 0, 0)) == [[0]] + + +def test_shortest_simple_paths_directed(): + G = nx.cycle_graph(7, create_using=nx.DiGraph()) + paths = nx.shortest_simple_paths(G, 0, 3) + assert list(paths) == [[0, 1, 2, 3]] + + +def test_shortest_simple_paths_directed_with_weight_function(): + def cost(u, v, x): + return 1 + + G = cnlti(nx.grid_2d_graph(4, 4), first_label=1, ordering="sorted") + paths = nx.shortest_simple_paths(G, 1, 12) + assert next(paths) == [1, 2, 3, 4, 8, 12] + assert next(paths) == [1, 5, 6, 7, 8, 12] + assert [ + len(path) for path in nx.shortest_simple_paths(G, 1, 12, weight=cost) + ] == sorted(len(path) for path in nx.all_simple_paths(G, 1, 12)) + + +def test_shortest_simple_paths_with_weight_function(): + def cost(u, v, x): + return 1 + + G = nx.cycle_graph(7, create_using=nx.DiGraph()) + paths = nx.shortest_simple_paths(G, 0, 3, weight=cost) + assert list(paths) == [[0, 1, 2, 3]] + + +def test_shortest_simple_paths_with_none_weight_function(): + def cost(u, v, x): + delta = abs(u - v) + # ignore interior edges + return 1 if (delta == 1 or delta == 4) else None + + G = nx.complete_graph(5) + paths = nx.shortest_simple_paths(G, 0, 2, weight=cost) + assert list(paths) == [[0, 1, 2], [0, 4, 3, 2]] + + +def test_Greg_Bernstein(): + g1 = nx.Graph() + g1.add_nodes_from(["N0", "N1", "N2", "N3", "N4"]) + g1.add_edge("N4", "N1", weight=10.0, capacity=50, name="L5") + g1.add_edge("N4", "N0", weight=7.0, capacity=40, name="L4") + g1.add_edge("N0", "N1", weight=10.0, capacity=45, name="L1") + g1.add_edge("N3", "N0", weight=10.0, capacity=50, name="L0") + g1.add_edge("N2", "N3", weight=12.0, capacity=30, name="L2") + g1.add_edge("N1", "N2", weight=15.0, capacity=42, name="L3") + solution = [["N1", "N0", "N3"], ["N1", "N2", "N3"], ["N1", "N4", "N0", "N3"]] + result = list(nx.shortest_simple_paths(g1, "N1", "N3", weight="weight")) + assert result == solution + + +def test_weighted_shortest_simple_path(): + def cost_func(path): + return sum(G.adj[u][v]["weight"] for (u, v) in zip(path, path[1:])) + + G = nx.complete_graph(5) + weight = {(u, v): random.randint(1, 100) for (u, v) in G.edges()} + nx.set_edge_attributes(G, weight, "weight") + cost = 0 + for path in nx.shortest_simple_paths(G, 0, 3, weight="weight"): + this_cost = cost_func(path) + assert cost <= this_cost + cost = this_cost + + +def test_directed_weighted_shortest_simple_path(): + def cost_func(path): + return sum(G.adj[u][v]["weight"] for (u, v) in zip(path, path[1:])) + + G = nx.complete_graph(5) + G = G.to_directed() + weight = {(u, v): random.randint(1, 100) for (u, v) in G.edges()} + nx.set_edge_attributes(G, weight, "weight") + cost = 0 + for path in nx.shortest_simple_paths(G, 0, 3, weight="weight"): + this_cost = cost_func(path) + assert cost <= this_cost + cost = this_cost + + +def test_weighted_shortest_simple_path_issue2427(): + G = nx.Graph() + G.add_edge("IN", "OUT", weight=2) + G.add_edge("IN", "A", weight=1) + G.add_edge("IN", "B", weight=2) + G.add_edge("B", "OUT", weight=2) + assert list(nx.shortest_simple_paths(G, "IN", "OUT", weight="weight")) == [ + ["IN", "OUT"], + ["IN", "B", "OUT"], + ] + G = nx.Graph() + G.add_edge("IN", "OUT", weight=10) + G.add_edge("IN", "A", weight=1) + G.add_edge("IN", "B", weight=1) + G.add_edge("B", "OUT", weight=1) + assert list(nx.shortest_simple_paths(G, "IN", "OUT", weight="weight")) == [ + ["IN", "B", "OUT"], + ["IN", "OUT"], + ] + + +def test_directed_weighted_shortest_simple_path_issue2427(): + G = nx.DiGraph() + G.add_edge("IN", "OUT", weight=2) + G.add_edge("IN", "A", weight=1) + G.add_edge("IN", "B", weight=2) + G.add_edge("B", "OUT", weight=2) + assert list(nx.shortest_simple_paths(G, "IN", "OUT", weight="weight")) == [ + ["IN", "OUT"], + ["IN", "B", "OUT"], + ] + G = nx.DiGraph() + G.add_edge("IN", "OUT", weight=10) + G.add_edge("IN", "A", weight=1) + G.add_edge("IN", "B", weight=1) + G.add_edge("B", "OUT", weight=1) + assert list(nx.shortest_simple_paths(G, "IN", "OUT", weight="weight")) == [ + ["IN", "B", "OUT"], + ["IN", "OUT"], + ] + + +def test_weight_name(): + G = nx.cycle_graph(7) + nx.set_edge_attributes(G, 1, "weight") + nx.set_edge_attributes(G, 1, "foo") + G.adj[1][2]["foo"] = 7 + paths = list(nx.shortest_simple_paths(G, 0, 3, weight="foo")) + solution = [[0, 6, 5, 4, 3], [0, 1, 2, 3]] + assert paths == solution + + +def test_ssp_source_missing(): + with pytest.raises(nx.NodeNotFound): + G = nx.Graph() + nx.add_path(G, [1, 2, 3]) + list(nx.shortest_simple_paths(G, 0, 3)) + + +def test_ssp_target_missing(): + with pytest.raises(nx.NodeNotFound): + G = nx.Graph() + nx.add_path(G, [1, 2, 3]) + list(nx.shortest_simple_paths(G, 1, 4)) + + +def test_ssp_multigraph(): + with pytest.raises(nx.NetworkXNotImplemented): + G = nx.MultiGraph() + nx.add_path(G, [1, 2, 3]) + list(nx.shortest_simple_paths(G, 1, 4)) + + +def test_ssp_source_missing2(): + with pytest.raises(nx.NetworkXNoPath): + G = nx.Graph() + nx.add_path(G, [0, 1, 2]) + nx.add_path(G, [3, 4, 5]) + list(nx.shortest_simple_paths(G, 0, 3)) + + +def test_bidirectional_shortest_path_restricted_cycle(): + cycle = nx.cycle_graph(7) + length, path = _bidirectional_shortest_path(cycle, 0, 3) + assert path == [0, 1, 2, 3] + length, path = _bidirectional_shortest_path(cycle, 0, 3, ignore_nodes=[1]) + assert path == [0, 6, 5, 4, 3] + + +def test_bidirectional_shortest_path_restricted_wheel(): + wheel = nx.wheel_graph(6) + length, path = _bidirectional_shortest_path(wheel, 1, 3) + assert path in [[1, 0, 3], [1, 2, 3]] + length, path = _bidirectional_shortest_path(wheel, 1, 3, ignore_nodes=[0]) + assert path == [1, 2, 3] + length, path = _bidirectional_shortest_path(wheel, 1, 3, ignore_nodes=[0, 2]) + assert path == [1, 5, 4, 3] + length, path = _bidirectional_shortest_path( + wheel, 1, 3, ignore_edges=[(1, 0), (5, 0), (2, 3)] + ) + assert path in [[1, 2, 0, 3], [1, 5, 4, 3]] + + +def test_bidirectional_shortest_path_restricted_directed_cycle(): + directed_cycle = nx.cycle_graph(7, create_using=nx.DiGraph()) + length, path = _bidirectional_shortest_path(directed_cycle, 0, 3) + assert path == [0, 1, 2, 3] + pytest.raises( + nx.NetworkXNoPath, + _bidirectional_shortest_path, + directed_cycle, + 0, + 3, + ignore_nodes=[1], + ) + length, path = _bidirectional_shortest_path( + directed_cycle, 0, 3, ignore_edges=[(2, 1)] + ) + assert path == [0, 1, 2, 3] + pytest.raises( + nx.NetworkXNoPath, + _bidirectional_shortest_path, + directed_cycle, + 0, + 3, + ignore_edges=[(1, 2)], + ) + + +def test_bidirectional_shortest_path_ignore(): + G = nx.Graph() + nx.add_path(G, [1, 2]) + nx.add_path(G, [1, 3]) + nx.add_path(G, [1, 4]) + pytest.raises( + nx.NetworkXNoPath, _bidirectional_shortest_path, G, 1, 2, ignore_nodes=[1] + ) + pytest.raises( + nx.NetworkXNoPath, _bidirectional_shortest_path, G, 1, 2, ignore_nodes=[2] + ) + G = nx.Graph() + nx.add_path(G, [1, 3]) + nx.add_path(G, [1, 4]) + nx.add_path(G, [3, 2]) + pytest.raises( + nx.NetworkXNoPath, _bidirectional_shortest_path, G, 1, 2, ignore_nodes=[1, 2] + ) + + +def validate_path(G, s, t, soln_len, path): + assert path[0] == s + assert path[-1] == t + assert soln_len == sum( + G[u][v].get("weight", 1) for u, v in zip(path[:-1], path[1:]) + ) + + +def validate_length_path(G, s, t, soln_len, length, path): + assert soln_len == length + validate_path(G, s, t, length, path) + + +def test_bidirectional_dijkstra_restricted(): + XG = nx.DiGraph() + XG.add_weighted_edges_from( + [ + ("s", "u", 10), + ("s", "x", 5), + ("u", "v", 1), + ("u", "x", 2), + ("v", "y", 1), + ("x", "u", 3), + ("x", "v", 5), + ("x", "y", 2), + ("y", "s", 7), + ("y", "v", 6), + ] + ) + + XG3 = nx.Graph() + XG3.add_weighted_edges_from( + [[0, 1, 2], [1, 2, 12], [2, 3, 1], [3, 4, 5], [4, 5, 1], [5, 0, 10]] + ) + validate_length_path(XG, "s", "v", 9, *_bidirectional_dijkstra(XG, "s", "v")) + validate_length_path( + XG, "s", "v", 10, *_bidirectional_dijkstra(XG, "s", "v", ignore_nodes=["u"]) + ) + validate_length_path( + XG, + "s", + "v", + 11, + *_bidirectional_dijkstra(XG, "s", "v", ignore_edges=[("s", "x")]), + ) + pytest.raises( + nx.NetworkXNoPath, + _bidirectional_dijkstra, + XG, + "s", + "v", + ignore_nodes=["u"], + ignore_edges=[("s", "x")], + ) + validate_length_path(XG3, 0, 3, 15, *_bidirectional_dijkstra(XG3, 0, 3)) + validate_length_path( + XG3, 0, 3, 16, *_bidirectional_dijkstra(XG3, 0, 3, ignore_nodes=[1]) + ) + validate_length_path( + XG3, 0, 3, 16, *_bidirectional_dijkstra(XG3, 0, 3, ignore_edges=[(2, 3)]) + ) + pytest.raises( + nx.NetworkXNoPath, + _bidirectional_dijkstra, + XG3, + 0, + 3, + ignore_nodes=[1], + ignore_edges=[(5, 4)], + ) + + +def test_bidirectional_dijkstra_no_path(): + with pytest.raises(nx.NetworkXNoPath): + G = nx.Graph() + nx.add_path(G, [1, 2, 3]) + nx.add_path(G, [4, 5, 6]) + _bidirectional_dijkstra(G, 1, 6) + + +def test_bidirectional_dijkstra_ignore(): + G = nx.Graph() + nx.add_path(G, [1, 2, 10]) + nx.add_path(G, [1, 3, 10]) + pytest.raises(nx.NetworkXNoPath, _bidirectional_dijkstra, G, 1, 2, ignore_nodes=[1]) + pytest.raises(nx.NetworkXNoPath, _bidirectional_dijkstra, G, 1, 2, ignore_nodes=[2]) + pytest.raises( + nx.NetworkXNoPath, _bidirectional_dijkstra, G, 1, 2, ignore_nodes=[1, 2] + ) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_smallworld.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_smallworld.py new file mode 100644 index 0000000000000000000000000000000000000000..c8e454293b4325a5c7557480182b1e1271a1118e --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_smallworld.py @@ -0,0 +1,76 @@ +import pytest + +pytest.importorskip("numpy") + +import networkx as nx +from networkx import lattice_reference, omega, random_reference, sigma + +rng = 42 + + +def test_random_reference(): + G = nx.connected_watts_strogatz_graph(50, 6, 0.1, seed=rng) + Gr = random_reference(G, niter=1, seed=rng) + C = nx.average_clustering(G) + Cr = nx.average_clustering(Gr) + assert C > Cr + + with pytest.raises(nx.NetworkXError): + next(random_reference(nx.Graph())) + with pytest.raises(nx.NetworkXNotImplemented): + next(random_reference(nx.DiGraph())) + + H = nx.Graph(((0, 1), (2, 3))) + Hl = random_reference(H, niter=1, seed=rng) + + +def test_lattice_reference(): + G = nx.connected_watts_strogatz_graph(50, 6, 1, seed=rng) + Gl = lattice_reference(G, niter=1, seed=rng) + L = nx.average_shortest_path_length(G) + Ll = nx.average_shortest_path_length(Gl) + assert Ll > L + + pytest.raises(nx.NetworkXError, lattice_reference, nx.Graph()) + pytest.raises(nx.NetworkXNotImplemented, lattice_reference, nx.DiGraph()) + + H = nx.Graph(((0, 1), (2, 3))) + Hl = lattice_reference(H, niter=1) + + +def test_sigma(): + Gs = nx.connected_watts_strogatz_graph(50, 6, 0.1, seed=rng) + Gr = nx.connected_watts_strogatz_graph(50, 6, 1, seed=rng) + sigmas = sigma(Gs, niter=1, nrand=2, seed=rng) + sigmar = sigma(Gr, niter=1, nrand=2, seed=rng) + assert sigmar < sigmas + + +def test_omega(): + Gl = nx.connected_watts_strogatz_graph(50, 6, 0, seed=rng) + Gr = nx.connected_watts_strogatz_graph(50, 6, 1, seed=rng) + Gs = nx.connected_watts_strogatz_graph(50, 6, 0.1, seed=rng) + omegal = omega(Gl, niter=1, nrand=1, seed=rng) + omegar = omega(Gr, niter=1, nrand=1, seed=rng) + omegas = omega(Gs, niter=1, nrand=1, seed=rng) + assert omegal < omegas and omegas < omegar + + # Test that omega lies within the [-1, 1] bounds + G_barbell = nx.barbell_graph(5, 1) + G_karate = nx.karate_club_graph() + + omega_barbell = nx.omega(G_barbell) + omega_karate = nx.omega(G_karate, nrand=2) + + omegas = (omegal, omegar, omegas, omega_barbell, omega_karate) + + for o in omegas: + assert -1 <= o <= 1 + + +@pytest.mark.parametrize("f", (nx.random_reference, nx.lattice_reference)) +def test_graph_no_edges(f): + G = nx.Graph() + G.add_nodes_from([0, 1, 2, 3]) + with pytest.raises(nx.NetworkXError, match="Graph has fewer that 2 edges"): + f(G) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_smetric.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_smetric.py new file mode 100644 index 0000000000000000000000000000000000000000..528dbc8d69bf5dca221c17cd16118cf3ba01a2a9 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_smetric.py @@ -0,0 +1,8 @@ +import pytest + +import networkx as nx + + +def test_smetric(): + G = nx.Graph([(1, 2), (2, 3), (2, 4), (1, 4)]) + assert nx.s_metric(G) == 19.0 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_sparsifiers.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_sparsifiers.py new file mode 100644 index 0000000000000000000000000000000000000000..e8604e61ae45aca9092226a793a02b082b126738 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_sparsifiers.py @@ -0,0 +1,138 @@ +"""Unit tests for the sparsifier computation functions.""" + +import pytest + +import networkx as nx +from networkx.utils import py_random_state + +_seed = 2 + + +def _test_spanner(G, spanner, stretch, weight=None): + """Test whether a spanner is valid. + + This function tests whether the given spanner is a subgraph of the + given graph G with the same node set. It also tests for all shortest + paths whether they adhere to the given stretch. + + Parameters + ---------- + G : NetworkX graph + The original graph for which the spanner was constructed. + + spanner : NetworkX graph + The spanner to be tested. + + stretch : float + The proclaimed stretch of the spanner. + + weight : object + The edge attribute to use as distance. + """ + # check node set + assert set(G.nodes()) == set(spanner.nodes()) + + # check edge set and weights + for u, v in spanner.edges(): + assert G.has_edge(u, v) + if weight: + assert spanner[u][v][weight] == G[u][v][weight] + + # check connectivity and stretch + original_length = dict(nx.shortest_path_length(G, weight=weight)) + spanner_length = dict(nx.shortest_path_length(spanner, weight=weight)) + for u in G.nodes(): + for v in G.nodes(): + if u in original_length and v in original_length[u]: + assert spanner_length[u][v] <= stretch * original_length[u][v] + + +@py_random_state(1) +def _assign_random_weights(G, seed=None): + """Assigns random weights to the edges of a graph. + + Parameters + ---------- + + G : NetworkX graph + The original graph for which the spanner was constructed. + + seed : integer, random_state, or None (default) + Indicator of random number generation state. + See :ref:`Randomness`. + """ + for u, v in G.edges(): + G[u][v]["weight"] = seed.random() + + +def test_spanner_trivial(): + """Test a trivial spanner with stretch 1.""" + G = nx.complete_graph(20) + spanner = nx.spanner(G, 1, seed=_seed) + + for u, v in G.edges: + assert spanner.has_edge(u, v) + + +def test_spanner_unweighted_complete_graph(): + """Test spanner construction on a complete unweighted graph.""" + G = nx.complete_graph(20) + + spanner = nx.spanner(G, 4, seed=_seed) + _test_spanner(G, spanner, 4) + + spanner = nx.spanner(G, 10, seed=_seed) + _test_spanner(G, spanner, 10) + + +def test_spanner_weighted_complete_graph(): + """Test spanner construction on a complete weighted graph.""" + G = nx.complete_graph(20) + _assign_random_weights(G, seed=_seed) + + spanner = nx.spanner(G, 4, weight="weight", seed=_seed) + _test_spanner(G, spanner, 4, weight="weight") + + spanner = nx.spanner(G, 10, weight="weight", seed=_seed) + _test_spanner(G, spanner, 10, weight="weight") + + +def test_spanner_unweighted_gnp_graph(): + """Test spanner construction on an unweighted gnp graph.""" + G = nx.gnp_random_graph(20, 0.4, seed=_seed) + + spanner = nx.spanner(G, 4, seed=_seed) + _test_spanner(G, spanner, 4) + + spanner = nx.spanner(G, 10, seed=_seed) + _test_spanner(G, spanner, 10) + + +def test_spanner_weighted_gnp_graph(): + """Test spanner construction on an weighted gnp graph.""" + G = nx.gnp_random_graph(20, 0.4, seed=_seed) + _assign_random_weights(G, seed=_seed) + + spanner = nx.spanner(G, 4, weight="weight", seed=_seed) + _test_spanner(G, spanner, 4, weight="weight") + + spanner = nx.spanner(G, 10, weight="weight", seed=_seed) + _test_spanner(G, spanner, 10, weight="weight") + + +def test_spanner_unweighted_disconnected_graph(): + """Test spanner construction on a disconnected graph.""" + G = nx.disjoint_union(nx.complete_graph(10), nx.complete_graph(10)) + + spanner = nx.spanner(G, 4, seed=_seed) + _test_spanner(G, spanner, 4) + + spanner = nx.spanner(G, 10, seed=_seed) + _test_spanner(G, spanner, 10) + + +def test_spanner_invalid_stretch(): + """Check whether an invalid stretch is caught.""" + with pytest.raises(ValueError): + G = nx.empty_graph() + nx.spanner(G, 0) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_structuralholes.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_structuralholes.py new file mode 100644 index 0000000000000000000000000000000000000000..d0f53cd14e2bb4459197416932d3e297d4bde0f7 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_structuralholes.py @@ -0,0 +1,191 @@ +"""Unit tests for the :mod:`networkx.algorithms.structuralholes` module.""" + +import math + +import pytest + +import networkx as nx +from networkx.classes.tests import dispatch_interface + + +class TestStructuralHolesNoScipy: + """Unit tests for computing measures of structural holes. + + The expected values for these functions were originally computed using the + proprietary software `UCINET`_ and the free software `IGraph`_ , and then + computed by hand to make sure that the results are correct. + + .. _UCINET: https://sites.google.com/site/ucinetsoftware/home + .. _IGraph: http://igraph.org/ + + """ + + def setup_method(self): + self.D = nx.DiGraph() + self.D.add_edges_from([(0, 1), (0, 2), (1, 0), (2, 1)]) + self.D_weights = {(0, 1): 2, (0, 2): 2, (1, 0): 1, (2, 1): 1} + # Example from http://www.analytictech.com/connections/v20(1)/holes.htm + self.G = nx.Graph() + self.G.add_edges_from( + [ + ("A", "B"), + ("A", "F"), + ("A", "G"), + ("A", "E"), + ("E", "G"), + ("F", "G"), + ("B", "G"), + ("B", "D"), + ("D", "G"), + ("G", "C"), + ] + ) + self.G_weights = { + ("A", "B"): 2, + ("A", "F"): 3, + ("A", "G"): 5, + ("A", "E"): 2, + ("E", "G"): 8, + ("F", "G"): 3, + ("B", "G"): 4, + ("B", "D"): 1, + ("D", "G"): 3, + ("G", "C"): 10, + } + self.Dnodes = list(self.D) + self.Gnodes = list(self.G) + + def test_constraint_directed(self): + constraint = nx.constraint(self.D, nodes=self.Dnodes) + assert constraint[0] == pytest.approx(1.003, abs=1e-3) + assert constraint[1] == pytest.approx(1.003, abs=1e-3) + assert constraint[2] == pytest.approx(1.389, abs=1e-3) + + def test_effective_size_directed(self): + effective_size = nx.effective_size(self.D, nodes=self.Dnodes) + assert effective_size[0] == pytest.approx(1.167, abs=1e-3) + assert effective_size[1] == pytest.approx(1.167, abs=1e-3) + assert effective_size[2] == pytest.approx(1, abs=1e-3) + + def test_constraint_weighted_directed(self): + D = self.D.copy() + nx.set_edge_attributes(D, self.D_weights, "weight") + constraint = nx.constraint(D, weight="weight", nodes=self.Dnodes) + assert constraint[0] == pytest.approx(0.840, abs=1e-3) + assert constraint[1] == pytest.approx(1.143, abs=1e-3) + assert constraint[2] == pytest.approx(1.378, abs=1e-3) + + def test_effective_size_weighted_directed(self): + D = self.D.copy() + nx.set_edge_attributes(D, self.D_weights, "weight") + effective_size = nx.effective_size(D, weight="weight", nodes=self.Dnodes) + assert effective_size[0] == pytest.approx(1.567, abs=1e-3) + assert effective_size[1] == pytest.approx(1.083, abs=1e-3) + assert effective_size[2] == pytest.approx(1, abs=1e-3) + + def test_constraint_undirected(self): + constraint = nx.constraint(self.G, nodes=self.Gnodes) + assert constraint["G"] == pytest.approx(0.400, abs=1e-3) + assert constraint["A"] == pytest.approx(0.595, abs=1e-3) + assert constraint["C"] == pytest.approx(1, abs=1e-3) + + def test_effective_size_undirected_borgatti(self): + effective_size = nx.effective_size(self.G, nodes=self.Gnodes) + assert effective_size["G"] == pytest.approx(4.67, abs=1e-2) + assert effective_size["A"] == pytest.approx(2.50, abs=1e-2) + assert effective_size["C"] == pytest.approx(1, abs=1e-2) + + def test_effective_size_undirected(self): + G = self.G.copy() + nx.set_edge_attributes(G, 1, "weight") + effective_size = nx.effective_size(G, weight="weight", nodes=self.Gnodes) + assert effective_size["G"] == pytest.approx(4.67, abs=1e-2) + assert effective_size["A"] == pytest.approx(2.50, abs=1e-2) + assert effective_size["C"] == pytest.approx(1, abs=1e-2) + + def test_constraint_weighted_undirected(self): + G = self.G.copy() + nx.set_edge_attributes(G, self.G_weights, "weight") + constraint = nx.constraint(G, weight="weight", nodes=self.Gnodes) + assert constraint["G"] == pytest.approx(0.299, abs=1e-3) + assert constraint["A"] == pytest.approx(0.795, abs=1e-3) + assert constraint["C"] == pytest.approx(1, abs=1e-3) + + def test_effective_size_weighted_undirected(self): + G = self.G.copy() + nx.set_edge_attributes(G, self.G_weights, "weight") + effective_size = nx.effective_size(G, weight="weight", nodes=self.Gnodes) + assert effective_size["G"] == pytest.approx(5.47, abs=1e-2) + assert effective_size["A"] == pytest.approx(2.47, abs=1e-2) + assert effective_size["C"] == pytest.approx(1, abs=1e-2) + + def test_constraint_isolated(self): + G = self.G.copy() + G.add_node(1) + constraint = nx.constraint(G, nodes=self.Gnodes + [1]) + assert math.isnan(constraint[1]) + + def test_effective_size_isolated(self): + G = self.G.copy() + G.add_node(1) + nx.set_edge_attributes(G, self.G_weights, "weight") + effective_size = nx.effective_size(G, weight="weight", nodes=self.Gnodes + [1]) + assert math.isnan(effective_size[1]) + + def test_effective_size_borgatti_isolated(self): + G = self.G.copy() + G.add_node(1) + effective_size = nx.effective_size(G, nodes=self.Gnodes + [1]) + assert math.isnan(effective_size[1]) + + +class TestStructuralHoles(TestStructuralHolesNoScipy): + pytest.importorskip("scipy") + Dnodes = None + Gnodes = None + + +@pytest.mark.parametrize("graph", (nx.Graph, nx.DiGraph)) +@pytest.mark.parametrize("nodes", (None, [0])) +def test_effective_size_isolated_node_with_selfloop(graph, nodes): + """Behavior consistent with isolated node without self-loop. See gh-6916""" + G = graph([(0, 0)]) # Single node with one self-edge + assert math.isnan(nx.effective_size(G, nodes=nodes)[0]) + + +@pytest.mark.parametrize("graph", (nx.Graph, nx.DiGraph)) +@pytest.mark.parametrize("nodes", (None, [0])) +def test_effective_size_isolated_node_with_selfloop_weighted(graph, nodes): + """Weighted self-loop. See gh-6916""" + G = graph() + G.add_weighted_edges_from([(0, 0, 10)]) + assert math.isnan(nx.effective_size(G, nodes=nodes)[0]) + + +@pytest.mark.parametrize("graph", (nx.Graph, nx.DiGraph)) +def test_constraint_isolated_node_with_selfloop(graph): + """Behavior consistent with isolated node without self-loop. See gh-6916""" + G = graph([(0, 0)]) # Single node with one self-edge + assert math.isnan(nx.constraint(G)[0]) + + +@pytest.mark.parametrize("graph", (nx.Graph, nx.DiGraph)) +def test_constraint_isolated_node_with_selfloop_using_nodes_kwarg(graph): + """Behavior consistent with isolated node without self-loop. See gh-6916""" + G = graph([(0, 0)]) # Single node with one self-edge + assert nx.constraint(G, nodes=[0])[0] == 4 + + +@pytest.mark.parametrize("graph", (nx.Graph, nx.DiGraph)) +def test_constraint_isolated_node_with_selfloop_weighted(graph): + """Weighted self-loop. See gh-6916""" + G = graph() + G.add_weighted_edges_from([(0, 0, 10)]) + assert math.isnan(nx.constraint(G)[0]) + + +@pytest.mark.parametrize("graph", (nx.Graph, nx.DiGraph)) +def test_constraint_isolated_node_with_selfloop_weighted_using_nodes_kwarg(graph): + G = graph() + G.add_weighted_edges_from([(0, 0, 10)]) + assert nx.constraint(G, nodes=[0])[0] == 4 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_summarization.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_summarization.py new file mode 100644 index 0000000000000000000000000000000000000000..c3bf82fa53b2564b13e555d994bd73b5885e1915 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_summarization.py @@ -0,0 +1,642 @@ +""" +Unit tests for dedensification and graph summarization +""" + +import pytest + +import networkx as nx + + +class TestDirectedDedensification: + def build_original_graph(self): + original_matrix = [ + ("1", "BC"), + ("2", "ABC"), + ("3", ["A", "B", "6"]), + ("4", "ABC"), + ("5", "AB"), + ("6", ["5"]), + ("A", ["6"]), + ] + graph = nx.DiGraph() + for source, targets in original_matrix: + for target in targets: + graph.add_edge(source, target) + return graph + + def build_compressed_graph(self): + compressed_matrix = [ + ("1", "BC"), + ("2", ["ABC"]), + ("3", ["A", "B", "6"]), + ("4", ["ABC"]), + ("5", "AB"), + ("6", ["5"]), + ("A", ["6"]), + ("ABC", "ABC"), + ] + compressed_graph = nx.DiGraph() + for source, targets in compressed_matrix: + for target in targets: + compressed_graph.add_edge(source, target) + return compressed_graph + + def test_empty(self): + """ + Verify that an empty directed graph results in no compressor nodes + """ + G = nx.DiGraph() + compressed_graph, c_nodes = nx.dedensify(G, threshold=2) + assert c_nodes == set() + + @staticmethod + def densify(G, compressor_nodes, copy=True): + """ + Reconstructs the original graph from a dedensified, directed graph + + Parameters + ---------- + G: dedensified graph + A networkx graph + compressor_nodes: iterable + Iterable of compressor nodes in the dedensified graph + inplace: bool, optional (default: False) + Indicates if densification should be done inplace + + Returns + ------- + G: graph + A densified networkx graph + """ + if copy: + G = G.copy() + for compressor_node in compressor_nodes: + all_neighbors = set(nx.all_neighbors(G, compressor_node)) + out_neighbors = set(G.neighbors(compressor_node)) + for out_neighbor in out_neighbors: + G.remove_edge(compressor_node, out_neighbor) + in_neighbors = all_neighbors - out_neighbors + for in_neighbor in in_neighbors: + G.remove_edge(in_neighbor, compressor_node) + for out_neighbor in out_neighbors: + G.add_edge(in_neighbor, out_neighbor) + G.remove_node(compressor_node) + return G + + def setup_method(self): + self.c_nodes = ("ABC",) + + def test_dedensify_edges(self): + """ + Verifies that dedensify produced the correct edges to/from compressor + nodes in a directed graph + """ + G = self.build_original_graph() + compressed_G = self.build_compressed_graph() + compressed_graph, c_nodes = nx.dedensify(G, threshold=2) + for s, t in compressed_graph.edges(): + o_s = "".join(sorted(s)) + o_t = "".join(sorted(t)) + compressed_graph_exists = compressed_graph.has_edge(s, t) + verified_compressed_exists = compressed_G.has_edge(o_s, o_t) + assert compressed_graph_exists == verified_compressed_exists + assert len(c_nodes) == len(self.c_nodes) + + def test_dedensify_edge_count(self): + """ + Verifies that dedensify produced the correct number of compressor nodes + in a directed graph + """ + G = self.build_original_graph() + original_edge_count = len(G.edges()) + c_G, c_nodes = nx.dedensify(G, threshold=2) + compressed_edge_count = len(c_G.edges()) + assert compressed_edge_count <= original_edge_count + compressed_G = self.build_compressed_graph() + assert compressed_edge_count == len(compressed_G.edges()) + + def test_densify_edges(self): + """ + Verifies that densification produces the correct edges from the + original directed graph + """ + compressed_G = self.build_compressed_graph() + original_graph = self.densify(compressed_G, self.c_nodes, copy=True) + G = self.build_original_graph() + for s, t in G.edges(): + assert G.has_edge(s, t) == original_graph.has_edge(s, t) + + def test_densify_edge_count(self): + """ + Verifies that densification produces the correct number of edges in the + original directed graph + """ + compressed_G = self.build_compressed_graph() + compressed_edge_count = len(compressed_G.edges()) + original_graph = self.densify(compressed_G, self.c_nodes) + original_edge_count = len(original_graph.edges()) + assert compressed_edge_count <= original_edge_count + G = self.build_original_graph() + assert original_edge_count == len(G.edges()) + + +class TestUnDirectedDedensification: + def build_original_graph(self): + """ + Builds graph shown in the original research paper + """ + original_matrix = [ + ("1", "CB"), + ("2", "ABC"), + ("3", ["A", "B", "6"]), + ("4", "ABC"), + ("5", "AB"), + ("6", ["5"]), + ("A", ["6"]), + ] + graph = nx.Graph() + for source, targets in original_matrix: + for target in targets: + graph.add_edge(source, target) + return graph + + def test_empty(self): + """ + Verify that an empty undirected graph results in no compressor nodes + """ + G = nx.Graph() + compressed_G, c_nodes = nx.dedensify(G, threshold=2) + assert c_nodes == set() + + def setup_method(self): + self.c_nodes = ("6AB", "ABC") + + def build_compressed_graph(self): + compressed_matrix = [ + ("1", ["B", "C"]), + ("2", ["ABC"]), + ("3", ["6AB"]), + ("4", ["ABC"]), + ("5", ["6AB"]), + ("6", ["6AB", "A"]), + ("A", ["6AB", "ABC"]), + ("B", ["ABC", "6AB"]), + ("C", ["ABC"]), + ] + compressed_graph = nx.Graph() + for source, targets in compressed_matrix: + for target in targets: + compressed_graph.add_edge(source, target) + return compressed_graph + + def test_dedensify_edges(self): + """ + Verifies that dedensify produced correct compressor nodes and the + correct edges to/from the compressor nodes in an undirected graph + """ + G = self.build_original_graph() + c_G, c_nodes = nx.dedensify(G, threshold=2) + v_compressed_G = self.build_compressed_graph() + for s, t in c_G.edges(): + o_s = "".join(sorted(s)) + o_t = "".join(sorted(t)) + has_compressed_edge = c_G.has_edge(s, t) + verified_has_compressed_edge = v_compressed_G.has_edge(o_s, o_t) + assert has_compressed_edge == verified_has_compressed_edge + assert len(c_nodes) == len(self.c_nodes) + + def test_dedensify_edge_count(self): + """ + Verifies that dedensify produced the correct number of edges in an + undirected graph + """ + G = self.build_original_graph() + c_G, c_nodes = nx.dedensify(G, threshold=2, copy=True) + compressed_edge_count = len(c_G.edges()) + verified_original_edge_count = len(G.edges()) + assert compressed_edge_count <= verified_original_edge_count + verified_compressed_G = self.build_compressed_graph() + verified_compressed_edge_count = len(verified_compressed_G.edges()) + assert compressed_edge_count == verified_compressed_edge_count + + +@pytest.mark.parametrize( + "graph_type", [nx.Graph, nx.DiGraph, nx.MultiGraph, nx.MultiDiGraph] +) +def test_summarization_empty(graph_type): + G = graph_type() + summary_graph = nx.snap_aggregation(G, node_attributes=("color",)) + assert nx.is_isomorphic(summary_graph, G) + + +class AbstractSNAP: + node_attributes = ("color",) + + def build_original_graph(self): + pass + + def build_summary_graph(self): + pass + + def test_summary_graph(self): + original_graph = self.build_original_graph() + summary_graph = self.build_summary_graph() + + relationship_attributes = ("type",) + generated_summary_graph = nx.snap_aggregation( + original_graph, self.node_attributes, relationship_attributes + ) + relabeled_summary_graph = self.deterministic_labels(generated_summary_graph) + assert nx.is_isomorphic(summary_graph, relabeled_summary_graph) + + def deterministic_labels(self, G): + node_labels = list(G.nodes) + node_labels = sorted(node_labels, key=lambda n: sorted(G.nodes[n]["group"])[0]) + node_labels.sort() + + label_mapping = {} + for index, node in enumerate(node_labels): + label = f"Supernode-{index}" + label_mapping[node] = label + + return nx.relabel_nodes(G, label_mapping) + + +class TestSNAPNoEdgeTypes(AbstractSNAP): + relationship_attributes = () + + def test_summary_graph(self): + original_graph = self.build_original_graph() + summary_graph = self.build_summary_graph() + + relationship_attributes = ("type",) + generated_summary_graph = nx.snap_aggregation( + original_graph, self.node_attributes + ) + relabeled_summary_graph = self.deterministic_labels(generated_summary_graph) + assert nx.is_isomorphic(summary_graph, relabeled_summary_graph) + + def build_original_graph(self): + nodes = { + "A": {"color": "Red"}, + "B": {"color": "Red"}, + "C": {"color": "Red"}, + "D": {"color": "Red"}, + "E": {"color": "Blue"}, + "F": {"color": "Blue"}, + "G": {"color": "Blue"}, + "H": {"color": "Blue"}, + "I": {"color": "Yellow"}, + "J": {"color": "Yellow"}, + "K": {"color": "Yellow"}, + "L": {"color": "Yellow"}, + } + edges = [ + ("A", "B"), + ("A", "C"), + ("A", "E"), + ("A", "I"), + ("B", "D"), + ("B", "J"), + ("B", "F"), + ("C", "G"), + ("D", "H"), + ("I", "J"), + ("J", "K"), + ("I", "L"), + ] + G = nx.Graph() + for node in nodes: + attributes = nodes[node] + G.add_node(node, **attributes) + + for source, target in edges: + G.add_edge(source, target) + + return G + + def build_summary_graph(self): + nodes = { + "Supernode-0": {"color": "Red"}, + "Supernode-1": {"color": "Red"}, + "Supernode-2": {"color": "Blue"}, + "Supernode-3": {"color": "Blue"}, + "Supernode-4": {"color": "Yellow"}, + "Supernode-5": {"color": "Yellow"}, + } + edges = [ + ("Supernode-0", "Supernode-0"), + ("Supernode-0", "Supernode-1"), + ("Supernode-0", "Supernode-2"), + ("Supernode-0", "Supernode-4"), + ("Supernode-1", "Supernode-3"), + ("Supernode-4", "Supernode-4"), + ("Supernode-4", "Supernode-5"), + ] + G = nx.Graph() + for node in nodes: + attributes = nodes[node] + G.add_node(node, **attributes) + + for source, target in edges: + G.add_edge(source, target) + + supernodes = { + "Supernode-0": {"A", "B"}, + "Supernode-1": {"C", "D"}, + "Supernode-2": {"E", "F"}, + "Supernode-3": {"G", "H"}, + "Supernode-4": {"I", "J"}, + "Supernode-5": {"K", "L"}, + } + nx.set_node_attributes(G, supernodes, "group") + return G + + +class TestSNAPUndirected(AbstractSNAP): + def build_original_graph(self): + nodes = { + "A": {"color": "Red"}, + "B": {"color": "Red"}, + "C": {"color": "Red"}, + "D": {"color": "Red"}, + "E": {"color": "Blue"}, + "F": {"color": "Blue"}, + "G": {"color": "Blue"}, + "H": {"color": "Blue"}, + "I": {"color": "Yellow"}, + "J": {"color": "Yellow"}, + "K": {"color": "Yellow"}, + "L": {"color": "Yellow"}, + } + edges = [ + ("A", "B", "Strong"), + ("A", "C", "Weak"), + ("A", "E", "Strong"), + ("A", "I", "Weak"), + ("B", "D", "Weak"), + ("B", "J", "Weak"), + ("B", "F", "Strong"), + ("C", "G", "Weak"), + ("D", "H", "Weak"), + ("I", "J", "Strong"), + ("J", "K", "Strong"), + ("I", "L", "Strong"), + ] + G = nx.Graph() + for node in nodes: + attributes = nodes[node] + G.add_node(node, **attributes) + + for source, target, type in edges: + G.add_edge(source, target, type=type) + + return G + + def build_summary_graph(self): + nodes = { + "Supernode-0": {"color": "Red"}, + "Supernode-1": {"color": "Red"}, + "Supernode-2": {"color": "Blue"}, + "Supernode-3": {"color": "Blue"}, + "Supernode-4": {"color": "Yellow"}, + "Supernode-5": {"color": "Yellow"}, + } + edges = [ + ("Supernode-0", "Supernode-0", "Strong"), + ("Supernode-0", "Supernode-1", "Weak"), + ("Supernode-0", "Supernode-2", "Strong"), + ("Supernode-0", "Supernode-4", "Weak"), + ("Supernode-1", "Supernode-3", "Weak"), + ("Supernode-4", "Supernode-4", "Strong"), + ("Supernode-4", "Supernode-5", "Strong"), + ] + G = nx.Graph() + for node in nodes: + attributes = nodes[node] + G.add_node(node, **attributes) + + for source, target, type in edges: + G.add_edge(source, target, types=[{"type": type}]) + + supernodes = { + "Supernode-0": {"A", "B"}, + "Supernode-1": {"C", "D"}, + "Supernode-2": {"E", "F"}, + "Supernode-3": {"G", "H"}, + "Supernode-4": {"I", "J"}, + "Supernode-5": {"K", "L"}, + } + nx.set_node_attributes(G, supernodes, "group") + return G + + +class TestSNAPDirected(AbstractSNAP): + def build_original_graph(self): + nodes = { + "A": {"color": "Red"}, + "B": {"color": "Red"}, + "C": {"color": "Green"}, + "D": {"color": "Green"}, + "E": {"color": "Blue"}, + "F": {"color": "Blue"}, + "G": {"color": "Yellow"}, + "H": {"color": "Yellow"}, + } + edges = [ + ("A", "C", "Strong"), + ("A", "E", "Strong"), + ("A", "F", "Weak"), + ("B", "D", "Strong"), + ("B", "E", "Weak"), + ("B", "F", "Strong"), + ("C", "G", "Strong"), + ("C", "F", "Strong"), + ("D", "E", "Strong"), + ("D", "H", "Strong"), + ("G", "E", "Strong"), + ("H", "F", "Strong"), + ] + G = nx.DiGraph() + for node in nodes: + attributes = nodes[node] + G.add_node(node, **attributes) + + for source, target, type in edges: + G.add_edge(source, target, type=type) + + return G + + def build_summary_graph(self): + nodes = { + "Supernode-0": {"color": "Red"}, + "Supernode-1": {"color": "Green"}, + "Supernode-2": {"color": "Blue"}, + "Supernode-3": {"color": "Yellow"}, + } + edges = [ + ("Supernode-0", "Supernode-1", [{"type": "Strong"}]), + ("Supernode-0", "Supernode-2", [{"type": "Weak"}, {"type": "Strong"}]), + ("Supernode-1", "Supernode-2", [{"type": "Strong"}]), + ("Supernode-1", "Supernode-3", [{"type": "Strong"}]), + ("Supernode-3", "Supernode-2", [{"type": "Strong"}]), + ] + G = nx.DiGraph() + for node in nodes: + attributes = nodes[node] + G.add_node(node, **attributes) + + for source, target, types in edges: + G.add_edge(source, target, types=types) + + supernodes = { + "Supernode-0": {"A", "B"}, + "Supernode-1": {"C", "D"}, + "Supernode-2": {"E", "F"}, + "Supernode-3": {"G", "H"}, + "Supernode-4": {"I", "J"}, + "Supernode-5": {"K", "L"}, + } + nx.set_node_attributes(G, supernodes, "group") + return G + + +class TestSNAPUndirectedMulti(AbstractSNAP): + def build_original_graph(self): + nodes = { + "A": {"color": "Red"}, + "B": {"color": "Red"}, + "C": {"color": "Red"}, + "D": {"color": "Blue"}, + "E": {"color": "Blue"}, + "F": {"color": "Blue"}, + "G": {"color": "Yellow"}, + "H": {"color": "Yellow"}, + "I": {"color": "Yellow"}, + } + edges = [ + ("A", "D", ["Weak", "Strong"]), + ("B", "E", ["Weak", "Strong"]), + ("D", "I", ["Strong"]), + ("E", "H", ["Strong"]), + ("F", "G", ["Weak"]), + ("I", "G", ["Weak", "Strong"]), + ("I", "H", ["Weak", "Strong"]), + ("G", "H", ["Weak", "Strong"]), + ] + G = nx.MultiGraph() + for node in nodes: + attributes = nodes[node] + G.add_node(node, **attributes) + + for source, target, types in edges: + for type in types: + G.add_edge(source, target, type=type) + + return G + + def build_summary_graph(self): + nodes = { + "Supernode-0": {"color": "Red"}, + "Supernode-1": {"color": "Blue"}, + "Supernode-2": {"color": "Yellow"}, + "Supernode-3": {"color": "Blue"}, + "Supernode-4": {"color": "Yellow"}, + "Supernode-5": {"color": "Red"}, + } + edges = [ + ("Supernode-1", "Supernode-2", [{"type": "Weak"}]), + ("Supernode-2", "Supernode-4", [{"type": "Weak"}, {"type": "Strong"}]), + ("Supernode-3", "Supernode-4", [{"type": "Strong"}]), + ("Supernode-3", "Supernode-5", [{"type": "Weak"}, {"type": "Strong"}]), + ("Supernode-4", "Supernode-4", [{"type": "Weak"}, {"type": "Strong"}]), + ] + G = nx.MultiGraph() + for node in nodes: + attributes = nodes[node] + G.add_node(node, **attributes) + + for source, target, types in edges: + for type in types: + G.add_edge(source, target, type=type) + + supernodes = { + "Supernode-0": {"A", "B"}, + "Supernode-1": {"C", "D"}, + "Supernode-2": {"E", "F"}, + "Supernode-3": {"G", "H"}, + "Supernode-4": {"I", "J"}, + "Supernode-5": {"K", "L"}, + } + nx.set_node_attributes(G, supernodes, "group") + return G + + +class TestSNAPDirectedMulti(AbstractSNAP): + def build_original_graph(self): + nodes = { + "A": {"color": "Red"}, + "B": {"color": "Red"}, + "C": {"color": "Green"}, + "D": {"color": "Green"}, + "E": {"color": "Blue"}, + "F": {"color": "Blue"}, + "G": {"color": "Yellow"}, + "H": {"color": "Yellow"}, + } + edges = [ + ("A", "C", ["Weak", "Strong"]), + ("A", "E", ["Strong"]), + ("A", "F", ["Weak"]), + ("B", "D", ["Weak", "Strong"]), + ("B", "E", ["Weak"]), + ("B", "F", ["Strong"]), + ("C", "G", ["Weak", "Strong"]), + ("C", "F", ["Strong"]), + ("D", "E", ["Strong"]), + ("D", "H", ["Weak", "Strong"]), + ("G", "E", ["Strong"]), + ("H", "F", ["Strong"]), + ] + G = nx.MultiDiGraph() + for node in nodes: + attributes = nodes[node] + G.add_node(node, **attributes) + + for source, target, types in edges: + for type in types: + G.add_edge(source, target, type=type) + + return G + + def build_summary_graph(self): + nodes = { + "Supernode-0": {"color": "Red"}, + "Supernode-1": {"color": "Blue"}, + "Supernode-2": {"color": "Yellow"}, + "Supernode-3": {"color": "Blue"}, + } + edges = [ + ("Supernode-0", "Supernode-1", ["Weak", "Strong"]), + ("Supernode-0", "Supernode-2", ["Weak", "Strong"]), + ("Supernode-1", "Supernode-2", ["Strong"]), + ("Supernode-1", "Supernode-3", ["Weak", "Strong"]), + ("Supernode-3", "Supernode-2", ["Strong"]), + ] + G = nx.MultiDiGraph() + for node in nodes: + attributes = nodes[node] + G.add_node(node, **attributes) + + for source, target, types in edges: + for type in types: + G.add_edge(source, target, type=type) + + supernodes = { + "Supernode-0": {"A", "B"}, + "Supernode-1": {"C", "D"}, + "Supernode-2": {"E", "F"}, + "Supernode-3": {"G", "H"}, + } + nx.set_node_attributes(G, supernodes, "group") + return G diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_swap.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_swap.py new file mode 100644 index 0000000000000000000000000000000000000000..e765bd5e11496841072990aa792b90ca8772b4d3 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_swap.py @@ -0,0 +1,179 @@ +import pytest + +import networkx as nx + +cycle = nx.cycle_graph(5, create_using=nx.DiGraph) +tree = nx.DiGraph() +tree.add_edges_from(nx.random_labeled_tree(10, seed=42).edges) +path = nx.path_graph(5, create_using=nx.DiGraph) +binomial = nx.binomial_tree(3, create_using=nx.DiGraph) +HH = nx.directed_havel_hakimi_graph([1, 2, 1, 2, 2, 2], [3, 1, 0, 1, 2, 3]) +balanced_tree = nx.balanced_tree(2, 3, create_using=nx.DiGraph) + + +@pytest.mark.parametrize("G", [path, binomial, HH, cycle, tree, balanced_tree]) +def test_directed_edge_swap(G): + in_degree = set(G.in_degree) + out_degree = set(G.out_degree) + edges = set(G.edges) + nx.directed_edge_swap(G, nswap=1, max_tries=100, seed=1) + assert in_degree == set(G.in_degree) + assert out_degree == set(G.out_degree) + assert edges != set(G.edges) + assert 3 == sum(e not in edges for e in G.edges) + + +def test_directed_edge_swap_undo_previous_swap(): + G = nx.DiGraph(nx.path_graph(4).edges) # only 1 swap possible + edges = set(G.edges) + nx.directed_edge_swap(G, nswap=2, max_tries=100) + assert edges == set(G.edges) + + nx.directed_edge_swap(G, nswap=1, max_tries=100, seed=1) + assert {(0, 2), (1, 3), (2, 1)} == set(G.edges) + nx.directed_edge_swap(G, nswap=1, max_tries=100, seed=1) + assert edges == set(G.edges) + + +def test_edge_cases_directed_edge_swap(): + # Tests cases when swaps are impossible, either too few edges exist, or self loops/cycles are unavoidable + # TODO: Rewrite function to explicitly check for impossible swaps and raise error + e = ( + "Maximum number of swap attempts \\(11\\) exceeded " + "before desired swaps achieved \\(\\d\\)." + ) + graph = nx.DiGraph([(0, 0), (0, 1), (1, 0), (2, 3), (3, 2)]) + with pytest.raises(nx.NetworkXAlgorithmError, match=e): + nx.directed_edge_swap(graph, nswap=1, max_tries=10, seed=1) + + +def test_double_edge_swap(): + graph = nx.barabasi_albert_graph(200, 1) + degrees = sorted(d for n, d in graph.degree()) + G = nx.double_edge_swap(graph, 40) + assert degrees == sorted(d for n, d in graph.degree()) + + +def test_double_edge_swap_seed(): + graph = nx.barabasi_albert_graph(200, 1) + degrees = sorted(d for n, d in graph.degree()) + G = nx.double_edge_swap(graph, 40, seed=1) + assert degrees == sorted(d for n, d in graph.degree()) + + +def test_connected_double_edge_swap(): + graph = nx.barabasi_albert_graph(200, 1) + degrees = sorted(d for n, d in graph.degree()) + G = nx.connected_double_edge_swap(graph, 40, seed=1) + assert nx.is_connected(graph) + assert degrees == sorted(d for n, d in graph.degree()) + + +def test_connected_double_edge_swap_low_window_threshold(): + graph = nx.barabasi_albert_graph(200, 1) + degrees = sorted(d for n, d in graph.degree()) + G = nx.connected_double_edge_swap(graph, 40, _window_threshold=0, seed=1) + assert nx.is_connected(graph) + assert degrees == sorted(d for n, d in graph.degree()) + + +def test_connected_double_edge_swap_star(): + # Testing ui==xi in connected_double_edge_swap + graph = nx.star_graph(40) + degrees = sorted(d for n, d in graph.degree()) + G = nx.connected_double_edge_swap(graph, 1, seed=4) + assert nx.is_connected(graph) + assert degrees == sorted(d for n, d in graph.degree()) + + +def test_connected_double_edge_swap_star_low_window_threshold(): + # Testing ui==xi in connected_double_edge_swap with low window threshold + graph = nx.star_graph(40) + degrees = sorted(d for n, d in graph.degree()) + G = nx.connected_double_edge_swap(graph, 1, _window_threshold=0, seed=4) + assert nx.is_connected(graph) + assert degrees == sorted(d for n, d in graph.degree()) + + +def test_directed_edge_swap_small(): + with pytest.raises(nx.NetworkXError): + G = nx.directed_edge_swap(nx.path_graph(3, create_using=nx.DiGraph)) + + +def test_directed_edge_swap_tries(): + with pytest.raises(nx.NetworkXError): + G = nx.directed_edge_swap( + nx.path_graph(3, create_using=nx.DiGraph), nswap=1, max_tries=0 + ) + + +def test_directed_exception_undirected(): + graph = nx.Graph([(0, 1), (2, 3)]) + with pytest.raises(nx.NetworkXNotImplemented): + G = nx.directed_edge_swap(graph) + + +def test_directed_edge_max_tries(): + with pytest.raises(nx.NetworkXAlgorithmError): + G = nx.directed_edge_swap( + nx.complete_graph(4, nx.DiGraph()), nswap=1, max_tries=5 + ) + + +def test_double_edge_swap_small(): + with pytest.raises(nx.NetworkXError): + G = nx.double_edge_swap(nx.path_graph(3)) + + +def test_double_edge_swap_tries(): + with pytest.raises(nx.NetworkXError): + G = nx.double_edge_swap(nx.path_graph(10), nswap=1, max_tries=0) + + +def test_double_edge_directed(): + graph = nx.DiGraph([(0, 1), (2, 3)]) + with pytest.raises(nx.NetworkXError, match="not defined for directed graphs."): + G = nx.double_edge_swap(graph) + + +def test_double_edge_max_tries(): + with pytest.raises(nx.NetworkXAlgorithmError): + G = nx.double_edge_swap(nx.complete_graph(4), nswap=1, max_tries=5) + + +def test_connected_double_edge_swap_small(): + with pytest.raises(nx.NetworkXError): + G = nx.connected_double_edge_swap(nx.path_graph(3)) + + +def test_connected_double_edge_swap_not_connected(): + with pytest.raises(nx.NetworkXError): + G = nx.path_graph(3) + nx.add_path(G, [10, 11, 12]) + G = nx.connected_double_edge_swap(G) + + +def test_degree_seq_c4(): + G = nx.cycle_graph(4) + degrees = sorted(d for n, d in G.degree()) + G = nx.double_edge_swap(G, 1, 100) + assert degrees == sorted(d for n, d in G.degree()) + + +def test_fewer_than_4_nodes(): + G = nx.DiGraph() + G.add_nodes_from([0, 1, 2]) + with pytest.raises(nx.NetworkXError, match=".*fewer than four nodes."): + nx.directed_edge_swap(G) + + +def test_less_than_3_edges(): + G = nx.DiGraph([(0, 1), (1, 2)]) + G.add_nodes_from([3, 4]) + with pytest.raises(nx.NetworkXError, match=".*fewer than 3 edges"): + nx.directed_edge_swap(G) + + G = nx.Graph() + G.add_nodes_from([0, 1, 2, 3]) + with pytest.raises(nx.NetworkXError, match=".*fewer than 2 edges"): + nx.double_edge_swap(G) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_threshold.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_threshold.py new file mode 100644 index 0000000000000000000000000000000000000000..d8806fd61df539d97e814e2a5cb92bc33dc71559 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_threshold.py @@ -0,0 +1,270 @@ +""" +Threshold Graphs +================ +""" + +import pytest + +import networkx as nx +import networkx.algorithms.threshold as nxt + +cnlti = nx.convert_node_labels_to_integers + + +def test_threshold_graph_invalid_creation_sequence(): + bad_creation_sequence = [2.0, 2, 1, 0] # floats are not allowed + with pytest.raises(ValueError, match="not a valid creation sequence"): + nxt.threshold_graph(bad_creation_sequence) + + +class TestGeneratorThreshold: + def test_threshold_sequence_graph_test(self): + G = nx.star_graph(10) + assert nxt.is_threshold_graph(G) + assert nxt.is_threshold_sequence([d for n, d in G.degree()]) + + G = nx.complete_graph(10) + assert nxt.is_threshold_graph(G) + assert nxt.is_threshold_sequence([d for n, d in G.degree()]) + + deg = [3, 2, 2, 1, 1, 1] + assert not nxt.is_threshold_sequence(deg) + + deg = [3, 2, 2, 1] + assert nxt.is_threshold_sequence(deg) + + G = nx.generators.havel_hakimi_graph(deg) + assert nxt.is_threshold_graph(G) + + def test_creation_sequences(self): + deg = [3, 2, 2, 1] + G = nx.generators.havel_hakimi_graph(deg) + + with pytest.raises(ValueError): + nxt.creation_sequence(deg, with_labels=True, compact=True) + + cs0 = nxt.creation_sequence(deg) + H0 = nxt.threshold_graph(cs0) + assert "".join(cs0) == "ddid" + + cs1 = nxt.creation_sequence(deg, with_labels=True) + H1 = nxt.threshold_graph(cs1) + assert cs1 == [(1, "d"), (2, "d"), (3, "i"), (0, "d")] + + cs2 = nxt.creation_sequence(deg, compact=True) + H2 = nxt.threshold_graph(cs2) + assert cs2 == [2, 1, 1] + assert "".join(nxt.uncompact(cs2)) == "ddid" + assert nx.could_be_isomorphic(H0, G) + assert nx.could_be_isomorphic(H0, H1) + assert nx.could_be_isomorphic(H0, H2) + + def test_make_compact(self): + assert nxt.make_compact(["d", "d", "d", "i", "d", "d"]) == [3, 1, 2] + assert nxt.make_compact([3, 1, 2]) == [3, 1, 2] + pytest.raises(TypeError, nxt.make_compact, [3.0, 1.0, 2.0]) + + def test_uncompact(self): + assert nxt.uncompact([3, 1, 2]) == ["d", "d", "d", "i", "d", "d"] + assert nxt.uncompact(["d", "d", "i", "d"]) == ["d", "d", "i", "d"] + assert nxt.uncompact( + nxt.uncompact([(1, "d"), (2, "d"), (3, "i"), (0, "d")]) + ) == nxt.uncompact([(1, "d"), (2, "d"), (3, "i"), (0, "d")]) + pytest.raises(TypeError, nxt.uncompact, [3.0, 1.0, 2.0]) + + def test_creation_sequence_to_weights(self): + assert nxt.creation_sequence_to_weights([3, 1, 2]) == [ + 0.5, + 0.5, + 0.5, + 0.25, + 0.75, + 0.75, + ] + pytest.raises(TypeError, nxt.creation_sequence_to_weights, [3.0, 1.0, 2.0]) + + def test_weights_to_creation_sequence(self): + deg = [3, 2, 2, 1] + with pytest.raises(ValueError): + nxt.weights_to_creation_sequence(deg, with_labels=True, compact=True) + assert nxt.weights_to_creation_sequence(deg, with_labels=True) == [ + (3, "d"), + (1, "d"), + (2, "d"), + (0, "d"), + ] + assert nxt.weights_to_creation_sequence(deg, compact=True) == [4] + + def test_find_alternating_4_cycle(self): + G = nx.Graph() + G.add_edge(1, 2) + assert not nxt.find_alternating_4_cycle(G) + + def test_shortest_path(self): + deg = [3, 2, 2, 1] + G = nx.generators.havel_hakimi_graph(deg) + cs1 = nxt.creation_sequence(deg, with_labels=True) + for n, m in [(3, 0), (0, 3), (0, 2), (0, 1), (1, 3), (3, 1), (1, 2), (2, 3)]: + assert nxt.shortest_path(cs1, n, m) == nx.shortest_path(G, n, m) + + spl = nxt.shortest_path_length(cs1, 3) + spl2 = nxt.shortest_path_length([t for v, t in cs1], 2) + assert spl == spl2 + + spld = {} + for j, pl in enumerate(spl): + n = cs1[j][0] + spld[n] = pl + assert spld == nx.single_source_shortest_path_length(G, 3) + + assert nxt.shortest_path(["d", "d", "d", "i", "d", "d"], 1, 2) == [1, 2] + assert nxt.shortest_path([3, 1, 2], 1, 2) == [1, 2] + pytest.raises(TypeError, nxt.shortest_path, [3.0, 1.0, 2.0], 1, 2) + pytest.raises(ValueError, nxt.shortest_path, [3, 1, 2], "a", 2) + pytest.raises(ValueError, nxt.shortest_path, [3, 1, 2], 1, "b") + assert nxt.shortest_path([3, 1, 2], 1, 1) == [1] + + def test_shortest_path_length(self): + assert nxt.shortest_path_length([3, 1, 2], 1) == [1, 0, 1, 2, 1, 1] + assert nxt.shortest_path_length(["d", "d", "d", "i", "d", "d"], 1) == [ + 1, + 0, + 1, + 2, + 1, + 1, + ] + assert nxt.shortest_path_length(("d", "d", "d", "i", "d", "d"), 1) == [ + 1, + 0, + 1, + 2, + 1, + 1, + ] + pytest.raises(TypeError, nxt.shortest_path, [3.0, 1.0, 2.0], 1) + + def test_random_threshold_sequence(self): + assert len(nxt.random_threshold_sequence(10, 0.5)) == 10 + assert nxt.random_threshold_sequence(10, 0.5, seed=42) == [ + "d", + "i", + "d", + "d", + "d", + "i", + "i", + "i", + "d", + "d", + ] + pytest.raises(ValueError, nxt.random_threshold_sequence, 10, 1.5) + + def test_right_d_threshold_sequence(self): + assert nxt.right_d_threshold_sequence(3, 2) == ["d", "i", "d"] + pytest.raises(ValueError, nxt.right_d_threshold_sequence, 2, 3) + + def test_left_d_threshold_sequence(self): + assert nxt.left_d_threshold_sequence(3, 2) == ["d", "i", "d"] + pytest.raises(ValueError, nxt.left_d_threshold_sequence, 2, 3) + + def test_weights_thresholds(self): + wseq = [3, 4, 3, 3, 5, 6, 5, 4, 5, 6] + cs = nxt.weights_to_creation_sequence(wseq, threshold=10) + wseq = nxt.creation_sequence_to_weights(cs) + cs2 = nxt.weights_to_creation_sequence(wseq) + assert cs == cs2 + + wseq = nxt.creation_sequence_to_weights(nxt.uncompact([3, 1, 2, 3, 3, 2, 3])) + assert wseq == [ + s * 0.125 for s in [4, 4, 4, 3, 5, 5, 2, 2, 2, 6, 6, 6, 1, 1, 7, 7, 7] + ] + + wseq = nxt.creation_sequence_to_weights([3, 1, 2, 3, 3, 2, 3]) + assert wseq == [ + s * 0.125 for s in [4, 4, 4, 3, 5, 5, 2, 2, 2, 6, 6, 6, 1, 1, 7, 7, 7] + ] + + wseq = nxt.creation_sequence_to_weights(list(enumerate("ddidiiidididi"))) + assert wseq == [s * 0.1 for s in [5, 5, 4, 6, 3, 3, 3, 7, 2, 8, 1, 9, 0]] + + wseq = nxt.creation_sequence_to_weights("ddidiiidididi") + assert wseq == [s * 0.1 for s in [5, 5, 4, 6, 3, 3, 3, 7, 2, 8, 1, 9, 0]] + + wseq = nxt.creation_sequence_to_weights("ddidiiidididid") + ws = [s / 12 for s in [6, 6, 5, 7, 4, 4, 4, 8, 3, 9, 2, 10, 1, 11]] + assert sum(abs(c - d) for c, d in zip(wseq, ws)) < 1e-14 + + def test_finding_routines(self): + G = nx.Graph({1: [2], 2: [3], 3: [4], 4: [5], 5: [6]}) + G.add_edge(2, 4) + G.add_edge(2, 5) + G.add_edge(2, 7) + G.add_edge(3, 6) + G.add_edge(4, 6) + + # Alternating 4 cycle + assert nxt.find_alternating_4_cycle(G) == [1, 2, 3, 6] + + # Threshold graph + TG = nxt.find_threshold_graph(G) + assert nxt.is_threshold_graph(TG) + assert sorted(TG.nodes()) == [1, 2, 3, 4, 5, 7] + + cs = nxt.creation_sequence(dict(TG.degree()), with_labels=True) + assert nxt.find_creation_sequence(G) == cs + + def test_fast_versions_properties_threshold_graphs(self): + cs = "ddiiddid" + G = nxt.threshold_graph(cs) + assert nxt.density("ddiiddid") == nx.density(G) + assert sorted(nxt.degree_sequence(cs)) == sorted(d for n, d in G.degree()) + + ts = nxt.triangle_sequence(cs) + assert ts == list(nx.triangles(G).values()) + assert sum(ts) // 3 == nxt.triangles(cs) + + c1 = nxt.cluster_sequence(cs) + c2 = list(nx.clustering(G).values()) + assert sum(abs(c - d) for c, d in zip(c1, c2)) == pytest.approx(0, abs=1e-7) + + b1 = nx.betweenness_centrality(G).values() + b2 = nxt.betweenness_sequence(cs) + assert sum(abs(c - d) for c, d in zip(b1, b2)) < 1e-7 + + assert nxt.eigenvalues(cs) == [0, 1, 3, 3, 5, 7, 7, 8] + + # Degree Correlation + assert abs(nxt.degree_correlation(cs) + 0.593038821954) < 1e-12 + assert nxt.degree_correlation("diiiddi") == -0.8 + assert nxt.degree_correlation("did") == -1.0 + assert nxt.degree_correlation("ddd") == 1.0 + assert nxt.eigenvalues("dddiii") == [0, 0, 0, 0, 3, 3] + assert nxt.eigenvalues("dddiiid") == [0, 1, 1, 1, 4, 4, 7] + + def test_tg_creation_routines(self): + s = nxt.left_d_threshold_sequence(5, 7) + s = nxt.right_d_threshold_sequence(5, 7) + + def test_eigenvectors(self): + np = pytest.importorskip("numpy") + eigenval = np.linalg.eigvals + pytest.importorskip("scipy") + + cs = "ddiiddid" + G = nxt.threshold_graph(cs) + (tgeval, tgevec) = nxt.eigenvectors(cs) + np.testing.assert_allclose([np.dot(lv, lv) for lv in tgevec], 1.0, rtol=1e-9) + lapl = nx.laplacian_matrix(G) + + def test_create_using(self): + cs = "ddiiddid" + G = nxt.threshold_graph(cs) + pytest.raises( + nx.exception.NetworkXError, + nxt.threshold_graph, + cs, + create_using=nx.DiGraph(), + ) + MG = nxt.threshold_graph(cs, create_using=nx.MultiGraph()) + assert sorted(MG.edges()) == sorted(G.edges()) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_time_dependent.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_time_dependent.py new file mode 100644 index 0000000000000000000000000000000000000000..1e256f4bc69389464cfa164f209bc2db713b79ee --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_time_dependent.py @@ -0,0 +1,431 @@ +"""Unit testing for time dependent algorithms.""" + +from datetime import datetime, timedelta + +import pytest + +import networkx as nx + +_delta = timedelta(days=5 * 365) + + +class TestCdIndex: + """Unit testing for the cd index function.""" + + def test_common_graph(self): + G = nx.DiGraph() + G.add_nodes_from([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) + G.add_edge(4, 2) + G.add_edge(4, 0) + G.add_edge(4, 1) + G.add_edge(4, 3) + G.add_edge(5, 2) + G.add_edge(6, 2) + G.add_edge(6, 4) + G.add_edge(7, 4) + G.add_edge(8, 4) + G.add_edge(9, 4) + G.add_edge(9, 1) + G.add_edge(9, 3) + G.add_edge(10, 4) + + node_attrs = { + 0: {"time": datetime(1992, 1, 1)}, + 1: {"time": datetime(1992, 1, 1)}, + 2: {"time": datetime(1993, 1, 1)}, + 3: {"time": datetime(1993, 1, 1)}, + 4: {"time": datetime(1995, 1, 1)}, + 5: {"time": datetime(1997, 1, 1)}, + 6: {"time": datetime(1998, 1, 1)}, + 7: {"time": datetime(1999, 1, 1)}, + 8: {"time": datetime(1999, 1, 1)}, + 9: {"time": datetime(1998, 1, 1)}, + 10: {"time": datetime(1997, 4, 1)}, + } + + nx.set_node_attributes(G, node_attrs) + + assert nx.cd_index(G, 4, time_delta=_delta) == 0.17 + + def test_common_graph_with_given_attributes(self): + G = nx.DiGraph() + G.add_nodes_from([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) + G.add_edge(4, 2) + G.add_edge(4, 0) + G.add_edge(4, 1) + G.add_edge(4, 3) + G.add_edge(5, 2) + G.add_edge(6, 2) + G.add_edge(6, 4) + G.add_edge(7, 4) + G.add_edge(8, 4) + G.add_edge(9, 4) + G.add_edge(9, 1) + G.add_edge(9, 3) + G.add_edge(10, 4) + + node_attrs = { + 0: {"date": datetime(1992, 1, 1)}, + 1: {"date": datetime(1992, 1, 1)}, + 2: {"date": datetime(1993, 1, 1)}, + 3: {"date": datetime(1993, 1, 1)}, + 4: {"date": datetime(1995, 1, 1)}, + 5: {"date": datetime(1997, 1, 1)}, + 6: {"date": datetime(1998, 1, 1)}, + 7: {"date": datetime(1999, 1, 1)}, + 8: {"date": datetime(1999, 1, 1)}, + 9: {"date": datetime(1998, 1, 1)}, + 10: {"date": datetime(1997, 4, 1)}, + } + + nx.set_node_attributes(G, node_attrs) + + assert nx.cd_index(G, 4, time_delta=_delta, time="date") == 0.17 + + def test_common_graph_with_int_attributes(self): + G = nx.DiGraph() + G.add_nodes_from([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) + G.add_edge(4, 2) + G.add_edge(4, 0) + G.add_edge(4, 1) + G.add_edge(4, 3) + G.add_edge(5, 2) + G.add_edge(6, 2) + G.add_edge(6, 4) + G.add_edge(7, 4) + G.add_edge(8, 4) + G.add_edge(9, 4) + G.add_edge(9, 1) + G.add_edge(9, 3) + G.add_edge(10, 4) + + node_attrs = { + 0: {"time": 20}, + 1: {"time": 20}, + 2: {"time": 30}, + 3: {"time": 30}, + 4: {"time": 50}, + 5: {"time": 70}, + 6: {"time": 80}, + 7: {"time": 90}, + 8: {"time": 90}, + 9: {"time": 80}, + 10: {"time": 74}, + } + + nx.set_node_attributes(G, node_attrs) + + assert nx.cd_index(G, 4, time_delta=50) == 0.17 + + def test_common_graph_with_float_attributes(self): + G = nx.DiGraph() + G.add_nodes_from([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) + G.add_edge(4, 2) + G.add_edge(4, 0) + G.add_edge(4, 1) + G.add_edge(4, 3) + G.add_edge(5, 2) + G.add_edge(6, 2) + G.add_edge(6, 4) + G.add_edge(7, 4) + G.add_edge(8, 4) + G.add_edge(9, 4) + G.add_edge(9, 1) + G.add_edge(9, 3) + G.add_edge(10, 4) + + node_attrs = { + 0: {"time": 20.2}, + 1: {"time": 20.2}, + 2: {"time": 30.7}, + 3: {"time": 30.7}, + 4: {"time": 50.9}, + 5: {"time": 70.1}, + 6: {"time": 80.6}, + 7: {"time": 90.7}, + 8: {"time": 90.7}, + 9: {"time": 80.6}, + 10: {"time": 74.2}, + } + + nx.set_node_attributes(G, node_attrs) + + assert nx.cd_index(G, 4, time_delta=50) == 0.17 + + def test_common_graph_with_weights(self): + G = nx.DiGraph() + G.add_nodes_from([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) + G.add_edge(4, 2) + G.add_edge(4, 0) + G.add_edge(4, 1) + G.add_edge(4, 3) + G.add_edge(5, 2) + G.add_edge(6, 2) + G.add_edge(6, 4) + G.add_edge(7, 4) + G.add_edge(8, 4) + G.add_edge(9, 4) + G.add_edge(9, 1) + G.add_edge(9, 3) + G.add_edge(10, 4) + + node_attrs = { + 0: {"time": datetime(1992, 1, 1)}, + 1: {"time": datetime(1992, 1, 1)}, + 2: {"time": datetime(1993, 1, 1)}, + 3: {"time": datetime(1993, 1, 1)}, + 4: {"time": datetime(1995, 1, 1)}, + 5: {"time": datetime(1997, 1, 1)}, + 6: {"time": datetime(1998, 1, 1), "weight": 5}, + 7: {"time": datetime(1999, 1, 1), "weight": 2}, + 8: {"time": datetime(1999, 1, 1), "weight": 6}, + 9: {"time": datetime(1998, 1, 1), "weight": 3}, + 10: {"time": datetime(1997, 4, 1), "weight": 10}, + } + + nx.set_node_attributes(G, node_attrs) + assert nx.cd_index(G, 4, time_delta=_delta, weight="weight") == 0.04 + + def test_node_with_no_predecessors(self): + G = nx.DiGraph() + G.add_nodes_from([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) + G.add_edge(4, 2) + G.add_edge(4, 0) + G.add_edge(4, 3) + G.add_edge(5, 2) + G.add_edge(6, 2) + G.add_edge(6, 4) + G.add_edge(7, 4) + G.add_edge(8, 4) + G.add_edge(9, 4) + G.add_edge(9, 1) + G.add_edge(9, 3) + G.add_edge(10, 4) + + node_attrs = { + 0: {"time": datetime(1992, 1, 1)}, + 1: {"time": datetime(1992, 1, 1)}, + 2: {"time": datetime(1993, 1, 1)}, + 3: {"time": datetime(1993, 1, 1)}, + 4: {"time": datetime(1995, 1, 1)}, + 5: {"time": datetime(2005, 1, 1)}, + 6: {"time": datetime(2010, 1, 1)}, + 7: {"time": datetime(2001, 1, 1)}, + 8: {"time": datetime(2020, 1, 1)}, + 9: {"time": datetime(2017, 1, 1)}, + 10: {"time": datetime(2004, 4, 1)}, + } + + nx.set_node_attributes(G, node_attrs) + assert nx.cd_index(G, 4, time_delta=_delta) == 0.0 + + def test_node_with_no_successors(self): + G = nx.DiGraph() + G.add_nodes_from([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) + G.add_edge(8, 2) + G.add_edge(6, 0) + G.add_edge(6, 3) + G.add_edge(5, 2) + G.add_edge(6, 2) + G.add_edge(6, 4) + G.add_edge(7, 4) + G.add_edge(8, 4) + G.add_edge(9, 4) + G.add_edge(9, 1) + G.add_edge(9, 3) + G.add_edge(10, 4) + + node_attrs = { + 0: {"time": datetime(1992, 1, 1)}, + 1: {"time": datetime(1992, 1, 1)}, + 2: {"time": datetime(1993, 1, 1)}, + 3: {"time": datetime(1993, 1, 1)}, + 4: {"time": datetime(1995, 1, 1)}, + 5: {"time": datetime(1997, 1, 1)}, + 6: {"time": datetime(1998, 1, 1)}, + 7: {"time": datetime(1999, 1, 1)}, + 8: {"time": datetime(1999, 1, 1)}, + 9: {"time": datetime(1998, 1, 1)}, + 10: {"time": datetime(1997, 4, 1)}, + } + + nx.set_node_attributes(G, node_attrs) + assert nx.cd_index(G, 4, time_delta=_delta) == 1.0 + + def test_n_equals_zero(self): + G = nx.DiGraph() + G.add_nodes_from([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) + G.add_edge(4, 2) + G.add_edge(4, 0) + G.add_edge(4, 3) + G.add_edge(6, 4) + G.add_edge(7, 4) + G.add_edge(8, 4) + G.add_edge(9, 4) + G.add_edge(9, 1) + G.add_edge(10, 4) + + node_attrs = { + 0: {"time": datetime(1992, 1, 1)}, + 1: {"time": datetime(1992, 1, 1)}, + 2: {"time": datetime(1993, 1, 1)}, + 3: {"time": datetime(1993, 1, 1)}, + 4: {"time": datetime(1995, 1, 1)}, + 5: {"time": datetime(2005, 1, 1)}, + 6: {"time": datetime(2010, 1, 1)}, + 7: {"time": datetime(2001, 1, 1)}, + 8: {"time": datetime(2020, 1, 1)}, + 9: {"time": datetime(2017, 1, 1)}, + 10: {"time": datetime(2004, 4, 1)}, + } + + nx.set_node_attributes(G, node_attrs) + + with pytest.raises( + nx.NetworkXError, match="The cd index cannot be defined." + ) as ve: + nx.cd_index(G, 4, time_delta=_delta) + + def test_time_timedelta_compatibility(self): + G = nx.DiGraph() + G.add_nodes_from([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) + G.add_edge(4, 2) + G.add_edge(4, 0) + G.add_edge(4, 3) + G.add_edge(6, 4) + G.add_edge(7, 4) + G.add_edge(8, 4) + G.add_edge(9, 4) + G.add_edge(9, 1) + G.add_edge(10, 4) + + node_attrs = { + 0: {"time": 20.2}, + 1: {"time": 20.2}, + 2: {"time": 30.7}, + 3: {"time": 30.7}, + 4: {"time": 50.9}, + 5: {"time": 70.1}, + 6: {"time": 80.6}, + 7: {"time": 90.7}, + 8: {"time": 90.7}, + 9: {"time": 80.6}, + 10: {"time": 74.2}, + } + + nx.set_node_attributes(G, node_attrs) + + with pytest.raises( + nx.NetworkXError, + match="Addition and comparison are not supported between", + ) as ve: + nx.cd_index(G, 4, time_delta=_delta) + + def test_node_with_no_time(self): + G = nx.DiGraph() + G.add_nodes_from([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) + G.add_edge(8, 2) + G.add_edge(6, 0) + G.add_edge(6, 3) + G.add_edge(5, 2) + G.add_edge(6, 2) + G.add_edge(6, 4) + G.add_edge(7, 4) + G.add_edge(8, 4) + G.add_edge(9, 4) + G.add_edge(9, 1) + G.add_edge(9, 3) + G.add_edge(10, 4) + + node_attrs = { + 0: {"time": datetime(1992, 1, 1)}, + 1: {"time": datetime(1992, 1, 1)}, + 2: {"time": datetime(1993, 1, 1)}, + 3: {"time": datetime(1993, 1, 1)}, + 4: {"time": datetime(1995, 1, 1)}, + 6: {"time": datetime(1998, 1, 1)}, + 7: {"time": datetime(1999, 1, 1)}, + 8: {"time": datetime(1999, 1, 1)}, + 9: {"time": datetime(1998, 1, 1)}, + 10: {"time": datetime(1997, 4, 1)}, + } + + nx.set_node_attributes(G, node_attrs) + + with pytest.raises( + nx.NetworkXError, match="Not all nodes have a 'time' attribute." + ) as ve: + nx.cd_index(G, 4, time_delta=_delta) + + def test_maximally_consolidating(self): + G = nx.DiGraph() + G.add_nodes_from([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) + G.add_edge(5, 1) + G.add_edge(5, 2) + G.add_edge(5, 3) + G.add_edge(5, 4) + G.add_edge(6, 1) + G.add_edge(6, 5) + G.add_edge(7, 1) + G.add_edge(7, 5) + G.add_edge(8, 2) + G.add_edge(8, 5) + G.add_edge(9, 5) + G.add_edge(9, 3) + G.add_edge(10, 5) + G.add_edge(10, 3) + G.add_edge(10, 4) + G.add_edge(11, 5) + G.add_edge(11, 4) + + node_attrs = { + 0: {"time": datetime(1992, 1, 1)}, + 1: {"time": datetime(1992, 1, 1)}, + 2: {"time": datetime(1993, 1, 1)}, + 3: {"time": datetime(1993, 1, 1)}, + 4: {"time": datetime(1995, 1, 1)}, + 5: {"time": datetime(1997, 1, 1)}, + 6: {"time": datetime(1998, 1, 1)}, + 7: {"time": datetime(1999, 1, 1)}, + 8: {"time": datetime(1999, 1, 1)}, + 9: {"time": datetime(1998, 1, 1)}, + 10: {"time": datetime(1997, 4, 1)}, + 11: {"time": datetime(1998, 5, 1)}, + } + + nx.set_node_attributes(G, node_attrs) + + assert nx.cd_index(G, 5, time_delta=_delta) == -1 + + def test_maximally_destabilizing(self): + G = nx.DiGraph() + G.add_nodes_from([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) + G.add_edge(5, 1) + G.add_edge(5, 2) + G.add_edge(5, 3) + G.add_edge(5, 4) + G.add_edge(6, 5) + G.add_edge(7, 5) + G.add_edge(8, 5) + G.add_edge(9, 5) + G.add_edge(10, 5) + G.add_edge(11, 5) + + node_attrs = { + 0: {"time": datetime(1992, 1, 1)}, + 1: {"time": datetime(1992, 1, 1)}, + 2: {"time": datetime(1993, 1, 1)}, + 3: {"time": datetime(1993, 1, 1)}, + 4: {"time": datetime(1995, 1, 1)}, + 5: {"time": datetime(1997, 1, 1)}, + 6: {"time": datetime(1998, 1, 1)}, + 7: {"time": datetime(1999, 1, 1)}, + 8: {"time": datetime(1999, 1, 1)}, + 9: {"time": datetime(1998, 1, 1)}, + 10: {"time": datetime(1997, 4, 1)}, + 11: {"time": datetime(1998, 5, 1)}, + } + + nx.set_node_attributes(G, node_attrs) + + assert nx.cd_index(G, 5, time_delta=_delta) == 1 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_tournament.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_tournament.py new file mode 100644 index 0000000000000000000000000000000000000000..34d9b22a65a3b46b91eb1f0b6bbb9780373bbdc9 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_tournament.py @@ -0,0 +1,161 @@ +"""Unit tests for the :mod:`networkx.algorithms.tournament` module.""" + +from itertools import combinations + +import pytest + +from networkx import DiGraph +from networkx.algorithms.tournament import ( + hamiltonian_path, + index_satisfying, + is_reachable, + is_strongly_connected, + is_tournament, + random_tournament, + score_sequence, + tournament_matrix, +) + + +def test_condition_not_satisfied(): + iter_in = [0] + assert index_satisfying(iter_in, lambda x: x > 0) == 1 + + +def test_empty_iterable(): + with pytest.raises(ValueError): + index_satisfying([], lambda x: x > 0) + + +def test_is_tournament(): + G = DiGraph() + G.add_edges_from([(0, 1), (1, 2), (2, 3), (3, 0), (1, 3), (0, 2)]) + assert is_tournament(G) + + +def test_self_loops(): + """A tournament must have no self-loops.""" + G = DiGraph() + G.add_edges_from([(0, 1), (1, 2), (2, 3), (3, 0), (1, 3), (0, 2)]) + G.add_edge(0, 0) + assert not is_tournament(G) + + +def test_missing_edges(): + """A tournament must not have any pair of nodes without at least + one edge joining the pair. + + """ + G = DiGraph() + G.add_edges_from([(0, 1), (1, 2), (2, 3), (3, 0), (1, 3)]) + assert not is_tournament(G) + + +def test_bidirectional_edges(): + """A tournament must not have any pair of nodes with greater + than one edge joining the pair. + + """ + G = DiGraph() + G.add_edges_from([(0, 1), (1, 2), (2, 3), (3, 0), (1, 3), (0, 2)]) + G.add_edge(1, 0) + assert not is_tournament(G) + + +def test_graph_is_tournament(): + for _ in range(10): + G = random_tournament(5) + assert is_tournament(G) + + +def test_graph_is_tournament_seed(): + for _ in range(10): + G = random_tournament(5, seed=1) + assert is_tournament(G) + + +def test_graph_is_tournament_one_node(): + G = random_tournament(1) + assert is_tournament(G) + + +def test_graph_is_tournament_zero_node(): + G = random_tournament(0) + assert is_tournament(G) + + +def test_hamiltonian_empty_graph(): + path = hamiltonian_path(DiGraph()) + assert len(path) == 0 + + +def test_path_is_hamiltonian(): + G = DiGraph() + G.add_edges_from([(0, 1), (1, 2), (2, 3), (3, 0), (1, 3), (0, 2)]) + path = hamiltonian_path(G) + assert len(path) == 4 + assert all(v in G[u] for u, v in zip(path, path[1:])) + + +def test_hamiltonian_cycle(): + """Tests that :func:`networkx.tournament.hamiltonian_path` + returns a Hamiltonian cycle when provided a strongly connected + tournament. + + """ + G = DiGraph() + G.add_edges_from([(0, 1), (1, 2), (2, 3), (3, 0), (1, 3), (0, 2)]) + path = hamiltonian_path(G) + assert len(path) == 4 + assert all(v in G[u] for u, v in zip(path, path[1:])) + assert path[0] in G[path[-1]] + + +def test_score_sequence_edge(): + G = DiGraph([(0, 1)]) + assert score_sequence(G) == [0, 1] + + +def test_score_sequence_triangle(): + G = DiGraph([(0, 1), (1, 2), (2, 0)]) + assert score_sequence(G) == [1, 1, 1] + + +def test_tournament_matrix(): + np = pytest.importorskip("numpy") + pytest.importorskip("scipy") + npt = np.testing + G = DiGraph([(0, 1)]) + m = tournament_matrix(G) + npt.assert_array_equal(m.todense(), np.array([[0, 1], [-1, 0]])) + + +def test_reachable_pair(): + """Tests for a reachable pair of nodes.""" + G = DiGraph([(0, 1), (1, 2), (2, 0)]) + assert is_reachable(G, 0, 2) + + +def test_same_node_is_reachable(): + """Tests that a node is always reachable from it.""" + # G is an arbitrary tournament on ten nodes. + G = DiGraph(sorted(p) for p in combinations(range(10), 2)) + assert all(is_reachable(G, v, v) for v in G) + + +def test_unreachable_pair(): + """Tests for an unreachable pair of nodes.""" + G = DiGraph([(0, 1), (0, 2), (1, 2)]) + assert not is_reachable(G, 1, 0) + + +def test_is_strongly_connected(): + """Tests for a strongly connected tournament.""" + G = DiGraph([(0, 1), (1, 2), (2, 0)]) + assert is_strongly_connected(G) + + +def test_not_strongly_connected(): + """Tests for a tournament that is not strongly connected.""" + G = DiGraph([(0, 1), (0, 2), (1, 2)]) + assert not is_strongly_connected(G) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_triads.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_triads.py new file mode 100644 index 0000000000000000000000000000000000000000..cdfaf3be2de9ce9bba69bf0d5734c4c8e3716d3f --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_triads.py @@ -0,0 +1,248 @@ +"""Tests for the :mod:`networkx.algorithms.triads` module.""" + +import itertools +from collections import defaultdict +from random import sample + +import pytest + +import networkx as nx + + +def test_triadic_census(): + """Tests the triadic_census function.""" + G = nx.DiGraph() + G.add_edges_from(["01", "02", "03", "04", "05", "12", "16", "51", "56", "65"]) + expected = { + "030T": 2, + "120C": 1, + "210": 0, + "120U": 0, + "012": 9, + "102": 3, + "021U": 0, + "111U": 0, + "003": 8, + "030C": 0, + "021D": 9, + "201": 0, + "111D": 1, + "300": 0, + "120D": 0, + "021C": 2, + } + actual = nx.triadic_census(G) + assert expected == actual + + +def test_is_triad(): + """Tests the is_triad function""" + G = nx.karate_club_graph() + G = G.to_directed() + for i in range(100): + nodes = sample(sorted(G.nodes()), 3) + G2 = G.subgraph(nodes) + assert nx.is_triad(G2) + + +def test_all_triads(): + """Tests the all_triads function.""" + G = nx.DiGraph() + G.add_edges_from(["01", "02", "03", "04", "05", "12", "16", "51", "56", "65"]) + expected = [ + f"{i},{j},{k}" + for i in range(7) + for j in range(i + 1, 7) + for k in range(j + 1, 7) + ] + expected = [G.subgraph(x.split(",")) for x in expected] + actual = list(nx.all_triads(G)) + assert all(any(nx.is_isomorphic(G1, G2) for G1 in expected) for G2 in actual) + + +def test_triad_type(): + """Tests the triad_type function.""" + # 0 edges (1 type) + G = nx.DiGraph({0: [], 1: [], 2: []}) + assert nx.triad_type(G) == "003" + # 1 edge (1 type) + G = nx.DiGraph({0: [1], 1: [], 2: []}) + assert nx.triad_type(G) == "012" + # 2 edges (4 types) + G = nx.DiGraph([(0, 1), (0, 2)]) + assert nx.triad_type(G) == "021D" + G = nx.DiGraph({0: [1], 1: [0], 2: []}) + assert nx.triad_type(G) == "102" + G = nx.DiGraph([(0, 1), (2, 1)]) + assert nx.triad_type(G) == "021U" + G = nx.DiGraph([(0, 1), (1, 2)]) + assert nx.triad_type(G) == "021C" + # 3 edges (4 types) + G = nx.DiGraph([(0, 1), (1, 0), (2, 1)]) + assert nx.triad_type(G) == "111D" + G = nx.DiGraph([(0, 1), (1, 0), (1, 2)]) + assert nx.triad_type(G) == "111U" + G = nx.DiGraph([(0, 1), (1, 2), (0, 2)]) + assert nx.triad_type(G) == "030T" + G = nx.DiGraph([(0, 1), (1, 2), (2, 0)]) + assert nx.triad_type(G) == "030C" + # 4 edges (4 types) + G = nx.DiGraph([(0, 1), (1, 0), (2, 0), (0, 2)]) + assert nx.triad_type(G) == "201" + G = nx.DiGraph([(0, 1), (1, 0), (2, 0), (2, 1)]) + assert nx.triad_type(G) == "120D" + G = nx.DiGraph([(0, 1), (1, 0), (0, 2), (1, 2)]) + assert nx.triad_type(G) == "120U" + G = nx.DiGraph([(0, 1), (1, 0), (0, 2), (2, 1)]) + assert nx.triad_type(G) == "120C" + # 5 edges (1 type) + G = nx.DiGraph([(0, 1), (1, 0), (2, 1), (1, 2), (0, 2)]) + assert nx.triad_type(G) == "210" + # 6 edges (1 type) + G = nx.DiGraph([(0, 1), (1, 0), (1, 2), (2, 1), (0, 2), (2, 0)]) + assert nx.triad_type(G) == "300" + + +def test_triads_by_type(): + G = nx.DiGraph() + G.add_edges_from(["01", "02", "03", "04", "05", "12", "16", "51", "56", "65"]) + all_triads = nx.all_triads(G) + expected = defaultdict(list) + for triad in all_triads: + name = nx.triad_type(triad) + expected[name].append(triad) + actual = nx.triads_by_type(G) + assert set(actual.keys()) == set(expected.keys()) + for tri_type, actual_Gs in actual.items(): + expected_Gs = expected[tri_type] + for a in actual_Gs: + assert any(nx.is_isomorphic(a, e) for e in expected_Gs) + + +def test_triadic_census_short_path_nodelist(): + G = nx.path_graph("abc", create_using=nx.DiGraph) + expected = {"021C": 1} + for nl in ["a", "b", "c", "ab", "ac", "bc", "abc"]: + triad_census = nx.triadic_census(G, nodelist=nl) + assert expected == {typ: cnt for typ, cnt in triad_census.items() if cnt > 0} + + +def test_triadic_census_correct_nodelist_values(): + G = nx.path_graph(5, create_using=nx.DiGraph) + msg = r"nodelist includes duplicate nodes or nodes not in G" + with pytest.raises(ValueError, match=msg): + nx.triadic_census(G, [1, 2, 2, 3]) + with pytest.raises(ValueError, match=msg): + nx.triadic_census(G, [1, 2, "a", 3]) + + +def test_triadic_census_tiny_graphs(): + tc = nx.triadic_census(nx.empty_graph(0, create_using=nx.DiGraph)) + assert {} == {typ: cnt for typ, cnt in tc.items() if cnt > 0} + tc = nx.triadic_census(nx.empty_graph(1, create_using=nx.DiGraph)) + assert {} == {typ: cnt for typ, cnt in tc.items() if cnt > 0} + tc = nx.triadic_census(nx.empty_graph(2, create_using=nx.DiGraph)) + assert {} == {typ: cnt for typ, cnt in tc.items() if cnt > 0} + tc = nx.triadic_census(nx.DiGraph([(1, 2)])) + assert {} == {typ: cnt for typ, cnt in tc.items() if cnt > 0} + + +def test_triadic_census_selfloops(): + GG = nx.path_graph("abc", create_using=nx.DiGraph) + expected = {"021C": 1} + for n in GG: + G = GG.copy() + G.add_edge(n, n) + tc = nx.triadic_census(G) + assert expected == {typ: cnt for typ, cnt in tc.items() if cnt > 0} + + GG = nx.path_graph("abcde", create_using=nx.DiGraph) + tbt = nx.triads_by_type(GG) + for n in GG: + GG.add_edge(n, n) + tc = nx.triadic_census(GG) + assert tc == {tt: len(tbt[tt]) for tt in tc} + + +def test_triadic_census_four_path(): + G = nx.path_graph("abcd", create_using=nx.DiGraph) + expected = {"012": 2, "021C": 2} + triad_census = nx.triadic_census(G) + assert expected == {typ: cnt for typ, cnt in triad_census.items() if cnt > 0} + + +def test_triadic_census_four_path_nodelist(): + G = nx.path_graph("abcd", create_using=nx.DiGraph) + expected_end = {"012": 2, "021C": 1} + expected_mid = {"012": 1, "021C": 2} + a_triad_census = nx.triadic_census(G, nodelist=["a"]) + assert expected_end == {typ: cnt for typ, cnt in a_triad_census.items() if cnt > 0} + b_triad_census = nx.triadic_census(G, nodelist=["b"]) + assert expected_mid == {typ: cnt for typ, cnt in b_triad_census.items() if cnt > 0} + c_triad_census = nx.triadic_census(G, nodelist=["c"]) + assert expected_mid == {typ: cnt for typ, cnt in c_triad_census.items() if cnt > 0} + d_triad_census = nx.triadic_census(G, nodelist=["d"]) + assert expected_end == {typ: cnt for typ, cnt in d_triad_census.items() if cnt > 0} + + +def test_triadic_census_nodelist(): + """Tests the triadic_census function.""" + G = nx.DiGraph() + G.add_edges_from(["01", "02", "03", "04", "05", "12", "16", "51", "56", "65"]) + expected = { + "030T": 2, + "120C": 1, + "210": 0, + "120U": 0, + "012": 9, + "102": 3, + "021U": 0, + "111U": 0, + "003": 8, + "030C": 0, + "021D": 9, + "201": 0, + "111D": 1, + "300": 0, + "120D": 0, + "021C": 2, + } + actual = {k: 0 for k in expected} + for node in G.nodes(): + node_triad_census = nx.triadic_census(G, nodelist=[node]) + for triad_key in expected: + actual[triad_key] += node_triad_census[triad_key] + # Divide all counts by 3 + for k, v in actual.items(): + actual[k] //= 3 + assert expected == actual + + +@pytest.mark.parametrize("N", [5, 10]) +def test_triadic_census_on_random_graph(N): + G = nx.binomial_graph(N, 0.3, directed=True, seed=42) + tc1 = nx.triadic_census(G) + tbt = nx.triads_by_type(G) + tc2 = {tt: len(tbt[tt]) for tt in tc1} + assert tc1 == tc2 + + for n in G: + tc1 = nx.triadic_census(G, nodelist={n}) + tc2 = {tt: sum(1 for t in tbt.get(tt, []) if n in t) for tt in tc1} + assert tc1 == tc2 + + for ns in itertools.combinations(G, 2): + ns = set(ns) + tc1 = nx.triadic_census(G, nodelist=ns) + tc2 = { + tt: sum(1 for t in tbt.get(tt, []) if any(n in ns for n in t)) for tt in tc1 + } + assert tc1 == tc2 + + for ns in itertools.combinations(G, 3): + ns = set(ns) + tc1 = nx.triadic_census(G, nodelist=ns) + tc2 = { + tt: sum(1 for t in tbt.get(tt, []) if any(n in ns for n in t)) for tt in tc1 + } + assert tc1 == tc2 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_vitality.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_vitality.py new file mode 100644 index 0000000000000000000000000000000000000000..248206e670fa911f62177bb6727d6a7a6df1e6b9 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_vitality.py @@ -0,0 +1,41 @@ +import networkx as nx + + +class TestClosenessVitality: + def test_unweighted(self): + G = nx.cycle_graph(3) + vitality = nx.closeness_vitality(G) + assert vitality == {0: 2, 1: 2, 2: 2} + + def test_weighted(self): + G = nx.Graph() + nx.add_cycle(G, [0, 1, 2], weight=2) + vitality = nx.closeness_vitality(G, weight="weight") + assert vitality == {0: 4, 1: 4, 2: 4} + + def test_unweighted_digraph(self): + G = nx.DiGraph(nx.cycle_graph(3)) + vitality = nx.closeness_vitality(G) + assert vitality == {0: 4, 1: 4, 2: 4} + + def test_weighted_digraph(self): + G = nx.DiGraph() + nx.add_cycle(G, [0, 1, 2], weight=2) + nx.add_cycle(G, [2, 1, 0], weight=2) + vitality = nx.closeness_vitality(G, weight="weight") + assert vitality == {0: 8, 1: 8, 2: 8} + + def test_weighted_multidigraph(self): + G = nx.MultiDiGraph() + nx.add_cycle(G, [0, 1, 2], weight=2) + nx.add_cycle(G, [2, 1, 0], weight=2) + vitality = nx.closeness_vitality(G, weight="weight") + assert vitality == {0: 8, 1: 8, 2: 8} + + def test_disconnecting_graph(self): + """Tests that the closeness vitality of a node whose removal + disconnects the graph is negative infinity. + + """ + G = nx.path_graph(3) + assert nx.closeness_vitality(G, node=1) == -float("inf") diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_voronoi.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_voronoi.py new file mode 100644 index 0000000000000000000000000000000000000000..3269ae62a023ff0cf9fdc55122cb6e7c8d2ba319 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_voronoi.py @@ -0,0 +1,103 @@ +import networkx as nx +from networkx.utils import pairwise + + +class TestVoronoiCells: + """Unit tests for the Voronoi cells function.""" + + def test_isolates(self): + """Tests that a graph with isolated nodes has all isolates in + one block of the partition. + + """ + G = nx.empty_graph(5) + cells = nx.voronoi_cells(G, {0, 2, 4}) + expected = {0: {0}, 2: {2}, 4: {4}, "unreachable": {1, 3}} + assert expected == cells + + def test_undirected_unweighted(self): + G = nx.cycle_graph(6) + cells = nx.voronoi_cells(G, {0, 3}) + expected = {0: {0, 1, 5}, 3: {2, 3, 4}} + assert expected == cells + + def test_directed_unweighted(self): + # This is the singly-linked directed cycle graph on six nodes. + G = nx.DiGraph(pairwise(range(6), cyclic=True)) + cells = nx.voronoi_cells(G, {0, 3}) + expected = {0: {0, 1, 2}, 3: {3, 4, 5}} + assert expected == cells + + def test_directed_inward(self): + """Tests that reversing the graph gives the "inward" Voronoi + partition. + + """ + # This is the singly-linked reverse directed cycle graph on six nodes. + G = nx.DiGraph(pairwise(range(6), cyclic=True)) + G = G.reverse(copy=False) + cells = nx.voronoi_cells(G, {0, 3}) + expected = {0: {0, 4, 5}, 3: {1, 2, 3}} + assert expected == cells + + def test_undirected_weighted(self): + edges = [(0, 1, 10), (1, 2, 1), (2, 3, 1)] + G = nx.Graph() + G.add_weighted_edges_from(edges) + cells = nx.voronoi_cells(G, {0, 3}) + expected = {0: {0}, 3: {1, 2, 3}} + assert expected == cells + + def test_directed_weighted(self): + edges = [(0, 1, 10), (1, 2, 1), (2, 3, 1), (3, 2, 1), (2, 1, 1)] + G = nx.DiGraph() + G.add_weighted_edges_from(edges) + cells = nx.voronoi_cells(G, {0, 3}) + expected = {0: {0}, 3: {1, 2, 3}} + assert expected == cells + + def test_multigraph_unweighted(self): + """Tests that the Voronoi cells for a multigraph are the same as + for a simple graph. + + """ + edges = [(0, 1), (1, 2), (2, 3)] + G = nx.MultiGraph(2 * edges) + H = nx.Graph(G) + G_cells = nx.voronoi_cells(G, {0, 3}) + H_cells = nx.voronoi_cells(H, {0, 3}) + assert G_cells == H_cells + + def test_multidigraph_unweighted(self): + # This is the twice-singly-linked directed cycle graph on six nodes. + edges = list(pairwise(range(6), cyclic=True)) + G = nx.MultiDiGraph(2 * edges) + H = nx.DiGraph(G) + G_cells = nx.voronoi_cells(G, {0, 3}) + H_cells = nx.voronoi_cells(H, {0, 3}) + assert G_cells == H_cells + + def test_multigraph_weighted(self): + edges = [(0, 1, 10), (0, 1, 10), (1, 2, 1), (1, 2, 100), (2, 3, 1), (2, 3, 100)] + G = nx.MultiGraph() + G.add_weighted_edges_from(edges) + cells = nx.voronoi_cells(G, {0, 3}) + expected = {0: {0}, 3: {1, 2, 3}} + assert expected == cells + + def test_multidigraph_weighted(self): + edges = [ + (0, 1, 10), + (0, 1, 10), + (1, 2, 1), + (2, 3, 1), + (3, 2, 10), + (3, 2, 1), + (2, 1, 10), + (2, 1, 1), + ] + G = nx.MultiDiGraph() + G.add_weighted_edges_from(edges) + cells = nx.voronoi_cells(G, {0, 3}) + expected = {0: {0}, 3: {1, 2, 3}} + assert expected == cells diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_walks.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_walks.py new file mode 100644 index 0000000000000000000000000000000000000000..7a6b323932988e1b9513118162df62e9613ee65b --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_walks.py @@ -0,0 +1,54 @@ +"""Unit tests for the :mod:`networkx.algorithms.walks` module.""" + +import pytest + +import networkx as nx + +pytest.importorskip("numpy") +pytest.importorskip("scipy") + + +def test_directed(): + G = nx.DiGraph([(0, 1), (1, 2), (2, 0)]) + num_walks = nx.number_of_walks(G, 3) + expected = {0: {0: 1, 1: 0, 2: 0}, 1: {0: 0, 1: 1, 2: 0}, 2: {0: 0, 1: 0, 2: 1}} + assert num_walks == expected + + +def test_undirected(): + G = nx.cycle_graph(3) + num_walks = nx.number_of_walks(G, 3) + expected = {0: {0: 2, 1: 3, 2: 3}, 1: {0: 3, 1: 2, 2: 3}, 2: {0: 3, 1: 3, 2: 2}} + assert num_walks == expected + + +def test_non_integer_nodes(): + G = nx.DiGraph([("A", "B"), ("B", "C"), ("C", "A")]) + num_walks = nx.number_of_walks(G, 2) + expected = { + "A": {"A": 0, "B": 0, "C": 1}, + "B": {"A": 1, "B": 0, "C": 0}, + "C": {"A": 0, "B": 1, "C": 0}, + } + assert num_walks == expected + + +def test_zero_length(): + G = nx.cycle_graph(3) + num_walks = nx.number_of_walks(G, 0) + expected = {0: {0: 1, 1: 0, 2: 0}, 1: {0: 0, 1: 1, 2: 0}, 2: {0: 0, 1: 0, 2: 1}} + assert num_walks == expected + + +def test_negative_length_exception(): + G = nx.cycle_graph(3) + with pytest.raises(ValueError): + nx.number_of_walks(G, -1) + + +def test_hidden_weight_attr(): + G = nx.cycle_graph(3) + G.add_edge(1, 2, weight=5) + num_walks = nx.number_of_walks(G, 3) + expected = {0: {0: 2, 1: 3, 2: 3}, 1: {0: 3, 1: 2, 2: 3}, 2: {0: 3, 1: 3, 2: 2}} + assert num_walks == expected diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_wiener.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_wiener.py new file mode 100644 index 0000000000000000000000000000000000000000..2bb1f85b1d7f932a1050b43bdc1f422bc7be8aa3 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_wiener.py @@ -0,0 +1,157 @@ +import networkx as nx + + +def test_wiener_index_of_disconnected_graph(): + assert nx.wiener_index(nx.empty_graph(2)) == float("inf") + + +def test_wiener_index_of_directed_graph(): + G = nx.complete_graph(3) + H = nx.DiGraph(G) + assert (2 * nx.wiener_index(G)) == nx.wiener_index(H) + + +def test_wiener_index_of_complete_graph(): + n = 10 + G = nx.complete_graph(n) + assert nx.wiener_index(G) == (n * (n - 1) / 2) + + +def test_wiener_index_of_path_graph(): + # In P_n, there are n - 1 pairs of vertices at distance one, n - + # 2 pairs at distance two, n - 3 at distance three, ..., 1 at + # distance n - 1, so the Wiener index should be + # + # 1 * (n - 1) + 2 * (n - 2) + ... + (n - 2) * 2 + (n - 1) * 1 + # + # For example, in P_5, + # + # 1 * 4 + 2 * 3 + 3 * 2 + 4 * 1 = 2 (1 * 4 + 2 * 3) + # + # and in P_6, + # + # 1 * 5 + 2 * 4 + 3 * 3 + 4 * 2 + 5 * 1 = 2 (1 * 5 + 2 * 4) + 3 * 3 + # + # assuming n is *odd*, this gives the formula + # + # 2 \sum_{i = 1}^{(n - 1) / 2} [i * (n - i)] + # + # assuming n is *even*, this gives the formula + # + # 2 \sum_{i = 1}^{n / 2} [i * (n - i)] - (n / 2) ** 2 + # + n = 9 + G = nx.path_graph(n) + expected = 2 * sum(i * (n - i) for i in range(1, (n // 2) + 1)) + actual = nx.wiener_index(G) + assert expected == actual + + +def test_schultz_and_gutman_index_of_disconnected_graph(): + n = 4 + G = nx.Graph() + G.add_nodes_from(list(range(1, n + 1))) + expected = float("inf") + + G.add_edge(1, 2) + G.add_edge(3, 4) + + actual_1 = nx.schultz_index(G) + actual_2 = nx.gutman_index(G) + + assert expected == actual_1 + assert expected == actual_2 + + +def test_schultz_and_gutman_index_of_complete_bipartite_graph_1(): + n = 3 + m = 3 + cbg = nx.complete_bipartite_graph(n, m) + + expected_1 = n * m * (n + m) + 2 * n * (n - 1) * m + 2 * m * (m - 1) * n + actual_1 = nx.schultz_index(cbg) + + expected_2 = n * m * (n * m) + n * (n - 1) * m * m + m * (m - 1) * n * n + actual_2 = nx.gutman_index(cbg) + + assert expected_1 == actual_1 + assert expected_2 == actual_2 + + +def test_schultz_and_gutman_index_of_complete_bipartite_graph_2(): + n = 2 + m = 5 + cbg = nx.complete_bipartite_graph(n, m) + + expected_1 = n * m * (n + m) + 2 * n * (n - 1) * m + 2 * m * (m - 1) * n + actual_1 = nx.schultz_index(cbg) + + expected_2 = n * m * (n * m) + n * (n - 1) * m * m + m * (m - 1) * n * n + actual_2 = nx.gutman_index(cbg) + + assert expected_1 == actual_1 + assert expected_2 == actual_2 + + +def test_schultz_and_gutman_index_of_complete_graph(): + n = 5 + cg = nx.complete_graph(n) + + expected_1 = n * (n - 1) * (n - 1) + actual_1 = nx.schultz_index(cg) + + assert expected_1 == actual_1 + + expected_2 = n * (n - 1) * (n - 1) * (n - 1) / 2 + actual_2 = nx.gutman_index(cg) + + assert expected_2 == actual_2 + + +def test_schultz_and_gutman_index_of_odd_cycle_graph(): + k = 5 + n = 2 * k + 1 + ocg = nx.cycle_graph(n) + + expected_1 = 2 * n * k * (k + 1) + actual_1 = nx.schultz_index(ocg) + + expected_2 = 2 * n * k * (k + 1) + actual_2 = nx.gutman_index(ocg) + + assert expected_1 == actual_1 + assert expected_2 == actual_2 + + +def test_hyper_wiener_of_complete_graph(): + # In a complete graph K_n, the distance is always 1. + # For K_n, this term is always (1 + 1^2) = 2. + # + # The number of ordered pairs is n * (n - 1). + # The total sum before division is (n * (n - 1)) * 2. + # The final result is therefore ((n * (n - 1)) * 2) / 2, which + # simplifies to n * (n - 1). + n = 5 + G = nx.complete_graph(n) + assert nx.hyper_wiener_index(G) == n * (n - 1) + + +def test_hyper_wiener_of_path_graph(): + G = nx.path_graph(4) + assert nx.hyper_wiener_index(G) == 30.0 + + +def test_hyper_wiener_of_cycle_graph(): + G = nx.cycle_graph(4) + assert nx.hyper_wiener_index(G) == 20.0 + + +def test_hyper_wiener_of_disconnected_graph(): + G = nx.Graph([(0, 1), (2, 3)]) + assert nx.hyper_wiener_index(G) == float("inf") + + +def test_hyper_wiener_of_weighted_graph(): + G = nx.path_graph(3) + G.edges[0, 1]["weight"] = 2 + assert nx.hyper_wiener_index(G, weight="weight") == 20.0 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9e1794402f733c74759aaca7d74bba609f3e897f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/atlas.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/atlas.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1b9ed6853b3c804c8ebbd83522b3281a1cb6e359 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/atlas.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/classic.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/classic.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..578c8b375a9393c93dedf5c061b6748d4340ed27 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/classic.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/cographs.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/cographs.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d300d438f66f32e4d6eb3da33c5babde3706b9ac Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/cographs.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/community.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/community.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e52ddfcb349a8766516286e31b37dc8f3606230b Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/community.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/degree_seq.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/degree_seq.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c0f3d92bf88ccc1e568b04456377c1d6e50ebc2e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/degree_seq.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/directed.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/directed.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e18ca8c884b9b622d184492dbbce22163ffc5e37 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/directed.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/duplication.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/duplication.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..86a1b4a191a74568fd8f28551d60dd1c96a6253d Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/duplication.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/ego.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/ego.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f9a69875969ba5c292abc585d3a7f8f9c277a932 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/ego.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/expanders.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/expanders.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..378c3ebb681c36c221f642aaac317657c274d73c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/expanders.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/geometric.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/geometric.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9e56cba3ef43b90134cbddf3f5b64f80007cf13f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/geometric.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/harary_graph.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/harary_graph.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2fe1ff6ac0fd0e6ec843c4af4b4c3d77c0bc140d Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/harary_graph.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/internet_as_graphs.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/internet_as_graphs.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c09bca0e236e81d1ea7c9e0c189c139ca69b2656 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/internet_as_graphs.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/intersection.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/intersection.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f5489c57456e28c5cb3ec27748b4d755ce72c7a2 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/intersection.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/interval_graph.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/interval_graph.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..556ce54f4d6b40061ab4f5cb70300d35d524ace0 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/interval_graph.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/joint_degree_seq.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/joint_degree_seq.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..06a70acf3d2dc6db1f7b909f74241f4634c652f5 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/joint_degree_seq.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/lattice.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/lattice.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c7b227929f66424f74ce1f77efe5c3adaab369d1 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/lattice.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/line.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/line.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6ae28a476f87784566df1050071403c952fb8808 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/line.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/mycielski.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/mycielski.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3ba89a3533c52dbd71a2037f10f7a935b8a2c06b Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/mycielski.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/nonisomorphic_trees.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/nonisomorphic_trees.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cb9d4b841debb8c7e6077fd2a16259b44fc4df1f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/nonisomorphic_trees.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/random_clustered.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/random_clustered.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a6567056a0cc7b41a02ad5af29506b2e3d707cb7 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/random_clustered.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/random_graphs.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/random_graphs.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1ec4deeca23e49ce7fc0986b1d90e6766e596999 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/random_graphs.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/small.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/small.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..97551141650bb22c5fd22fefb10282f73abba394 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/small.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/social.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/social.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c8cee09a27cf3f633c56c38d003c60a140fb0c16 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/social.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/spectral_graph_forge.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/spectral_graph_forge.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5efa12313b9f94ba153320f0b51f98fcbc27ed78 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/spectral_graph_forge.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/stochastic.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/stochastic.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3e772d909bdcd4794c6c36f528bbdf0d967ff555 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/stochastic.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/sudoku.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/sudoku.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..79849f905a99735614abf44a10654277f0bd3c9a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/sudoku.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/time_series.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/time_series.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b3432e05c0684a0975a3075da65bafe0feb24db2 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/time_series.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/trees.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/trees.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3ef60e3295cdb8486bc85ea87b4e13da0bfc60ed Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/trees.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/triads.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/triads.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..73c6ec6dfef1ea27a83565db29711082c21e1e63 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/__pycache__/triads.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b16f5034ddfa8fc9874cc271b43b2bb612413fed Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_atlas.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_atlas.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1853feef183ff26fa728d6830441b868c9d9d963 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_atlas.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_classic.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_classic.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0879614bd3e366e7b25ec8af73e75db97f8c5f16 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_classic.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_cographs.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_cographs.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0b4f4406e5ab64fd436412f2cfb17593163452bd Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_cographs.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_community.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_community.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7806e187d6d49e5c51316a88f90244b32c5e55c7 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_community.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_degree_seq.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_degree_seq.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3730eb91b9c740523f416f840e9fccc36a036c1c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_degree_seq.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_directed.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_directed.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..90e54d84a18540b74b36f953087cb89a1bd43b1d Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_directed.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_duplication.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_duplication.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cb4addf350740a40a78c782d1d1bc3d3a2968814 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_duplication.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_ego.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_ego.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d4cc367cbc8d5f64a8dce86982ccc5d6d6d3ba26 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_ego.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_expanders.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_expanders.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..94ce8118291f8394d9cb6508125f5335093d7e0e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_expanders.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_geometric.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_geometric.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3794cb2a4fce91f2530658bd26432dcd1342a81e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_geometric.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_harary_graph.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_harary_graph.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ff1bfcfb82c63b0009ad02d00ca9b2e9708a633d Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_harary_graph.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_internet_as_graphs.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_internet_as_graphs.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..09db383b10254c4bcf74166ea2052d0daee85f71 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_internet_as_graphs.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_intersection.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_intersection.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6494ce2441ed019e5c2341a6a6020890a36687cb Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_intersection.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_interval_graph.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_interval_graph.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..660a7f1ee120cc25e4db0d990ebade00ecdec592 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_interval_graph.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_joint_degree_seq.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_joint_degree_seq.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c8692c2a57ebb08cd93f9010d291e66e30c5cfc3 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_joint_degree_seq.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_lattice.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_lattice.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6c457909081bd74e867c726d759f04202cf9a683 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_lattice.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_line.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_line.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..64c7871a5f77ad296d4a91e6aa88a8d049b68a86 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_line.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_mycielski.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_mycielski.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..be18cd36e871a27c97c44e7e283ec54ac42cc043 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_mycielski.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_nonisomorphic_trees.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_nonisomorphic_trees.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..496bc8029dba83bd28f185b30a7a39c57924af3e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_nonisomorphic_trees.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_random_clustered.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_random_clustered.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3062a409f9e29457ed6fcdb958974716443d9646 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_random_clustered.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_random_graphs.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_random_graphs.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4b96d5f4e3640525a34af46b8bfb618f12b08c52 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_random_graphs.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_small.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_small.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0f4cb9739b48c50f861bbb7aaa2cb06b08ac32a9 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_small.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_spectral_graph_forge.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_spectral_graph_forge.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..833ecb7650f66c0278e23210684c24d5d4ffb6aa Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_spectral_graph_forge.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_stochastic.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_stochastic.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c7d7070eee002a2677c6331ce7838728ad054b92 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_stochastic.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_sudoku.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_sudoku.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1cf33c535ec600e62ecfa38637b00d266ade835a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_sudoku.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_time_series.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_time_series.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..83d664dd998fe4ebfd04471f599291bc2710ba86 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_time_series.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_trees.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_trees.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e0d980d75d6e6a1987ca4183e4677540b0b21cba Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_trees.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_triads.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_triads.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..18bef102086337b8e111807ba93fa1d8f88278e9 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/__pycache__/test_triads.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_atlas.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_atlas.py new file mode 100644 index 0000000000000000000000000000000000000000..add4741c00e8d8aefe4fcf3a2a86815a15aab29c --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_atlas.py @@ -0,0 +1,75 @@ +from itertools import groupby + +import pytest + +import networkx as nx +from networkx import graph_atlas, graph_atlas_g +from networkx.generators.atlas import NUM_GRAPHS +from networkx.utils import edges_equal, nodes_equal, pairwise + + +class TestAtlasGraph: + """Unit tests for the :func:`~networkx.graph_atlas` function.""" + + def test_index_too_small(self): + with pytest.raises(ValueError): + graph_atlas(-1) + + def test_index_too_large(self): + with pytest.raises(ValueError): + graph_atlas(NUM_GRAPHS) + + def test_graph(self): + G = graph_atlas(6) + assert nodes_equal(G.nodes(), range(3)) + assert edges_equal(G.edges(), [(0, 1), (0, 2)]) + + +class TestAtlasGraphG: + """Unit tests for the :func:`~networkx.graph_atlas_g` function.""" + + @classmethod + def setup_class(cls): + cls.GAG = graph_atlas_g() + + def test_sizes(self): + G = self.GAG[0] + assert G.number_of_nodes() == 0 + assert G.number_of_edges() == 0 + + G = self.GAG[7] + assert G.number_of_nodes() == 3 + assert G.number_of_edges() == 3 + + def test_names(self): + for i, G in enumerate(self.GAG): + assert int(G.name[1:]) == i + + def test_nondecreasing_nodes(self): + # check for nondecreasing number of nodes + for n1, n2 in pairwise(map(len, self.GAG)): + assert n2 <= n1 + 1 + + def test_nondecreasing_edges(self): + # check for nondecreasing number of edges (for fixed number of + # nodes) + for n, group in groupby(self.GAG, key=nx.number_of_nodes): + for m1, m2 in pairwise(map(nx.number_of_edges, group)): + assert m2 <= m1 + 1 + + def test_nondecreasing_degree_sequence(self): + # Check for lexicographically nondecreasing degree sequences + # (for fixed number of nodes and edges). + # + # There are three exceptions to this rule in the order given in + # the "Atlas of Graphs" book, so we need to manually exclude + # those. + exceptions = [("G55", "G56"), ("G1007", "G1008"), ("G1012", "G1013")] + for n, group in groupby(self.GAG, key=nx.number_of_nodes): + for m, group in groupby(group, key=nx.number_of_edges): + for G1, G2 in pairwise(group): + if (G1.name, G2.name) in exceptions: + continue + d1 = sorted(d for v, d in G1.degree()) + d2 = sorted(d for v, d in G2.degree()) + assert d1 <= d2 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_classic.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_classic.py new file mode 100644 index 0000000000000000000000000000000000000000..bec6e69e99141561bbb0c86dd54810c9f57c75b8 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_classic.py @@ -0,0 +1,642 @@ +""" +==================== +Generators - Classic +==================== + +Unit tests for various classic graph generators in generators/classic.py +""" + +import itertools +import typing + +import pytest + +import networkx as nx +from networkx.utils import edges_equal, nodes_equal + + +class TestGeneratorClassic: + def test_balanced_tree(self): + # balanced_tree(r,h) is a tree with (r**(h+1)-1)/(r-1) edges + for r, h in [(2, 2), (3, 3), (6, 2)]: + t = nx.balanced_tree(r, h) + order = t.order() + assert order == (r ** (h + 1) - 1) / (r - 1) + assert nx.is_connected(t) + assert t.size() == order - 1 + dh = nx.degree_histogram(t) + assert dh[0] == 0 # no nodes of 0 + assert dh[1] == r**h # nodes of degree 1 are leaves + assert dh[r] == 1 # root is degree r + assert dh[r + 1] == order - r**h - 1 # everyone else is degree r+1 + assert len(dh) == r + 2 + + def test_balanced_tree_star(self): + # balanced_tree(r,1) is the r-star + t = nx.balanced_tree(r=2, h=1) + assert nx.could_be_isomorphic(t, nx.star_graph(2)) + t = nx.balanced_tree(r=5, h=1) + assert nx.could_be_isomorphic(t, nx.star_graph(5)) + t = nx.balanced_tree(r=10, h=1) + assert nx.could_be_isomorphic(t, nx.star_graph(10)) + + def test_balanced_tree_path(self): + """Tests that the balanced tree with branching factor one is the + path graph. + + """ + # A tree of height four has five levels. + T = nx.balanced_tree(1, 4) + P = nx.path_graph(5) + assert nx.could_be_isomorphic(T, P) + + def test_full_rary_tree(self): + r = 2 + n = 9 + t = nx.full_rary_tree(r, n) + assert t.order() == n + assert nx.is_connected(t) + dh = nx.degree_histogram(t) + assert dh[0] == 0 # no nodes of 0 + assert dh[1] == 5 # nodes of degree 1 are leaves + assert dh[r] == 1 # root is degree r + assert dh[r + 1] == 9 - 5 - 1 # everyone else is degree r+1 + assert len(dh) == r + 2 + + def test_full_rary_tree_balanced(self): + t = nx.full_rary_tree(2, 15) + th = nx.balanced_tree(2, 3) + assert nx.could_be_isomorphic(t, th) + + def test_full_rary_tree_path(self): + t = nx.full_rary_tree(1, 10) + assert nx.could_be_isomorphic(t, nx.path_graph(10)) + + def test_full_rary_tree_empty(self): + t = nx.full_rary_tree(0, 10) + assert nx.could_be_isomorphic(t, nx.empty_graph(10)) + t = nx.full_rary_tree(3, 0) + assert nx.could_be_isomorphic(t, nx.empty_graph(0)) + + def test_full_rary_tree_3_20(self): + t = nx.full_rary_tree(3, 20) + assert t.order() == 20 + + def test_barbell_graph(self): + # number of nodes = 2*m1 + m2 (2 m1-complete graphs + m2-path + 2 edges) + # number of edges = 2*(nx.number_of_edges(m1-complete graph) + m2 + 1 + m1 = 3 + m2 = 5 + b = nx.barbell_graph(m1, m2) + assert nx.number_of_nodes(b) == 2 * m1 + m2 + assert nx.number_of_edges(b) == m1 * (m1 - 1) + m2 + 1 + + m1 = 4 + m2 = 10 + b = nx.barbell_graph(m1, m2) + assert nx.number_of_nodes(b) == 2 * m1 + m2 + assert nx.number_of_edges(b) == m1 * (m1 - 1) + m2 + 1 + + m1 = 3 + m2 = 20 + b = nx.barbell_graph(m1, m2) + assert nx.number_of_nodes(b) == 2 * m1 + m2 + assert nx.number_of_edges(b) == m1 * (m1 - 1) + m2 + 1 + + # Raise NetworkXError if m1<2 + m1 = 1 + m2 = 20 + pytest.raises(nx.NetworkXError, nx.barbell_graph, m1, m2) + + # Raise NetworkXError if m2<0 + m1 = 5 + m2 = -2 + pytest.raises(nx.NetworkXError, nx.barbell_graph, m1, m2) + + # nx.barbell_graph(2,m) = nx.path_graph(m+4) + m1 = 2 + m2 = 5 + b = nx.barbell_graph(m1, m2) + assert nx.could_be_isomorphic(b, nx.path_graph(m2 + 4)) + + m1 = 2 + m2 = 10 + b = nx.barbell_graph(m1, m2) + assert nx.could_be_isomorphic(b, nx.path_graph(m2 + 4)) + + m1 = 2 + m2 = 20 + b = nx.barbell_graph(m1, m2) + assert nx.could_be_isomorphic(b, nx.path_graph(m2 + 4)) + + pytest.raises( + nx.NetworkXError, nx.barbell_graph, m1, m2, create_using=nx.DiGraph() + ) + + mb = nx.barbell_graph(m1, m2, create_using=nx.MultiGraph()) + assert edges_equal(mb.edges(), b.edges()) + + def test_binomial_tree(self): + graphs = (None, nx.Graph, nx.DiGraph, nx.MultiGraph, nx.MultiDiGraph) + for create_using in graphs: + for n in range(4): + b = nx.binomial_tree(n, create_using) + assert nx.number_of_nodes(b) == 2**n + assert nx.number_of_edges(b) == (2**n - 1) + + def test_complete_graph(self): + # complete_graph(m) is a connected graph with + # m nodes and m*(m+1)/2 edges + for m in [0, 1, 3, 5]: + g = nx.complete_graph(m) + assert nx.number_of_nodes(g) == m + assert nx.number_of_edges(g) == m * (m - 1) // 2 + + mg = nx.complete_graph(m, create_using=nx.MultiGraph) + assert edges_equal(mg.edges(), g.edges()) + + g = nx.complete_graph("abc") + assert nodes_equal(g.nodes(), ["a", "b", "c"]) + assert g.size() == 3 + + # creates a self-loop... should it? + g = nx.complete_graph("abcb") + assert nodes_equal(g.nodes(), ["a", "b", "c"]) + assert g.size() == 4 + + g = nx.complete_graph("abcb", create_using=nx.MultiGraph) + assert nodes_equal(g.nodes(), ["a", "b", "c"]) + assert g.size() == 6 + + def test_complete_digraph(self): + # complete_graph(m) is a connected graph with + # m nodes and m*(m+1)/2 edges + for m in [0, 1, 3, 5]: + g = nx.complete_graph(m, create_using=nx.DiGraph) + assert nx.number_of_nodes(g) == m + assert nx.number_of_edges(g) == m * (m - 1) + + g = nx.complete_graph("abc", create_using=nx.DiGraph) + assert len(g) == 3 + assert g.size() == 6 + assert g.is_directed() + + def test_circular_ladder_graph(self): + G = nx.circular_ladder_graph(5) + pytest.raises( + nx.NetworkXError, nx.circular_ladder_graph, 5, create_using=nx.DiGraph + ) + mG = nx.circular_ladder_graph(5, create_using=nx.MultiGraph) + assert edges_equal(mG.edges(), G.edges()) + + def test_circulant_graph(self): + # Ci_n(1) is the cycle graph for all n + Ci6_1 = nx.circulant_graph(6, [1]) + C6 = nx.cycle_graph(6) + assert edges_equal(Ci6_1.edges(), C6.edges()) + + # Ci_n(1, 2, ..., n div 2) is the complete graph for all n + Ci7 = nx.circulant_graph(7, [1, 2, 3]) + K7 = nx.complete_graph(7) + assert edges_equal(Ci7.edges(), K7.edges()) + + # Ci_6(1, 3) is K_3,3 i.e. the utility graph + Ci6_1_3 = nx.circulant_graph(6, [1, 3]) + K3_3 = nx.complete_bipartite_graph(3, 3) + assert nx.could_be_isomorphic(Ci6_1_3, K3_3) + + def test_cycle_graph(self): + G = nx.cycle_graph(4) + assert edges_equal(G.edges(), [(0, 1), (0, 3), (1, 2), (2, 3)]) + mG = nx.cycle_graph(4, create_using=nx.MultiGraph) + assert edges_equal(mG.edges(), [(0, 1), (0, 3), (1, 2), (2, 3)]) + G = nx.cycle_graph(4, create_using=nx.DiGraph) + assert not G.has_edge(2, 1) + assert G.has_edge(1, 2) + assert G.is_directed() + + G = nx.cycle_graph("abc") + assert len(G) == 3 + assert G.size() == 3 + G = nx.cycle_graph("abcb") + assert len(G) == 3 + assert G.size() == 2 + g = nx.cycle_graph("abc", nx.DiGraph) + assert len(g) == 3 + assert g.size() == 3 + assert g.is_directed() + g = nx.cycle_graph("abcb", nx.DiGraph) + assert len(g) == 3 + assert g.size() == 4 + + def test_dorogovtsev_goltsev_mendes_graph(self): + G = nx.dorogovtsev_goltsev_mendes_graph(0) + assert edges_equal(G.edges(), [(0, 1)]) + assert nodes_equal(list(G), [0, 1]) + G = nx.dorogovtsev_goltsev_mendes_graph(1) + assert edges_equal(G.edges(), [(0, 1), (0, 2), (1, 2)]) + assert nx.average_clustering(G) == 1.0 + assert nx.average_shortest_path_length(G) == 1.0 + assert sorted(nx.triangles(G).values()) == [1, 1, 1] + assert nx.is_planar(G) + G = nx.dorogovtsev_goltsev_mendes_graph(2) + assert nx.number_of_nodes(G) == 6 + assert nx.number_of_edges(G) == 9 + assert nx.average_clustering(G) == 0.75 + assert nx.average_shortest_path_length(G) == 1.4 + assert nx.is_planar(G) + G = nx.dorogovtsev_goltsev_mendes_graph(10) + assert nx.number_of_nodes(G) == 29526 + assert nx.number_of_edges(G) == 59049 + assert G.degree(0) == 1024 + assert G.degree(1) == 1024 + assert G.degree(2) == 1024 + + with pytest.raises(nx.NetworkXError, match=r"n must be greater than"): + nx.dorogovtsev_goltsev_mendes_graph(-1) + with pytest.raises(nx.NetworkXError, match=r"directed graph not supported"): + nx.dorogovtsev_goltsev_mendes_graph(7, create_using=nx.DiGraph) + with pytest.raises(nx.NetworkXError, match=r"multigraph not supported"): + nx.dorogovtsev_goltsev_mendes_graph(7, create_using=nx.MultiGraph) + with pytest.raises(nx.NetworkXError): + nx.dorogovtsev_goltsev_mendes_graph(7, create_using=nx.MultiDiGraph) + + def test_create_using(self): + G = nx.empty_graph() + assert isinstance(G, nx.Graph) + pytest.raises(TypeError, nx.empty_graph, create_using=0.0) + pytest.raises(TypeError, nx.empty_graph, create_using="Graph") + + G = nx.empty_graph(create_using=nx.MultiGraph) + assert isinstance(G, nx.MultiGraph) + G = nx.empty_graph(create_using=nx.DiGraph) + assert isinstance(G, nx.DiGraph) + + G = nx.empty_graph(create_using=nx.DiGraph, default=nx.MultiGraph) + assert isinstance(G, nx.DiGraph) + G = nx.empty_graph(create_using=None, default=nx.MultiGraph) + assert isinstance(G, nx.MultiGraph) + G = nx.empty_graph(default=nx.MultiGraph) + assert isinstance(G, nx.MultiGraph) + + G = nx.path_graph(5) + H = nx.empty_graph(create_using=G) + assert not H.is_multigraph() + assert not H.is_directed() + assert len(H) == 0 + assert G is H + + H = nx.empty_graph(create_using=nx.MultiGraph()) + assert H.is_multigraph() + assert not H.is_directed() + assert G is not H + + # test for subclasses that also use typing.Protocol. See gh-6243 + class Mixin(typing.Protocol): + pass + + class MyGraph(Mixin, nx.DiGraph): + pass + + G = nx.empty_graph(create_using=MyGraph) + + def test_empty_graph(self): + G = nx.empty_graph() + assert nx.number_of_nodes(G) == 0 + G = nx.empty_graph(42) + assert nx.number_of_nodes(G) == 42 + assert nx.number_of_edges(G) == 0 + + G = nx.empty_graph("abc") + assert len(G) == 3 + assert G.size() == 0 + + # create empty digraph + G = nx.empty_graph(42, create_using=nx.DiGraph(name="duh")) + assert nx.number_of_nodes(G) == 42 + assert nx.number_of_edges(G) == 0 + assert isinstance(G, nx.DiGraph) + + # create empty multigraph + G = nx.empty_graph(42, create_using=nx.MultiGraph(name="duh")) + assert nx.number_of_nodes(G) == 42 + assert nx.number_of_edges(G) == 0 + assert isinstance(G, nx.MultiGraph) + + # create empty graph from another + pete = nx.petersen_graph() + G = nx.empty_graph(42, create_using=pete) + assert nx.number_of_nodes(G) == 42 + assert nx.number_of_edges(G) == 0 + assert isinstance(G, nx.Graph) + + def test_ladder_graph(self): + for i, G in [ + (0, nx.empty_graph(0)), + (1, nx.path_graph(2)), + (2, nx.hypercube_graph(2)), + (10, nx.grid_graph([2, 10])), + ]: + assert nx.could_be_isomorphic(nx.ladder_graph(i), G) + + pytest.raises(nx.NetworkXError, nx.ladder_graph, 2, create_using=nx.DiGraph) + + g = nx.ladder_graph(2) + mg = nx.ladder_graph(2, create_using=nx.MultiGraph) + assert edges_equal(mg.edges(), g.edges()) + + @pytest.mark.parametrize(("m", "n"), [(3, 5), (4, 10), (3, 20)]) + def test_lollipop_graph_right_sizes(self, m, n): + G = nx.lollipop_graph(m, n) + assert nx.number_of_nodes(G) == m + n + assert nx.number_of_edges(G) == m * (m - 1) / 2 + n + + @pytest.mark.parametrize(("m", "n"), [("ab", ""), ("abc", "defg")]) + def test_lollipop_graph_size_node_sequence(self, m, n): + G = nx.lollipop_graph(m, n) + assert nx.number_of_nodes(G) == len(m) + len(n) + assert nx.number_of_edges(G) == len(m) * (len(m) - 1) / 2 + len(n) + + def test_lollipop_graph_exceptions(self): + # Raise NetworkXError if m<2 + pytest.raises(nx.NetworkXError, nx.lollipop_graph, -1, 2) + pytest.raises(nx.NetworkXError, nx.lollipop_graph, 1, 20) + pytest.raises(nx.NetworkXError, nx.lollipop_graph, "", 20) + pytest.raises(nx.NetworkXError, nx.lollipop_graph, "a", 20) + + # Raise NetworkXError if n<0 + pytest.raises(nx.NetworkXError, nx.lollipop_graph, 5, -2) + + # raise NetworkXError if create_using is directed + with pytest.raises(nx.NetworkXError): + nx.lollipop_graph(2, 20, create_using=nx.DiGraph) + with pytest.raises(nx.NetworkXError): + nx.lollipop_graph(2, 20, create_using=nx.MultiDiGraph) + + @pytest.mark.parametrize(("m", "n"), [(2, 0), (2, 5), (2, 10), ("ab", 20)]) + def test_lollipop_graph_same_as_path_when_m1_is_2(self, m, n): + G = nx.lollipop_graph(m, n) + assert nx.could_be_isomorphic(G, nx.path_graph(n + 2)) + + def test_lollipop_graph_for_multigraph(self): + G = nx.lollipop_graph(5, 20) + MG = nx.lollipop_graph(5, 20, create_using=nx.MultiGraph) + assert edges_equal(MG.edges(), G.edges()) + + @pytest.mark.parametrize( + ("m", "n"), + [(4, "abc"), ("abcd", 3), ([1, 2, 3, 4], "abc"), ("abcd", [1, 2, 3])], + ) + def test_lollipop_graph_mixing_input_types(self, m, n): + expected = nx.compose(nx.complete_graph(4), nx.path_graph(range(100, 103))) + expected.add_edge(0, 100) # Connect complete graph and path graph + assert nx.could_be_isomorphic(nx.lollipop_graph(m, n), expected) + + def test_lollipop_graph_non_builtin_ints(self): + np = pytest.importorskip("numpy") + G = nx.lollipop_graph(np.int32(4), np.int64(3)) + expected = nx.compose(nx.complete_graph(4), nx.path_graph(range(100, 103))) + expected.add_edge(0, 100) # Connect complete graph and path graph + assert nx.could_be_isomorphic(G, expected) + + def test_null_graph(self): + assert nx.number_of_nodes(nx.null_graph()) == 0 + + def test_path_graph(self): + p = nx.path_graph(0) + assert nx.could_be_isomorphic(p, nx.null_graph()) + + p = nx.path_graph(1) + assert nx.could_be_isomorphic(p, nx.empty_graph(1)) + + p = nx.path_graph(10) + assert nx.is_connected(p) + assert sorted(d for n, d in p.degree()) == [1, 1, 2, 2, 2, 2, 2, 2, 2, 2] + assert p.order() - 1 == p.size() + + dp = nx.path_graph(3, create_using=nx.DiGraph) + assert dp.has_edge(0, 1) + assert not dp.has_edge(1, 0) + + mp = nx.path_graph(10, create_using=nx.MultiGraph) + assert edges_equal(mp.edges(), p.edges()) + + G = nx.path_graph("abc") + assert len(G) == 3 + assert G.size() == 2 + G = nx.path_graph("abcb") + assert len(G) == 3 + assert G.size() == 2 + g = nx.path_graph("abc", nx.DiGraph) + assert len(g) == 3 + assert g.size() == 2 + assert g.is_directed() + g = nx.path_graph("abcb", nx.DiGraph) + assert len(g) == 3 + assert g.size() == 3 + + G = nx.path_graph((1, 2, 3, 2, 4)) + assert G.has_edge(2, 4) + + def test_star_graph(self): + assert nx.could_be_isomorphic(nx.star_graph(""), nx.empty_graph(0)) + assert nx.could_be_isomorphic(nx.star_graph([]), nx.empty_graph(0)) + assert nx.could_be_isomorphic(nx.star_graph(0), nx.empty_graph(1)) + assert nx.could_be_isomorphic(nx.star_graph(1), nx.path_graph(2)) + assert nx.could_be_isomorphic(nx.star_graph(2), nx.path_graph(3)) + assert nx.could_be_isomorphic( + nx.star_graph(5), nx.complete_bipartite_graph(1, 5) + ) + + s = nx.star_graph(10) + assert sorted(d for n, d in s.degree()) == [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10] + + ms = nx.star_graph(10, create_using=nx.MultiGraph) + assert edges_equal(ms.edges(), s.edges()) + + G = nx.star_graph("abc") + assert len(G) == 3 + assert G.size() == 2 + + G = nx.star_graph("abcb") + assert len(G) == 3 + assert G.size() == 2 + G = nx.star_graph("abcb", create_using=nx.MultiGraph) + assert len(G) == 3 + assert G.size() == 3 + + G = nx.star_graph("abcdefg") + assert len(G) == 7 + assert G.size() == 6 + + @pytest.mark.parametrize("graph_type", (nx.DiGraph, nx.MultiDiGraph)) + def test_star_graph_directed(self, graph_type): + dg = nx.star_graph(3, create_using=graph_type) + assert sorted([(u, v) for u, v, *d in dg.edges]) == [(0, 1), (0, 2), (0, 3)] + + def test_non_int_integers_for_star_graph(self): + np = pytest.importorskip("numpy") + G = nx.star_graph(np.int32(3)) + assert len(G) == 4 + assert G.size() == 3 + + @pytest.mark.parametrize(("m", "n"), [(3, 0), (3, 5), (4, 10), (3, 20)]) + def test_tadpole_graph_right_sizes(self, m, n): + G = nx.tadpole_graph(m, n) + assert nx.number_of_nodes(G) == m + n + assert nx.number_of_edges(G) == m + n - (m == 2) + + @pytest.mark.parametrize(("m", "n"), [("ab", ""), ("ab", "c"), ("abc", "defg")]) + def test_tadpole_graph_size_node_sequences(self, m, n): + G = nx.tadpole_graph(m, n) + assert nx.number_of_nodes(G) == len(m) + len(n) + assert nx.number_of_edges(G) == len(m) + len(n) - (len(m) == 2) + + def test_tadpole_graph_exceptions(self): + # Raise NetworkXError if m<2 + pytest.raises(nx.NetworkXError, nx.tadpole_graph, -1, 3) + pytest.raises(nx.NetworkXError, nx.tadpole_graph, 0, 3) + pytest.raises(nx.NetworkXError, nx.tadpole_graph, 1, 3) + + # Raise NetworkXError if n<0 + pytest.raises(nx.NetworkXError, nx.tadpole_graph, 5, -2) + + # Raise NetworkXError for digraphs + with pytest.raises(nx.NetworkXError): + nx.tadpole_graph(2, 20, create_using=nx.DiGraph) + with pytest.raises(nx.NetworkXError): + nx.tadpole_graph(2, 20, create_using=nx.MultiDiGraph) + + @pytest.mark.parametrize(("m", "n"), [(2, 0), (2, 5), (2, 10), ("ab", 20)]) + def test_tadpole_graph_same_as_path_when_m_is_2(self, m, n): + G = nx.tadpole_graph(m, n) + assert nx.could_be_isomorphic(G, nx.path_graph(n + 2)) + + @pytest.mark.parametrize("m", [4, 7]) + def test_tadpole_graph_same_as_cycle_when_m2_is_0(self, m): + G = nx.tadpole_graph(m, 0) + assert nx.could_be_isomorphic(G, nx.cycle_graph(m)) + + def test_tadpole_graph_for_multigraph(self): + G = nx.tadpole_graph(5, 20) + MG = nx.tadpole_graph(5, 20, create_using=nx.MultiGraph) + assert edges_equal(MG.edges(), G.edges()) + + @pytest.mark.parametrize( + ("m", "n"), + [(4, "abc"), ("abcd", 3), ([1, 2, 3, 4], "abc"), ("abcd", [1, 2, 3])], + ) + def test_tadpole_graph_mixing_input_types(self, m, n): + expected = nx.compose(nx.cycle_graph(4), nx.path_graph(range(100, 103))) + expected.add_edge(0, 100) # Connect cycle and path + assert nx.could_be_isomorphic(nx.tadpole_graph(m, n), expected) + + def test_tadpole_graph_non_builtin_integers(self): + np = pytest.importorskip("numpy") + G = nx.tadpole_graph(np.int32(4), np.int64(3)) + expected = nx.compose(nx.cycle_graph(4), nx.path_graph(range(100, 103))) + expected.add_edge(0, 100) # Connect cycle and path + assert nx.could_be_isomorphic(G, expected) + + def test_trivial_graph(self): + assert nx.number_of_nodes(nx.trivial_graph()) == 1 + + def test_turan_graph(self): + assert nx.number_of_edges(nx.turan_graph(13, 4)) == 63 + assert nx.could_be_isomorphic( + nx.turan_graph(13, 4), nx.complete_multipartite_graph(3, 4, 3, 3) + ) + + def test_wheel_graph(self): + for n, G in [ + ("", nx.null_graph()), + (0, nx.null_graph()), + (1, nx.empty_graph(1)), + (2, nx.path_graph(2)), + (3, nx.complete_graph(3)), + (4, nx.complete_graph(4)), + ]: + g = nx.wheel_graph(n) + assert nx.could_be_isomorphic(g, G) + + g = nx.wheel_graph(10) + assert sorted(d for n, d in g.degree()) == [3, 3, 3, 3, 3, 3, 3, 3, 3, 9] + + pytest.raises(nx.NetworkXError, nx.wheel_graph, 10, create_using=nx.DiGraph) + + mg = nx.wheel_graph(10, create_using=nx.MultiGraph()) + assert edges_equal(mg.edges(), g.edges()) + + G = nx.wheel_graph("abc") + assert len(G) == 3 + assert G.size() == 3 + + G = nx.wheel_graph("abcb") + assert len(G) == 3 + assert G.size() == 4 + G = nx.wheel_graph("abcb", nx.MultiGraph) + assert len(G) == 3 + assert G.size() == 6 + + def test_non_int_integers_for_wheel_graph(self): + np = pytest.importorskip("numpy") + G = nx.wheel_graph(np.int32(3)) + assert len(G) == 3 + assert G.size() == 3 + + def test_complete_0_partite_graph(self): + """Tests that the complete 0-partite graph is the null graph.""" + G = nx.complete_multipartite_graph() + H = nx.null_graph() + assert nodes_equal(G, H) + assert edges_equal(G.edges(), H.edges()) + + def test_complete_1_partite_graph(self): + """Tests that the complete 1-partite graph is the empty graph.""" + G = nx.complete_multipartite_graph(3) + H = nx.empty_graph(3) + assert nodes_equal(G, H) + assert edges_equal(G.edges(), H.edges()) + + def test_complete_2_partite_graph(self): + """Tests that the complete 2-partite graph is the complete bipartite + graph. + + """ + G = nx.complete_multipartite_graph(2, 3) + H = nx.complete_bipartite_graph(2, 3) + assert nodes_equal(G, H) + assert edges_equal(G.edges(), H.edges()) + + def test_complete_multipartite_graph(self): + """Tests for generating the complete multipartite graph.""" + G = nx.complete_multipartite_graph(2, 3, 4) + blocks = [(0, 1), (2, 3, 4), (5, 6, 7, 8)] + # Within each block, no two vertices should be adjacent. + for block in blocks: + for u, v in itertools.combinations_with_replacement(block, 2): + assert v not in G[u] + assert G.nodes[u] == G.nodes[v] + # Across blocks, all vertices should be adjacent. + for block1, block2 in itertools.combinations(blocks, 2): + for u, v in itertools.product(block1, block2): + assert v in G[u] + assert G.nodes[u] != G.nodes[v] + with pytest.raises(nx.NetworkXError, match="Negative number of nodes"): + nx.complete_multipartite_graph(2, -3, 4) + + def test_kneser_graph(self): + # the petersen graph is a special case of the kneser graph when n=5 and k=2 + assert nx.could_be_isomorphic(nx.kneser_graph(5, 2), nx.petersen_graph()) + + # when k is 1, the kneser graph returns a complete graph with n vertices + for i in range(1, 7): + assert nx.could_be_isomorphic(nx.kneser_graph(i, 1), nx.complete_graph(i)) + + # the kneser graph of n and n-1 is the empty graph with n vertices + for j in range(3, 7): + assert nx.could_be_isomorphic(nx.kneser_graph(j, j - 1), nx.empty_graph(j)) + + # in general the number of edges of the kneser graph is equal to + # (n choose k) times (n-k choose k) divided by 2 + assert nx.number_of_edges(nx.kneser_graph(8, 3)) == 280 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_cographs.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_cographs.py new file mode 100644 index 0000000000000000000000000000000000000000..65ac3250fd34c5972534504184839a929289e8a9 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_cographs.py @@ -0,0 +1,20 @@ +"""Unit tests for the :mod:`networkx.generators.cographs` module.""" + +import pytest + +import networkx as nx + + +@pytest.mark.parametrize("n", [3, 4, 5]) +@pytest.mark.parametrize("seed", [42, 43]) +def test_random_cograph(n, seed): + """Test the generation of random cographs. + + Parametrized on `seed` to ensure we hit all code branches. + """ + G = nx.random_cograph(n, seed=seed) + + assert len(G) == 2**n + + # Every connected subgraph of G has diameter <= 2. + assert all(nx.diameter(G.subgraph(c)) <= 2 for c in nx.connected_components(G)) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_community.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_community.py new file mode 100644 index 0000000000000000000000000000000000000000..2fa107f6dde9f280123796f81b919c99f92ee20c --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_community.py @@ -0,0 +1,362 @@ +import pytest + +import networkx as nx + + +def test_random_partition_graph(): + G = nx.random_partition_graph([3, 3, 3], 1, 0, seed=42) + C = G.graph["partition"] + assert C == [{0, 1, 2}, {3, 4, 5}, {6, 7, 8}] + assert len(G) == 9 + assert len(list(G.edges())) == 9 + + G = nx.random_partition_graph([3, 3, 3], 0, 1) + C = G.graph["partition"] + assert C == [{0, 1, 2}, {3, 4, 5}, {6, 7, 8}] + assert len(G) == 9 + assert len(list(G.edges())) == 27 + + G = nx.random_partition_graph([3, 3, 3], 1, 0, directed=True) + C = G.graph["partition"] + assert C == [{0, 1, 2}, {3, 4, 5}, {6, 7, 8}] + assert len(G) == 9 + assert len(list(G.edges())) == 18 + + G = nx.random_partition_graph([3, 3, 3], 0, 1, directed=True) + C = G.graph["partition"] + assert C == [{0, 1, 2}, {3, 4, 5}, {6, 7, 8}] + assert len(G) == 9 + assert len(list(G.edges())) == 54 + + G = nx.random_partition_graph([1, 2, 3, 4, 5], 0.5, 0.1) + C = G.graph["partition"] + assert C == [{0}, {1, 2}, {3, 4, 5}, {6, 7, 8, 9}, {10, 11, 12, 13, 14}] + assert len(G) == 15 + + rpg = nx.random_partition_graph + pytest.raises(nx.NetworkXError, rpg, [1, 2, 3], 1.1, 0.1) + pytest.raises(nx.NetworkXError, rpg, [1, 2, 3], -0.1, 0.1) + pytest.raises(nx.NetworkXError, rpg, [1, 2, 3], 0.1, 1.1) + pytest.raises(nx.NetworkXError, rpg, [1, 2, 3], 0.1, -0.1) + + +def test_planted_partition_graph(): + G = nx.planted_partition_graph(4, 3, 1, 0, seed=42) + C = G.graph["partition"] + assert len(C) == 4 + assert len(G) == 12 + assert len(list(G.edges())) == 12 + + G = nx.planted_partition_graph(4, 3, 0, 1) + C = G.graph["partition"] + assert len(C) == 4 + assert len(G) == 12 + assert len(list(G.edges())) == 54 + + G = nx.planted_partition_graph(10, 4, 0.5, 0.1, seed=42) + C = G.graph["partition"] + assert len(C) == 10 + assert len(G) == 40 + + G = nx.planted_partition_graph(4, 3, 1, 0, directed=True) + C = G.graph["partition"] + assert len(C) == 4 + assert len(G) == 12 + assert len(list(G.edges())) == 24 + + G = nx.planted_partition_graph(4, 3, 0, 1, directed=True) + C = G.graph["partition"] + assert len(C) == 4 + assert len(G) == 12 + assert len(list(G.edges())) == 108 + + G = nx.planted_partition_graph(10, 4, 0.5, 0.1, seed=42, directed=True) + C = G.graph["partition"] + assert len(C) == 10 + assert len(G) == 40 + + ppg = nx.planted_partition_graph + pytest.raises(nx.NetworkXError, ppg, 3, 3, 1.1, 0.1) + pytest.raises(nx.NetworkXError, ppg, 3, 3, -0.1, 0.1) + pytest.raises(nx.NetworkXError, ppg, 3, 3, 0.1, 1.1) + pytest.raises(nx.NetworkXError, ppg, 3, 3, 0.1, -0.1) + + +def test_relaxed_caveman_graph(): + G = nx.relaxed_caveman_graph(4, 3, 0) + assert len(G) == 12 + G = nx.relaxed_caveman_graph(4, 3, 1) + assert len(G) == 12 + G = nx.relaxed_caveman_graph(4, 3, 0.5) + assert len(G) == 12 + G = nx.relaxed_caveman_graph(4, 3, 0.5, seed=42) + assert len(G) == 12 + + +def test_connected_caveman_graph(): + G = nx.connected_caveman_graph(4, 3) + assert len(G) == 12 + + G = nx.connected_caveman_graph(1, 5) + K5 = nx.complete_graph(5) + K5.remove_edge(3, 4) + assert nx.is_isomorphic(G, K5) + + # need at least 2 nodes in each clique + pytest.raises(nx.NetworkXError, nx.connected_caveman_graph, 4, 1) + + +def test_caveman_graph(): + G = nx.caveman_graph(4, 3) + assert len(G) == 12 + + G = nx.caveman_graph(5, 1) + E5 = nx.empty_graph(5) + assert nx.is_isomorphic(G, E5) + + G = nx.caveman_graph(1, 5) + K5 = nx.complete_graph(5) + assert nx.is_isomorphic(G, K5) + + +def test_gaussian_random_partition_graph(): + G = nx.gaussian_random_partition_graph(100, 10, 10, 0.3, 0.01) + assert len(G) == 100 + G = nx.gaussian_random_partition_graph(100, 10, 10, 0.3, 0.01, directed=True) + assert len(G) == 100 + G = nx.gaussian_random_partition_graph( + 100, 10, 10, 0.3, 0.01, directed=False, seed=42 + ) + assert len(G) == 100 + assert not isinstance(G, nx.DiGraph) + G = nx.gaussian_random_partition_graph( + 100, 10, 10, 0.3, 0.01, directed=True, seed=42 + ) + assert len(G) == 100 + assert isinstance(G, nx.DiGraph) + pytest.raises( + nx.NetworkXError, nx.gaussian_random_partition_graph, 100, 101, 10, 1, 0 + ) + # Test when clusters are likely less than 1 + G = nx.gaussian_random_partition_graph(10, 0.5, 0.5, 0.5, 0.5, seed=1) + assert len(G) == 10 + + +def test_ring_of_cliques(): + for i in range(2, 20, 3): + for j in range(2, 20, 3): + G = nx.ring_of_cliques(i, j) + assert G.number_of_nodes() == i * j + if i != 2 or j != 1: + expected_num_edges = i * (((j * (j - 1)) // 2) + 1) + else: + # the edge that already exists cannot be duplicated + expected_num_edges = i * (((j * (j - 1)) // 2) + 1) - 1 + assert G.number_of_edges() == expected_num_edges + with pytest.raises( + nx.NetworkXError, match="A ring of cliques must have at least two cliques" + ): + nx.ring_of_cliques(1, 5) + with pytest.raises( + nx.NetworkXError, match="The cliques must have at least two nodes" + ): + nx.ring_of_cliques(3, 0) + + +def test_windmill_graph(): + for n in range(2, 20, 3): + for k in range(2, 20, 3): + G = nx.windmill_graph(n, k) + assert G.number_of_nodes() == (k - 1) * n + 1 + assert G.number_of_edges() == n * k * (k - 1) / 2 + assert G.degree(0) == G.number_of_nodes() - 1 + for i in range(1, G.number_of_nodes()): + assert G.degree(i) == k - 1 + with pytest.raises( + nx.NetworkXError, match="A windmill graph must have at least two cliques" + ): + nx.windmill_graph(1, 3) + with pytest.raises( + nx.NetworkXError, match="The cliques must have at least two nodes" + ): + nx.windmill_graph(3, 0) + + +def test_stochastic_block_model(): + sizes = [75, 75, 300] + probs = [[0.25, 0.05, 0.02], [0.05, 0.35, 0.07], [0.02, 0.07, 0.40]] + G = nx.stochastic_block_model(sizes, probs, seed=0) + C = G.graph["partition"] + assert len(C) == 3 + assert len(G) == 450 + assert G.size() == 22160 + + GG = nx.stochastic_block_model(sizes, probs, range(450), seed=0) + assert G.nodes == GG.nodes + + # Test Exceptions + sbm = nx.stochastic_block_model + badnodelist = list(range(400)) # not enough nodes to match sizes + badprobs1 = [[0.25, 0.05, 1.02], [0.05, 0.35, 0.07], [0.02, 0.07, 0.40]] + badprobs2 = [[0.25, 0.05, 0.02], [0.05, -0.35, 0.07], [0.02, 0.07, 0.40]] + probs_rect1 = [[0.25, 0.05, 0.02], [0.05, -0.35, 0.07]] + probs_rect2 = [[0.25, 0.05], [0.05, -0.35], [0.02, 0.07]] + asymprobs = [[0.25, 0.05, 0.01], [0.05, -0.35, 0.07], [0.02, 0.07, 0.40]] + pytest.raises(nx.NetworkXException, sbm, sizes, badprobs1) + pytest.raises(nx.NetworkXException, sbm, sizes, badprobs2) + pytest.raises(nx.NetworkXException, sbm, sizes, probs_rect1, directed=True) + pytest.raises(nx.NetworkXException, sbm, sizes, probs_rect2, directed=True) + pytest.raises(nx.NetworkXException, sbm, sizes, asymprobs, directed=False) + pytest.raises(nx.NetworkXException, sbm, sizes, probs, badnodelist) + nodelist = [0] + list(range(449)) # repeated node name in nodelist + pytest.raises(nx.NetworkXException, sbm, sizes, probs, nodelist) + + # Extra keyword arguments test + GG = nx.stochastic_block_model(sizes, probs, seed=0, selfloops=True) + assert G.nodes == GG.nodes + GG = nx.stochastic_block_model(sizes, probs, selfloops=True, directed=True) + assert G.nodes == GG.nodes + GG = nx.stochastic_block_model(sizes, probs, seed=0, sparse=False) + assert G.nodes == GG.nodes + + +def test_generator(): + n = 250 + tau1 = 3 + tau2 = 1.5 + mu = 0.1 + G = nx.LFR_benchmark_graph( + n, tau1, tau2, mu, average_degree=5, min_community=20, seed=10 + ) + assert len(G) == 250 + C = {frozenset(G.nodes[v]["community"]) for v in G} + assert nx.community.is_partition(G.nodes(), C) + + +def test_invalid_tau1(): + with pytest.raises(nx.NetworkXError, match="tau2 must be greater than one"): + n = 100 + tau1 = 2 + tau2 = 1 + mu = 0.1 + nx.LFR_benchmark_graph(n, tau1, tau2, mu, min_degree=2) + + +def test_invalid_tau2(): + with pytest.raises(nx.NetworkXError, match="tau1 must be greater than one"): + n = 100 + tau1 = 1 + tau2 = 2 + mu = 0.1 + nx.LFR_benchmark_graph(n, tau1, tau2, mu, min_degree=2) + + +def test_mu_too_large(): + with pytest.raises(nx.NetworkXError, match="mu must be in the interval \\[0, 1\\]"): + n = 100 + tau1 = 2 + tau2 = 2 + mu = 1.1 + nx.LFR_benchmark_graph(n, tau1, tau2, mu, min_degree=2) + + +def test_mu_too_small(): + with pytest.raises(nx.NetworkXError, match="mu must be in the interval \\[0, 1\\]"): + n = 100 + tau1 = 2 + tau2 = 2 + mu = -1 + nx.LFR_benchmark_graph(n, tau1, tau2, mu, min_degree=2) + + +def test_both_degrees_none(): + with pytest.raises( + nx.NetworkXError, + match="Must assign exactly one of min_degree and average_degree", + ): + n = 100 + tau1 = 2 + tau2 = 2 + mu = 1 + nx.LFR_benchmark_graph(n, tau1, tau2, mu) + + +def test_neither_degrees_none(): + with pytest.raises( + nx.NetworkXError, + match="Must assign exactly one of min_degree and average_degree", + ): + n = 100 + tau1 = 2 + tau2 = 2 + mu = 1 + nx.LFR_benchmark_graph(n, tau1, tau2, mu, min_degree=2, average_degree=5) + + +def test_max_iters_exceeded(): + with pytest.raises( + nx.ExceededMaxIterations, + match="Could not assign communities; try increasing min_community", + ): + n = 10 + tau1 = 2 + tau2 = 2 + mu = 0.1 + nx.LFR_benchmark_graph(n, tau1, tau2, mu, min_degree=2, max_iters=10, seed=1) + + +def test_max_deg_out_of_range(): + with pytest.raises( + nx.NetworkXError, match="max_degree must be in the interval \\(0, n\\]" + ): + n = 10 + tau1 = 2 + tau2 = 2 + mu = 0.1 + nx.LFR_benchmark_graph( + n, tau1, tau2, mu, max_degree=n + 1, max_iters=10, seed=1 + ) + + +def test_max_community(): + n = 250 + tau1 = 3 + tau2 = 1.5 + mu = 0.1 + G = nx.LFR_benchmark_graph( + n, + tau1, + tau2, + mu, + average_degree=5, + max_degree=100, + min_community=50, + max_community=200, + seed=10, + ) + assert len(G) == 250 + C = {frozenset(G.nodes[v]["community"]) for v in G} + assert nx.community.is_partition(G.nodes(), C) + + +def test_powerlaw_iterations_exceeded(): + with pytest.raises( + nx.ExceededMaxIterations, match="Could not create power law sequence" + ): + n = 100 + tau1 = 2 + tau2 = 2 + mu = 1 + nx.LFR_benchmark_graph(n, tau1, tau2, mu, min_degree=2, max_iters=0) + + +def test_no_scipy_zeta(): + zeta2 = 1.6449340668482264 + assert abs(zeta2 - nx.generators.community._hurwitz_zeta(2, 1, 0.0001)) < 0.01 + + +def test_generate_min_degree_itr(): + with pytest.raises( + nx.ExceededMaxIterations, match="Could not match average_degree" + ): + nx.generators.community._generate_min_degree(2, 2, 1, 0.01, 0) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_degree_seq.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_degree_seq.py new file mode 100644 index 0000000000000000000000000000000000000000..c7317cd564ed30430bd267e0bb355913cc69353d --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_degree_seq.py @@ -0,0 +1,224 @@ +import pytest + +import networkx as nx + + +class TestConfigurationModel: + """Unit tests for the :func:`~networkx.configuration_model` + function. + + """ + + def test_empty_degree_sequence(self): + """Tests that an empty degree sequence yields the null graph.""" + G = nx.configuration_model([]) + assert len(G) == 0 + + def test_degree_zero(self): + """Tests that a degree sequence of all zeros yields the empty + graph. + + """ + G = nx.configuration_model([0, 0, 0]) + assert len(G) == 3 + assert G.number_of_edges() == 0 + + def test_degree_sequence(self): + """Tests that the degree sequence of the generated graph matches + the input degree sequence. + + """ + deg_seq = [5, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1] + G = nx.configuration_model(deg_seq, seed=12345678) + assert sorted(dict(G.degree).values()) == sorted(deg_seq) + assert sorted(dict(G.degree(range(len(deg_seq)))).values()) == sorted(deg_seq) + + @pytest.mark.parametrize("seed", [10, 1000]) + def test_random_seed(self, seed): + """Tests that each call with the same random seed generates the + same graph. + + """ + deg_seq = [3] * 12 + G1 = nx.configuration_model(deg_seq, seed=seed) + G2 = nx.configuration_model(deg_seq, seed=seed) + assert nx.is_isomorphic(G1, G2) + + def test_directed_disallowed(self): + """Tests that attempting to create a configuration model graph + using a directed graph yields an exception. + + """ + with pytest.raises(nx.NetworkXNotImplemented): + nx.configuration_model([], create_using=nx.DiGraph()) + + def test_odd_degree_sum(self): + """Tests that a degree sequence whose sum is odd yields an + exception. + + """ + with pytest.raises(nx.NetworkXError): + nx.configuration_model([1, 2]) + + +def test_directed_configuration_raise_unequal(): + with pytest.raises(nx.NetworkXError): + zin = [5, 3, 3, 3, 3, 2, 2, 2, 1, 1] + zout = [5, 3, 3, 3, 3, 2, 2, 2, 1, 2] + nx.directed_configuration_model(zin, zout) + + +def test_directed_configuration_model(): + G = nx.directed_configuration_model([], [], seed=0) + assert len(G) == 0 + + +def test_simple_directed_configuration_model(): + G = nx.directed_configuration_model([1, 1], [1, 1], seed=0) + assert len(G) == 2 + + +def test_expected_degree_graph_empty(): + # empty graph has empty degree sequence + deg_seq = [] + G = nx.expected_degree_graph(deg_seq) + assert dict(G.degree()) == {} + + +@pytest.mark.parametrize("seed", [10, 42, 1000]) +@pytest.mark.parametrize("deg_seq", [[3] * 12, [2, 0], [10, 2, 2, 2, 2]]) +def test_expected_degree_graph(seed, deg_seq): + G1 = nx.expected_degree_graph(deg_seq, seed=seed) + G2 = nx.expected_degree_graph(deg_seq, seed=seed) + assert len(G1) == len(G2) == len(deg_seq) + assert nx.is_isomorphic(G1, G2) + + +def test_expected_degree_graph_selfloops(): + deg_seq = [3] * 12 + G1 = nx.expected_degree_graph(deg_seq, seed=1000, selfloops=False) + G2 = nx.expected_degree_graph(deg_seq, seed=1000, selfloops=False) + assert len(G1) == len(G2) == len(deg_seq) + assert nx.is_isomorphic(G1, G2) + assert nx.number_of_selfloops(G1) == nx.number_of_selfloops(G2) == 0 + + +def test_havel_hakimi_construction(): + G = nx.havel_hakimi_graph([]) + assert len(G) == 0 + + z = [1000, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1] + pytest.raises(nx.NetworkXError, nx.havel_hakimi_graph, z) + z = ["A", 3, 3, 3, 3, 2, 2, 2, 1, 1, 1] + pytest.raises(nx.NetworkXError, nx.havel_hakimi_graph, z) + + z = [5, 4, 3, 3, 3, 2, 2, 2] + G = nx.havel_hakimi_graph(z) + G = nx.configuration_model(z) + z = [6, 5, 4, 4, 2, 1, 1, 1] + pytest.raises(nx.NetworkXError, nx.havel_hakimi_graph, z) + + z = [10, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2] + + G = nx.havel_hakimi_graph(z) + + pytest.raises(nx.NetworkXError, nx.havel_hakimi_graph, z, create_using=nx.DiGraph()) + + +def test_directed_havel_hakimi(): + # Test range of valid directed degree sequences + n, r = 100, 10 + p = 1.0 / r + for i in range(r): + G1 = nx.erdos_renyi_graph(n, p * (i + 1), None, True) + din1 = [d for n, d in G1.in_degree()] + dout1 = [d for n, d in G1.out_degree()] + G2 = nx.directed_havel_hakimi_graph(din1, dout1) + din2 = [d for n, d in G2.in_degree()] + dout2 = [d for n, d in G2.out_degree()] + assert sorted(din1) == sorted(din2) + assert sorted(dout1) == sorted(dout2) + + # Test non-graphical sequence + dout = [1000, 3, 3, 3, 3, 2, 2, 2, 1, 1, 1] + din = [103, 102, 102, 102, 102, 102, 102, 102, 102, 102] + pytest.raises(nx.exception.NetworkXError, nx.directed_havel_hakimi_graph, din, dout) + # Test valid sequences + dout = [1, 1, 1, 1, 1, 2, 2, 2, 3, 4] + din = [2, 2, 2, 2, 2, 2, 2, 2, 0, 2] + G2 = nx.directed_havel_hakimi_graph(din, dout) + dout2 = (d for n, d in G2.out_degree()) + din2 = (d for n, d in G2.in_degree()) + assert sorted(dout) == sorted(dout2) + assert sorted(din) == sorted(din2) + # Test unequal sums + din = [2, 2, 2, 2, 2, 2, 2, 2, 2, 2] + pytest.raises(nx.exception.NetworkXError, nx.directed_havel_hakimi_graph, din, dout) + # Test for negative values + din = [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -2] + pytest.raises(nx.exception.NetworkXError, nx.directed_havel_hakimi_graph, din, dout) + + +@pytest.mark.parametrize( + "deg_seq", + [ + [0], + [1, 1], + [2, 2, 2, 1, 1], + [3, 1, 1, 1], + [4, 1, 1, 1, 1], + [1, 1, 1, 1, 1, 2, 2, 2, 3, 4], + ], +) +def test_degree_sequence_tree(deg_seq): + G = nx.degree_sequence_tree(deg_seq) + assert sorted(dict(G.degree).values()) == sorted(deg_seq) + assert nx.is_tree(G) + + +@pytest.mark.parametrize("graph_type", [nx.DiGraph, nx.MultiDiGraph]) +def test_degree_sequence_tree_directed(graph_type): + with pytest.raises(nx.NetworkXError, match="Directed Graph not supported"): + nx.degree_sequence_tree([1, 1], create_using=graph_type()) + + +@pytest.mark.parametrize( + "deg_seq", + [ + [1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 4], + [], + [2, 0], + [-1, 3], + [1, 16, 1, 4, 0, 0, 1, 1, 0, 1, 2, 0, 1, 0, 1, 5, 1, 2, 1, 0], + ], +) +def test_degree_sequence_tree_invalid_degree_sequence(deg_seq): + """Test invalid degree sequences raise an error.""" + with pytest.raises(nx.NetworkXError, match="tree must have"): + nx.degree_sequence_tree(deg_seq) + + +def test_random_degree_sequence_graph(): + d = [1, 2, 2, 3] + G = nx.random_degree_sequence_graph(d, seed=42) + assert d == sorted(d for n, d in G.degree()) + + +def test_random_degree_sequence_graph_raise(): + z = [1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 4] + pytest.raises(nx.NetworkXUnfeasible, nx.random_degree_sequence_graph, z) + + +def test_random_degree_sequence_large(): + G1 = nx.fast_gnp_random_graph(100, 0.1, seed=42) + d1 = [d for n, d in G1.degree()] + G2 = nx.random_degree_sequence_graph(d1, seed=42) + d2 = [d for n, d in G2.degree()] + assert sorted(d1) == sorted(d2) + + +def test_random_degree_sequence_iterator(): + G1 = nx.fast_gnp_random_graph(100, 0.1, seed=42) + d1 = (d for n, d in G1.degree()) + G2 = nx.random_degree_sequence_graph(d1, seed=42) + assert len(G2) > 0 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_directed.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_directed.py new file mode 100644 index 0000000000000000000000000000000000000000..93d48acfc296901dfeaf59c6b8f72ff4e293d9fd --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_directed.py @@ -0,0 +1,189 @@ +"""Generators - Directed Graphs +---------------------------- +""" + +import pytest + +import networkx as nx +from networkx.classes import Graph, MultiDiGraph +from networkx.generators.directed import ( + _random_k_out_graph_numpy, + _random_k_out_graph_python, + gn_graph, + gnc_graph, + gnr_graph, + random_k_out_graph, + random_uniform_k_out_graph, + scale_free_graph, +) + +try: + import numpy as np + + has_numpy = True +except ImportError: + has_numpy = False + + +class TestGeneratorsDirected: + def test_smoke_test_random_graphs(self): + gn_graph(100) + gnr_graph(100, 0.5) + gnc_graph(100) + scale_free_graph(100) + + gn_graph(100, seed=42) + gnr_graph(100, 0.5, seed=42) + gnc_graph(100, seed=42) + scale_free_graph(100, seed=42) + + def test_create_using_keyword_arguments(self): + pytest.raises(nx.NetworkXError, gn_graph, 100, create_using=Graph()) + pytest.raises(nx.NetworkXError, gnr_graph, 100, 0.5, create_using=Graph()) + pytest.raises(nx.NetworkXError, gnc_graph, 100, create_using=Graph()) + G = gn_graph(100, seed=1) + MG = gn_graph(100, create_using=MultiDiGraph(), seed=1) + assert sorted(G.edges()) == sorted(MG.edges()) + G = gnr_graph(100, 0.5, seed=1) + MG = gnr_graph(100, 0.5, create_using=MultiDiGraph(), seed=1) + assert sorted(G.edges()) == sorted(MG.edges()) + G = gnc_graph(100, seed=1) + MG = gnc_graph(100, create_using=MultiDiGraph(), seed=1) + assert sorted(G.edges()) == sorted(MG.edges()) + + G = scale_free_graph( + 100, + alpha=0.3, + beta=0.4, + gamma=0.3, + delta_in=0.3, + delta_out=0.1, + initial_graph=nx.cycle_graph(4, create_using=MultiDiGraph), + seed=1, + ) + pytest.raises(ValueError, scale_free_graph, 100, 0.5, 0.4, 0.3) + pytest.raises(ValueError, scale_free_graph, 100, alpha=-0.3) + pytest.raises(ValueError, scale_free_graph, 100, beta=-0.3) + pytest.raises(ValueError, scale_free_graph, 100, gamma=-0.3) + + def test_parameters(self): + G = nx.DiGraph() + G.add_node(0) + + def kernel(x): + return x + + assert nx.is_isomorphic(gn_graph(1), G) + assert nx.is_isomorphic(gn_graph(1, kernel=kernel), G) + assert nx.is_isomorphic(gnc_graph(1), G) + assert nx.is_isomorphic(gnr_graph(1, 0.5), G) + + +def test_scale_free_graph_negative_delta(): + with pytest.raises(ValueError, match="delta_in must be >= 0."): + scale_free_graph(10, delta_in=-1) + with pytest.raises(ValueError, match="delta_out must be >= 0."): + scale_free_graph(10, delta_out=-1) + + +def test_non_numeric_ordering(): + G = MultiDiGraph([("a", "b"), ("b", "c"), ("c", "a")]) + s = scale_free_graph(3, initial_graph=G) + assert len(s) == 3 + assert len(s.edges) == 3 + + +@pytest.mark.parametrize("ig", (nx.Graph(), nx.DiGraph([(0, 1)]))) +def test_scale_free_graph_initial_graph_kwarg(ig): + with pytest.raises(nx.NetworkXError): + scale_free_graph(100, initial_graph=ig) + + +class TestRandomKOutGraph: + """Unit tests for the + :func:`~networkx.generators.directed.random_k_out_graph` function. + + """ + + @pytest.fixture( + params=[ + pytest.param( + _random_k_out_graph_numpy, + marks=pytest.mark.skipif(not has_numpy, reason="numpy not installed"), + ), + _random_k_out_graph_python, + ] + ) + def f(self, request): + yield request.param + + @pytest.fixture(params=[(10, 3, 1), (20, 2, 4), (5, 1, 10)]) + def nkalpha(self, request): + yield request.param + + def test_regularity(self, f, nkalpha): + """Test that the generated graph is `k`-out-regular.""" + n, k, alpha = nkalpha + G = f(n, k, alpha, seed=42) + assert all(d == k for _, d in G.out_degree) + + def test_no_self_loops(self, f, nkalpha): + """Test for forbidding self-loops.""" + n, k, alpha = nkalpha + G = f(n, k, alpha, self_loops=False, seed=42) + assert nx.number_of_selfloops(G) == 0 + + def test_random_k_out_graph(self, nkalpha): + """Test that the interface function `random_k_out_graph` works correctly.""" + n, k, alpha = nkalpha + G = random_k_out_graph(n, k, alpha, seed=42) + assert len(G) == n + assert all(d == k for _, d in G.out_degree) + + def test_negative_alpha(self): + with pytest.raises(ValueError, match="alpha must be positive"): + random_k_out_graph(10, 3, -1) + + +class TestUniformRandomKOutGraph: + """Unit tests for the + :func:`~networkx.generators.directed.random_uniform_k_out_graph` + function. + + """ + + def test_regularity(self): + """Tests that the generated graph is `k`-out-regular.""" + n = 10 + k = 3 + G = random_uniform_k_out_graph(n, k) + assert all(d == k for v, d in G.out_degree()) + G = random_uniform_k_out_graph(n, k, seed=42) + assert all(d == k for v, d in G.out_degree()) + + def test_no_self_loops(self): + """Tests for forbidding self-loops.""" + n = 10 + k = 3 + G = random_uniform_k_out_graph(n, k, self_loops=False) + assert nx.number_of_selfloops(G) == 0 + assert all(d == k for v, d in G.out_degree()) + + def test_with_replacement(self): + n = 10 + k = 3 + G = random_uniform_k_out_graph(n, k, with_replacement=True) + assert G.is_multigraph() + assert all(d == k for v, d in G.out_degree()) + n = 10 + k = 9 + G = random_uniform_k_out_graph(n, k, with_replacement=False, self_loops=False) + assert nx.number_of_selfloops(G) == 0 + assert all(d == k for v, d in G.out_degree()) + + def test_without_replacement(self): + n = 10 + k = 3 + G = random_uniform_k_out_graph(n, k, with_replacement=False) + assert not G.is_multigraph() + assert all(d == k for v, d in G.out_degree()) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_duplication.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_duplication.py new file mode 100644 index 0000000000000000000000000000000000000000..9b6100b78e59067b607e310f14d80e5a00c2b691 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_duplication.py @@ -0,0 +1,103 @@ +"""Unit tests for the :mod:`networkx.generators.duplication` module.""" + +import pytest + +import networkx as nx + + +class TestDuplicationDivergenceGraph: + """Unit tests for the + :func:`networkx.generators.duplication.duplication_divergence_graph` + function. + + """ + + def test_final_size(self): + G = nx.duplication_divergence_graph(3, p=1) + assert len(G) == 3 + G = nx.duplication_divergence_graph(3, p=1, seed=42) + assert len(G) == 3 + + def test_probability_too_large(self): + with pytest.raises(nx.NetworkXError): + nx.duplication_divergence_graph(3, p=2) + + def test_probability_too_small(self): + with pytest.raises(nx.NetworkXError): + nx.duplication_divergence_graph(3, p=-1) + + def test_non_extreme_probability_value(self): + G = nx.duplication_divergence_graph(6, p=0.3, seed=42) + assert len(G) == 6 + assert list(G.degree()) == [(0, 2), (1, 3), (2, 2), (3, 3), (4, 1), (5, 1)] + + def test_minimum_desired_nodes(self): + with pytest.raises( + nx.NetworkXError, match=".*n must be greater than or equal to 2" + ): + nx.duplication_divergence_graph(1, p=1) + + def test_create_using(self): + class DummyGraph(nx.Graph): + pass + + class DummyDiGraph(nx.DiGraph): + pass + + G = nx.duplication_divergence_graph(6, 0.3, seed=42, create_using=DummyGraph) + assert isinstance(G, DummyGraph) + with pytest.raises(nx.NetworkXError, match="create_using must not be directed"): + nx.duplication_divergence_graph(6, 0.3, seed=42, create_using=DummyDiGraph) + + +class TestPartialDuplicationGraph: + """Unit tests for the + :func:`networkx.generators.duplication.partial_duplication_graph` + function. + + """ + + def test_final_size(self): + N = 10 + n = 5 + p = 0.5 + q = 0.5 + G = nx.partial_duplication_graph(N, n, p, q) + assert len(G) == N + G = nx.partial_duplication_graph(N, n, p, q, seed=42) + assert len(G) == N + + def test_initial_clique_size(self): + N = 10 + n = 10 + p = 0.5 + q = 0.5 + G = nx.partial_duplication_graph(N, n, p, q) + assert len(G) == n + + def test_invalid_initial_size(self): + with pytest.raises(nx.NetworkXError): + N = 5 + n = 10 + p = 0.5 + q = 0.5 + G = nx.partial_duplication_graph(N, n, p, q) + + def test_invalid_probabilities(self): + N = 1 + n = 1 + for p, q in [(0.5, 2), (0.5, -1), (2, 0.5), (-1, 0.5)]: + args = (N, n, p, q) + pytest.raises(nx.NetworkXError, nx.partial_duplication_graph, *args) + + def test_create_using(self): + class DummyGraph(nx.Graph): + pass + + class DummyDiGraph(nx.DiGraph): + pass + + G = nx.partial_duplication_graph(10, 5, 0.5, 0.5, create_using=DummyGraph) + assert isinstance(G, DummyGraph) + with pytest.raises(nx.NetworkXError, match="create_using must not be directed"): + nx.partial_duplication_graph(10, 5, 0.5, 0.5, create_using=DummyDiGraph) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_ego.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_ego.py new file mode 100644 index 0000000000000000000000000000000000000000..f6fc779548a3fd2e049679987f941b2bc211c2d0 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_ego.py @@ -0,0 +1,39 @@ +""" +ego graph +--------- +""" + +import networkx as nx +from networkx.utils import edges_equal, nodes_equal + + +class TestGeneratorEgo: + def test_ego(self): + G = nx.star_graph(3) + H = nx.ego_graph(G, 0) + assert nx.is_isomorphic(G, H) + G.add_edge(1, 11) + G.add_edge(2, 22) + G.add_edge(3, 33) + H = nx.ego_graph(G, 0) + assert nx.is_isomorphic(nx.star_graph(3), H) + G = nx.path_graph(3) + H = nx.ego_graph(G, 0) + assert edges_equal(H.edges(), [(0, 1)]) + H = nx.ego_graph(G, 0, undirected=True) + assert edges_equal(H.edges(), [(0, 1)]) + H = nx.ego_graph(G, 0, center=False) + assert edges_equal(H.edges(), []) + + def test_ego_distance(self): + G = nx.Graph() + G.add_edge(0, 1, weight=2, distance=1) + G.add_edge(1, 2, weight=2, distance=2) + G.add_edge(2, 3, weight=2, distance=1) + assert nodes_equal(nx.ego_graph(G, 0, radius=3).nodes(), [0, 1, 2, 3]) + eg = nx.ego_graph(G, 0, radius=3, distance="weight") + assert nodes_equal(eg.nodes(), [0, 1]) + eg = nx.ego_graph(G, 0, radius=3, distance="weight", undirected=True) + assert nodes_equal(eg.nodes(), [0, 1]) + eg = nx.ego_graph(G, 0, radius=3, distance="distance") + assert nodes_equal(eg.nodes(), [0, 1, 2]) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_expanders.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_expanders.py new file mode 100644 index 0000000000000000000000000000000000000000..d742b88f3778fe718c6c53f804f9b938fdb89481 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_expanders.py @@ -0,0 +1,182 @@ +"""Unit tests for the :mod:`networkx.generators.expanders` module.""" + +import pytest + +import networkx as nx + + +@pytest.mark.parametrize("n", (2, 3, 5, 6, 10)) +def test_margulis_gabber_galil_graph_properties(n): + g = nx.margulis_gabber_galil_graph(n) + assert g.number_of_nodes() == n * n + for node in g: + assert g.degree(node) == 8 + assert len(node) == 2 + for i in node: + assert int(i) == i + assert 0 <= i < n + + +@pytest.mark.parametrize("n", (2, 3, 5, 6, 10)) +def test_margulis_gabber_galil_graph_eigvals(n): + np = pytest.importorskip("numpy") + sp = pytest.importorskip("scipy") + + g = nx.margulis_gabber_galil_graph(n) + # Eigenvalues are already sorted using the scipy eigvalsh, + # but the implementation in numpy does not guarantee order. + w = sorted(sp.linalg.eigvalsh(nx.adjacency_matrix(g).toarray())) + assert w[-2] < 5 * np.sqrt(2) + + +@pytest.mark.parametrize("p", (3, 5, 7, 11)) # Primes +def test_chordal_cycle_graph(p): + """Test for the :func:`networkx.chordal_cycle_graph` function.""" + G = nx.chordal_cycle_graph(p) + assert len(G) == p + # TODO The second largest eigenvalue should be smaller than a constant, + # independent of the number of nodes in the graph: + # + # eigs = sorted(sp.linalg.eigvalsh(nx.adjacency_matrix(G).toarray())) + # assert_less(eigs[-2], ...) + # + + +@pytest.mark.parametrize("p", (3, 5, 7, 11, 13)) # Primes +def test_paley_graph(p): + """Test for the :func:`networkx.paley_graph` function.""" + G = nx.paley_graph(p) + # G has p nodes + assert len(G) == p + # G is (p-1)/2-regular + in_degrees = {G.in_degree(node) for node in G.nodes} + out_degrees = {G.out_degree(node) for node in G.nodes} + assert len(in_degrees) == 1 and in_degrees.pop() == (p - 1) // 2 + assert len(out_degrees) == 1 and out_degrees.pop() == (p - 1) // 2 + + # If p = 1 mod 4, -1 is a square mod 4 and therefore the + # edge in the Paley graph are symmetric. + if p % 4 == 1: + for u, v in G.edges: + assert (v, u) in G.edges + + +@pytest.mark.parametrize("d, n", [(2, 7), (4, 10), (4, 16)]) +def test_maybe_regular_expander_graph(d, n): + pytest.importorskip("numpy") + G = nx.maybe_regular_expander_graph(n, d, seed=1729) + + assert len(G) == n, "Should have n nodes" + assert len(G.edges) == n * d / 2, "Should have n*d/2 edges" + assert nx.is_k_regular(G, d), "Should be d-regular" + + +def test_maybe_regular_expander_graph_max_tries(): + pytest.importorskip("numpy") + d, n = 4, 10 + msg = "Too many iterations in maybe_regular_expander_graph" + with pytest.raises(nx.NetworkXError, match=msg): + nx.maybe_regular_expander_graph(n, d, max_tries=100, seed=6818) # See gh-8048 + + nx.maybe_regular_expander_graph(n, d, max_tries=130, seed=6818) + + +def test_maybe_regular_expander_deprecated(): + pytest.importorskip("numpy") + d, n = 2, 7 + with pytest.deprecated_call(): + G = nx.maybe_regular_expander(n, d, seed=1729) + + assert len(G) == n, "Should have n nodes" + assert len(G.edges) == n * d / 2, "Should have n*d/2 edges" + assert nx.is_k_regular(G, d), "Should be d-regular" + + +@pytest.mark.parametrize("n", (3, 5, 6, 10)) +def test_is_regular_expander(n): + pytest.importorskip("numpy") + pytest.importorskip("scipy") + G = nx.complete_graph(n) + + assert nx.is_regular_expander(G), "Should be a regular expander" + + +@pytest.mark.parametrize("d, n", [(2, 7), (4, 10), (4, 16), (4, 2000)]) +def test_random_regular_expander(d, n): + pytest.importorskip("numpy") + pytest.importorskip("scipy") + G = nx.random_regular_expander_graph(n, d, seed=1729) + + assert len(G) == n, "Should have n nodes" + assert len(G.edges) == n * d / 2, "Should have n*d/2 edges" + assert nx.is_k_regular(G, d), "Should be d-regular" + assert nx.is_regular_expander(G), "Should be a regular expander" + + +def test_random_regular_expander_explicit_construction(): + pytest.importorskip("numpy") + pytest.importorskip("scipy") + G = nx.random_regular_expander_graph(d=4, n=5, seed=1729) + + assert len(G) == 5 and len(G.edges) == 10, "Should be a complete graph" + + +@pytest.mark.parametrize("graph_type", (nx.Graph, nx.DiGraph, nx.MultiDiGraph)) +def test_margulis_gabber_galil_graph_badinput(graph_type): + with pytest.raises( + nx.NetworkXError, match="`create_using` must be an undirected multigraph" + ): + nx.margulis_gabber_galil_graph(3, create_using=graph_type) + + +@pytest.mark.parametrize("graph_type", (nx.Graph, nx.DiGraph, nx.MultiDiGraph)) +def test_chordal_cycle_graph_badinput(graph_type): + with pytest.raises( + nx.NetworkXError, match="`create_using` must be an undirected multigraph" + ): + nx.chordal_cycle_graph(3, create_using=graph_type) + + +def test_paley_graph_badinput(): + with pytest.raises( + nx.NetworkXError, match="`create_using` cannot be a multigraph." + ): + nx.paley_graph(3, create_using=nx.MultiGraph) + + +def test_maybe_regular_expander_graph_badinput(): + pytest.importorskip("numpy") + + with pytest.raises(nx.NetworkXError, match="n must be a positive integer"): + nx.maybe_regular_expander_graph(n=-1, d=2) + + with pytest.raises(nx.NetworkXError, match="d must be greater than or equal to 2"): + nx.maybe_regular_expander_graph(n=10, d=0) + + with pytest.raises(nx.NetworkXError, match="Need n-1>= d to have room"): + nx.maybe_regular_expander_graph(n=5, d=6) + + +def test_is_regular_expander_badinput(): + pytest.importorskip("numpy") + pytest.importorskip("scipy") + + with pytest.raises(nx.NetworkXError, match="epsilon must be non negative"): + nx.is_regular_expander(nx.Graph(), epsilon=-1) + + +def test_random_regular_expander_badinput(): + pytest.importorskip("numpy") + pytest.importorskip("scipy") + + with pytest.raises(nx.NetworkXError, match="n must be a positive integer"): + nx.random_regular_expander_graph(n=-1, d=2) + + with pytest.raises(nx.NetworkXError, match="d must be greater than or equal to 2"): + nx.random_regular_expander_graph(n=10, d=0) + + with pytest.raises(nx.NetworkXError, match="Need n-1>= d to have room"): + nx.random_regular_expander_graph(n=5, d=6) + + with pytest.raises(nx.NetworkXError, match="epsilon must be non negative"): + nx.random_regular_expander_graph(n=4, d=2, epsilon=-1) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_geometric.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_geometric.py new file mode 100644 index 0000000000000000000000000000000000000000..f1c68bead51b75e7a39484164cc484cbd4e5def8 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_geometric.py @@ -0,0 +1,488 @@ +import math +import random +from itertools import combinations + +import pytest + +import networkx as nx + + +def l1dist(x, y): + return sum(abs(a - b) for a, b in zip(x, y)) + + +class TestRandomGeometricGraph: + """Unit tests for :func:`~networkx.random_geometric_graph`""" + + def test_number_of_nodes(self): + G = nx.random_geometric_graph(50, 0.25, seed=42) + assert len(G) == 50 + G = nx.random_geometric_graph(range(50), 0.25, seed=42) + assert len(G) == 50 + + def test_distances(self): + """Tests that pairs of vertices adjacent if and only if they are + within the prescribed radius. + """ + # Use the Euclidean metric, the default according to the + # documentation. + G = nx.random_geometric_graph(50, 0.25) + for u, v in combinations(G, 2): + # Adjacent vertices must be within the given distance. + if v in G[u]: + assert math.dist(G.nodes[u]["pos"], G.nodes[v]["pos"]) <= 0.25 + # Nonadjacent vertices must be at greater distance. + else: + assert not math.dist(G.nodes[u]["pos"], G.nodes[v]["pos"]) <= 0.25 + + def test_p(self): + """Tests for providing an alternate distance metric to the generator.""" + # Use the L1 metric. + G = nx.random_geometric_graph(50, 0.25, p=1) + for u, v in combinations(G, 2): + # Adjacent vertices must be within the given distance. + if v in G[u]: + assert l1dist(G.nodes[u]["pos"], G.nodes[v]["pos"]) <= 0.25 + # Nonadjacent vertices must be at greater distance. + else: + assert not l1dist(G.nodes[u]["pos"], G.nodes[v]["pos"]) <= 0.25 + + def test_node_names(self): + """Tests using values other than sequential numbers as node IDs.""" + import string + + nodes = list(string.ascii_lowercase) + G = nx.random_geometric_graph(nodes, 0.25) + assert len(G) == len(nodes) + + for u, v in combinations(G, 2): + # Adjacent vertices must be within the given distance. + if v in G[u]: + assert math.dist(G.nodes[u]["pos"], G.nodes[v]["pos"]) <= 0.25 + # Nonadjacent vertices must be at greater distance. + else: + assert not math.dist(G.nodes[u]["pos"], G.nodes[v]["pos"]) <= 0.25 + + def test_pos_name(self): + G = nx.random_geometric_graph(50, 0.25, seed=42, pos_name="coords") + assert all(len(d["coords"]) == 2 for n, d in G.nodes.items()) + + +class TestSoftRandomGeometricGraph: + """Unit tests for :func:`~networkx.soft_random_geometric_graph`""" + + def test_number_of_nodes(self): + G = nx.soft_random_geometric_graph(50, 0.25, seed=42) + assert len(G) == 50 + G = nx.soft_random_geometric_graph(range(50), 0.25, seed=42) + assert len(G) == 50 + + def test_distances(self): + """Tests that pairs of vertices adjacent if and only if they are + within the prescribed radius. + """ + # Use the Euclidean metric, the default according to the + # documentation. + G = nx.soft_random_geometric_graph(50, 0.25) + for u, v in combinations(G, 2): + # Adjacent vertices must be within the given distance. + if v in G[u]: + assert math.dist(G.nodes[u]["pos"], G.nodes[v]["pos"]) <= 0.25 + + def test_p(self): + """Tests for providing an alternate distance metric to the generator.""" + + # Use the L1 metric. + def dist(x, y): + return sum(abs(a - b) for a, b in zip(x, y)) + + G = nx.soft_random_geometric_graph(50, 0.25, p=1) + for u, v in combinations(G, 2): + # Adjacent vertices must be within the given distance. + if v in G[u]: + assert dist(G.nodes[u]["pos"], G.nodes[v]["pos"]) <= 0.25 + + def test_node_names(self): + """Tests using values other than sequential numbers as node IDs.""" + import string + + nodes = list(string.ascii_lowercase) + G = nx.soft_random_geometric_graph(nodes, 0.25) + assert len(G) == len(nodes) + + for u, v in combinations(G, 2): + # Adjacent vertices must be within the given distance. + if v in G[u]: + assert math.dist(G.nodes[u]["pos"], G.nodes[v]["pos"]) <= 0.25 + + def test_p_dist_default(self): + """Tests default p_dict = 0.5 returns graph with edge count <= RGG with + same n, radius, dim and positions + """ + nodes = 50 + dim = 2 + pos = {v: [random.random() for i in range(dim)] for v in range(nodes)} + RGG = nx.random_geometric_graph(50, 0.25, pos=pos) + SRGG = nx.soft_random_geometric_graph(50, 0.25, pos=pos) + assert len(SRGG.edges()) <= len(RGG.edges()) + + def test_p_dist_zero(self): + """Tests if p_dict = 0 returns disconnected graph with 0 edges""" + + def p_dist(dist): + return 0 + + G = nx.soft_random_geometric_graph(50, 0.25, p_dist=p_dist) + assert len(G.edges) == 0 + + def test_pos_name(self): + G = nx.soft_random_geometric_graph(50, 0.25, seed=42, pos_name="coords") + assert all(len(d["coords"]) == 2 for n, d in G.nodes.items()) + + +def join(G, u, v, theta, alpha, metric): + """Returns ``True`` if and only if the nodes whose attributes are + ``du`` and ``dv`` should be joined, according to the threshold + condition for geographical threshold graphs. + + ``G`` is an undirected NetworkX graph, and ``u`` and ``v`` are nodes + in that graph. The nodes must have node attributes ``'pos'`` and + ``'weight'``. + + ``metric`` is a distance metric. + """ + du, dv = G.nodes[u], G.nodes[v] + u_pos, v_pos = du["pos"], dv["pos"] + u_weight, v_weight = du["weight"], dv["weight"] + return (u_weight + v_weight) * metric(u_pos, v_pos) ** alpha >= theta + + +class TestGeographicalThresholdGraph: + """Unit tests for :func:`~networkx.geographical_threshold_graph`""" + + def test_number_of_nodes(self): + G = nx.geographical_threshold_graph(50, 100, seed=42) + assert len(G) == 50 + G = nx.geographical_threshold_graph(range(50), 100, seed=42) + assert len(G) == 50 + + def test_distances(self): + """Tests that pairs of vertices adjacent if and only if their + distances meet the given threshold. + """ + # Use the Euclidean metric and alpha = -2 + # the default according to the documentation. + G = nx.geographical_threshold_graph(50, 10) + for u, v in combinations(G, 2): + # Adjacent vertices must exceed the threshold. + if v in G[u]: + assert join(G, u, v, 10, -2, math.dist) + # Nonadjacent vertices must not exceed the threshold. + else: + assert not join(G, u, v, 10, -2, math.dist) + + def test_metric(self): + """Tests for providing an alternate distance metric to the generator.""" + # Use the L1 metric. + G = nx.geographical_threshold_graph(50, 10, metric=l1dist) + for u, v in combinations(G, 2): + # Adjacent vertices must exceed the threshold. + if v in G[u]: + assert join(G, u, v, 10, -2, l1dist) + # Nonadjacent vertices must not exceed the threshold. + else: + assert not join(G, u, v, 10, -2, l1dist) + + def test_p_dist_zero(self): + """Tests if p_dict = 0 returns disconnected graph with 0 edges""" + + def p_dist(dist): + return 0 + + G = nx.geographical_threshold_graph(50, 1, p_dist=p_dist) + assert len(G.edges) == 0 + + def test_pos_weight_name(self): + gtg = nx.geographical_threshold_graph + G = gtg(50, 100, seed=42, pos_name="coords", weight_name="wt") + assert all(len(d["coords"]) == 2 for n, d in G.nodes.items()) + assert all(d["wt"] > 0 for n, d in G.nodes.items()) + + +class TestWaxmanGraph: + """Unit tests for the :func:`~networkx.waxman_graph` function.""" + + def test_number_of_nodes_1(self): + G = nx.waxman_graph(50, 0.5, 0.1, seed=42) + assert len(G) == 50 + G = nx.waxman_graph(range(50), 0.5, 0.1, seed=42) + assert len(G) == 50 + + def test_number_of_nodes_2(self): + G = nx.waxman_graph(50, 0.5, 0.1, L=1) + assert len(G) == 50 + G = nx.waxman_graph(range(50), 0.5, 0.1, L=1) + assert len(G) == 50 + + def test_metric(self): + """Tests for providing an alternate distance metric to the generator.""" + # Use the L1 metric. + G = nx.waxman_graph(50, 0.5, 0.1, metric=l1dist) + assert len(G) == 50 + + def test_pos_name(self): + G = nx.waxman_graph(50, 0.5, 0.1, seed=42, pos_name="coords") + assert all(len(d["coords"]) == 2 for n, d in G.nodes.items()) + + +class TestNavigableSmallWorldGraph: + def test_navigable_small_world(self): + G = nx.navigable_small_world_graph(5, p=1, q=0, seed=42) + gg = nx.grid_2d_graph(5, 5).to_directed() + assert nx.is_isomorphic(G, gg) + + G = nx.navigable_small_world_graph(5, p=1, q=0, dim=3) + gg = nx.grid_graph([5, 5, 5]).to_directed() + assert nx.is_isomorphic(G, gg) + + G = nx.navigable_small_world_graph(5, p=1, q=0, dim=1) + gg = nx.grid_graph([5]).to_directed() + assert nx.is_isomorphic(G, gg) + + def test_invalid_diameter_value(self): + with pytest.raises(nx.NetworkXException, match=".*p must be >= 1"): + nx.navigable_small_world_graph(5, p=0, q=0, dim=1) + + def test_invalid_long_range_connections_value(self): + with pytest.raises(nx.NetworkXException, match=".*q must be >= 0"): + nx.navigable_small_world_graph(5, p=1, q=-1, dim=1) + + def test_invalid_exponent_for_decaying_probability_value(self): + with pytest.raises(nx.NetworkXException, match=".*r must be >= 0"): + nx.navigable_small_world_graph(5, p=1, q=0, r=-1, dim=1) + + def test_r_between_0_and_1(self): + """Smoke test for radius in range [0, 1]""" + # q=0 means no long-range connections + G = nx.navigable_small_world_graph(3, p=1, q=0, r=0.5, dim=2, seed=42) + expected = nx.grid_2d_graph(3, 3, create_using=nx.DiGraph) + assert nx.utils.graphs_equal(G, expected) + + @pytest.mark.parametrize("seed", range(2478, 2578, 10)) + def test_r_general_scaling(self, seed): + """The probability of adding a long-range edge scales with `1 / dist**r`, + so a navigable_small_world graph created with r < 1 should generally + result in more edges than a navigable_small_world graph with r >= 1 + (for 0 < q << n). + + N.B. this is probabilistic, so this test may not hold for all seeds.""" + G1 = nx.navigable_small_world_graph(7, q=3, r=0.5, seed=seed) + G2 = nx.navigable_small_world_graph(7, q=3, r=1, seed=seed) + G3 = nx.navigable_small_world_graph(7, q=3, r=2, seed=seed) + assert G1.number_of_edges() > G2.number_of_edges() + assert G2.number_of_edges() > G3.number_of_edges() + + +class TestThresholdedRandomGeometricGraph: + """Unit tests for :func:`~networkx.thresholded_random_geometric_graph`""" + + def test_number_of_nodes(self): + G = nx.thresholded_random_geometric_graph(50, 0.2, 0.1, seed=42) + assert len(G) == 50 + G = nx.thresholded_random_geometric_graph(range(50), 0.2, 0.1, seed=42) + assert len(G) == 50 + + def test_distances(self): + """Tests that pairs of vertices adjacent if and only if they are + within the prescribed radius. + """ + # Use the Euclidean metric, the default according to the + # documentation. + G = nx.thresholded_random_geometric_graph(50, 0.25, 0.1, seed=42) + for u, v in combinations(G, 2): + # Adjacent vertices must be within the given distance. + if v in G[u]: + assert math.dist(G.nodes[u]["pos"], G.nodes[v]["pos"]) <= 0.25 + + def test_p(self): + """Tests for providing an alternate distance metric to the generator.""" + + # Use the L1 metric. + def dist(x, y): + return sum(abs(a - b) for a, b in zip(x, y)) + + G = nx.thresholded_random_geometric_graph(50, 0.25, 0.1, p=1, seed=42) + for u, v in combinations(G, 2): + # Adjacent vertices must be within the given distance. + if v in G[u]: + assert dist(G.nodes[u]["pos"], G.nodes[v]["pos"]) <= 0.25 + + def test_node_names(self): + """Tests using values other than sequential numbers as node IDs.""" + import string + + nodes = list(string.ascii_lowercase) + G = nx.thresholded_random_geometric_graph(nodes, 0.25, 0.1, seed=42) + assert len(G) == len(nodes) + + for u, v in combinations(G, 2): + # Adjacent vertices must be within the given distance. + if v in G[u]: + assert math.dist(G.nodes[u]["pos"], G.nodes[v]["pos"]) <= 0.25 + + def test_theta(self): + """Tests that pairs of vertices adjacent if and only if their sum + weights exceeds the threshold parameter theta. + """ + G = nx.thresholded_random_geometric_graph(50, 0.25, 0.1, seed=42) + + for u, v in combinations(G, 2): + # Adjacent vertices must be within the given distance. + if v in G[u]: + assert (G.nodes[u]["weight"] + G.nodes[v]["weight"]) >= 0.1 + + def test_pos_name(self): + trgg = nx.thresholded_random_geometric_graph + G = trgg(50, 0.25, 0.1, seed=42, pos_name="p", weight_name="wt") + assert all(len(d["p"]) == 2 for n, d in G.nodes.items()) + assert all(d["wt"] > 0 for n, d in G.nodes.items()) + + +def test_geometric_edges_pos_attribute(): + G = nx.Graph() + G.add_nodes_from( + [ + (0, {"position": (0, 0)}), + (1, {"position": (0, 1)}), + (2, {"position": (1, 0)}), + ] + ) + expected_edges = [(0, 1), (0, 2)] + assert expected_edges == nx.geometric_edges(G, radius=1, pos_name="position") + + +def test_geometric_edges_raises_no_pos(): + G = nx.path_graph(3) + msg = "all nodes. must have a '" + with pytest.raises(nx.NetworkXError, match=msg): + nx.geometric_edges(G, radius=1) + + +def test_number_of_nodes_S1(): + G = nx.geometric_soft_configuration_graph( + beta=1.5, n=100, gamma=2.7, mean_degree=10, seed=42 + ) + assert len(G) == 100 + + +def test_set_attributes_S1(): + G = nx.geometric_soft_configuration_graph( + beta=1.5, n=100, gamma=2.7, mean_degree=10, seed=42 + ) + kappas = nx.get_node_attributes(G, "kappa") + assert len(kappas) == 100 + thetas = nx.get_node_attributes(G, "theta") + assert len(thetas) == 100 + radii = nx.get_node_attributes(G, "radius") + assert len(radii) == 100 + + +def test_mean_kappas_mean_degree_S1(): + G = nx.geometric_soft_configuration_graph( + beta=2.5, n=50, gamma=2.7, mean_degree=10, seed=8023 + ) + + kappas = nx.get_node_attributes(G, "kappa") + mean_kappas = sum(kappas.values()) / len(kappas) + assert math.fabs(mean_kappas - 10) < 0.5 + + degrees = dict(G.degree()) + mean_degree = sum(degrees.values()) / len(degrees) + assert math.fabs(mean_degree - 10) < 1 + + +def test_dict_kappas_S1(): + kappas = {i: 10 for i in range(1000)} + G = nx.geometric_soft_configuration_graph(beta=1, kappas=kappas) + assert len(G) == 1000 + kappas = nx.get_node_attributes(G, "kappa") + assert all(kappa == 10 for kappa in kappas.values()) + + +def test_beta_clustering_S1(): + G1 = nx.geometric_soft_configuration_graph( + beta=1.5, n=100, gamma=3.5, mean_degree=10, seed=42 + ) + G2 = nx.geometric_soft_configuration_graph( + beta=3.0, n=100, gamma=3.5, mean_degree=10, seed=42 + ) + assert nx.average_clustering(G1) < nx.average_clustering(G2) + + +def test_wrong_parameters_S1(): + with pytest.raises( + nx.NetworkXError, + match="Please provide either kappas, or all 3 of: n, gamma and mean_degree.", + ): + G = nx.geometric_soft_configuration_graph( + beta=1.5, gamma=3.5, mean_degree=10, seed=42 + ) + + with pytest.raises( + nx.NetworkXError, + match="When kappas is input, n, gamma and mean_degree must not be.", + ): + kappas = {i: 10 for i in range(1000)} + G = nx.geometric_soft_configuration_graph( + beta=1.5, kappas=kappas, gamma=2.3, seed=42 + ) + + with pytest.raises( + nx.NetworkXError, + match="Please provide either kappas, or all 3 of: n, gamma and mean_degree.", + ): + G = nx.geometric_soft_configuration_graph(beta=1.5, seed=42) + + +def test_negative_beta_S1(): + with pytest.raises( + nx.NetworkXError, match="The parameter beta cannot be smaller or equal to 0." + ): + G = nx.geometric_soft_configuration_graph( + beta=-1, n=100, gamma=2.3, mean_degree=10, seed=42 + ) + + +def test_non_zero_clustering_beta_lower_one_S1(): + G = nx.geometric_soft_configuration_graph( + beta=0.5, n=100, gamma=3.5, mean_degree=10, seed=42 + ) + assert nx.average_clustering(G) > 0 + + +def test_mean_degree_influence_on_connectivity_S1(): + low_mean_degree = 2 + high_mean_degree = 20 + G_low = nx.geometric_soft_configuration_graph( + beta=1.2, n=100, gamma=2.7, mean_degree=low_mean_degree, seed=42 + ) + G_high = nx.geometric_soft_configuration_graph( + beta=1.2, n=100, gamma=2.7, mean_degree=high_mean_degree, seed=42 + ) + assert nx.number_connected_components(G_low) > nx.number_connected_components( + G_high + ) + + +def test_compare_mean_kappas_different_gammas_S1(): + G1 = nx.geometric_soft_configuration_graph( + beta=1.5, n=20, gamma=2.7, mean_degree=5, seed=42 + ) + G2 = nx.geometric_soft_configuration_graph( + beta=1.5, n=20, gamma=3.5, mean_degree=5, seed=42 + ) + kappas1 = nx.get_node_attributes(G1, "kappa") + mean_kappas1 = sum(kappas1.values()) / len(kappas1) + kappas2 = nx.get_node_attributes(G2, "kappa") + mean_kappas2 = sum(kappas2.values()) / len(kappas2) + assert math.fabs(mean_kappas1 - mean_kappas2) < 1 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_harary_graph.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_harary_graph.py new file mode 100644 index 0000000000000000000000000000000000000000..8a0142df2a4340bc81d7dc25f05ea5d57e8f2d16 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_harary_graph.py @@ -0,0 +1,133 @@ +"""Unit tests for the :mod:`networkx.generators.harary_graph` module.""" + +import pytest + +import networkx as nx +from networkx.algorithms.isomorphism.isomorph import is_isomorphic +from networkx.generators.harary_graph import hkn_harary_graph, hnm_harary_graph + + +class TestHararyGraph: + """ + Suppose n nodes, m >= n-1 edges, d = 2m // n, r = 2m % n + """ + + def test_hnm_harary_graph(self): + # When d is even and r = 0, the hnm_harary_graph(n,m) is + # the circulant_graph(n, list(range(1,d/2+1))) + for n, m in [(5, 5), (6, 12), (7, 14)]: + G1 = hnm_harary_graph(n, m) + d = 2 * m // n + G2 = nx.circulant_graph(n, list(range(1, d // 2 + 1))) + assert is_isomorphic(G1, G2) + + # When d is even and r > 0, the hnm_harary_graph(n,m) is + # the circulant_graph(n, list(range(1,d/2+1))) + # with r edges added arbitrarily + for n, m in [(5, 7), (6, 13), (7, 16)]: + G1 = hnm_harary_graph(n, m) + d = 2 * m // n + G2 = nx.circulant_graph(n, list(range(1, d // 2 + 1))) + assert set(G2.edges) < set(G1.edges) + assert G1.number_of_edges() == m + + # When d is odd and n is even and r = 0, the hnm_harary_graph(n,m) + # is the circulant_graph(n, list(range(1,(d+1)/2) plus [n//2]) + for n, m in [(6, 9), (8, 12), (10, 15)]: + G1 = hnm_harary_graph(n, m) + d = 2 * m // n + L = list(range(1, (d + 1) // 2)) + L.append(n // 2) + G2 = nx.circulant_graph(n, L) + assert is_isomorphic(G1, G2) + + # When d is odd and n is even and r > 0, the hnm_harary_graph(n,m) + # is the circulant_graph(n, list(range(1,(d+1)/2) plus [n//2]) + # with r edges added arbitrarily + for n, m in [(6, 10), (8, 13), (10, 17)]: + G1 = hnm_harary_graph(n, m) + d = 2 * m // n + L = list(range(1, (d + 1) // 2)) + L.append(n // 2) + G2 = nx.circulant_graph(n, L) + assert set(G2.edges) < set(G1.edges) + assert G1.number_of_edges() == m + + # When d is odd and n is odd, the hnm_harary_graph(n,m) is + # the circulant_graph(n, list(range(1,(d+1)/2)) + # with m - n*(d-1)/2 edges added arbitrarily + for n, m in [(5, 4), (7, 12), (9, 14)]: + G1 = hnm_harary_graph(n, m) + d = 2 * m // n + L = list(range(1, (d + 1) // 2)) + G2 = nx.circulant_graph(n, L) + assert set(G2.edges) < set(G1.edges) + assert G1.number_of_edges() == m + + # Raise NetworkXError if n<1 + n = 0 + m = 0 + pytest.raises(nx.NetworkXError, hnm_harary_graph, n, m) + + # Raise NetworkXError if m < n-1 + n = 6 + m = 4 + pytest.raises(nx.NetworkXError, hnm_harary_graph, n, m) + + # Raise NetworkXError if m > n(n-1)/2 + n = 6 + m = 16 + pytest.raises(nx.NetworkXError, hnm_harary_graph, n, m) + + """ + Suppose connectivity k, number of nodes n + """ + + def test_hkn_harary_graph(self): + # When k == 1, the hkn_harary_graph(k,n) is + # the path_graph(n) + for k, n in [(1, 6), (1, 7)]: + G1 = hkn_harary_graph(k, n) + G2 = nx.path_graph(n) + assert is_isomorphic(G1, G2) + + # When k is even, the hkn_harary_graph(k,n) is + # the circulant_graph(n, list(range(1,k/2+1))) + for k, n in [(2, 6), (2, 7), (4, 6), (4, 7)]: + G1 = hkn_harary_graph(k, n) + G2 = nx.circulant_graph(n, list(range(1, k // 2 + 1))) + assert is_isomorphic(G1, G2) + + # When k is odd and n is even, the hkn_harary_graph(k,n) is + # the circulant_graph(n, list(range(1,(k+1)/2)) plus [n/2]) + for k, n in [(3, 6), (5, 8), (7, 10)]: + G1 = hkn_harary_graph(k, n) + L = list(range(1, (k + 1) // 2)) + L.append(n // 2) + G2 = nx.circulant_graph(n, L) + assert is_isomorphic(G1, G2) + + # When k is odd and n is odd, the hkn_harary_graph(k,n) is + # the circulant_graph(n, list(range(1,(k+1)/2))) with + # n//2+1 edges added between node i and node i+n//2+1 + for k, n in [(3, 5), (5, 9), (7, 11)]: + G1 = hkn_harary_graph(k, n) + G2 = nx.circulant_graph(n, list(range(1, (k + 1) // 2))) + eSet1 = set(G1.edges) + eSet2 = set(G2.edges) + eSet3 = set() + half = n // 2 + for i in range(half + 1): + # add half+1 edges between i and i+half + eSet3.add((i, (i + half) % n)) + assert eSet1 == eSet2 | eSet3 + + # Raise NetworkXError if k<1 + k = 0 + n = 0 + pytest.raises(nx.NetworkXError, hkn_harary_graph, k, n) + + # Raise NetworkXError if ndegree_count[1]*degree_count[4] + joint_degrees_3 = { + 1: {4: 2}, + 2: {2: 2, 3: 2, 4: 2}, + 3: {2: 2, 4: 1}, + 4: {1: 2, 2: 2, 3: 1}, + } + assert not is_valid_joint_degree(joint_degrees_3) + + # test condition 5 + # joint_degrees_5[1][1] not even + joint_degrees_5 = {1: {1: 9}} + assert not is_valid_joint_degree(joint_degrees_5) + + +def test_joint_degree_graph(ntimes=10): + for _ in range(ntimes): + seed = int(time.time()) + + n, m, p = 20, 10, 1 + # generate random graph with model powerlaw_cluster and calculate + # its joint degree + g = powerlaw_cluster_graph(n, m, p, seed=seed) + joint_degrees_g = degree_mixing_dict(g, normalized=False) + + # generate simple undirected graph with given joint degree + # joint_degrees_g + G = joint_degree_graph(joint_degrees_g) + joint_degrees_G = degree_mixing_dict(G, normalized=False) + + # assert that the given joint degree is equal to the generated + # graph's joint degree + assert joint_degrees_g == joint_degrees_G + + +def test_is_valid_directed_joint_degree(): + in_degrees = [0, 1, 1, 2] + out_degrees = [1, 1, 1, 1] + nkk = {1: {1: 2, 2: 2}} + assert is_valid_directed_joint_degree(in_degrees, out_degrees, nkk) + + # not realizable, values are not integers. + nkk = {1: {1: 1.5, 2: 2.5}} + assert not is_valid_directed_joint_degree(in_degrees, out_degrees, nkk) + + # not realizable, number of edges between 1-2 are insufficient. + nkk = {1: {1: 2, 2: 1}} + assert not is_valid_directed_joint_degree(in_degrees, out_degrees, nkk) + + # not realizable, in/out degree sequences have different number of nodes. + out_degrees = [1, 1, 1] + nkk = {1: {1: 2, 2: 2}} + assert not is_valid_directed_joint_degree(in_degrees, out_degrees, nkk) + + # not realizable, degree sequences have fewer than required nodes. + in_degrees = [0, 1, 2] + assert not is_valid_directed_joint_degree(in_degrees, out_degrees, nkk) + + +def test_directed_joint_degree_graph(n=15, m=100, ntimes=1000): + for _ in range(ntimes): + # generate gnm random graph and calculate its joint degree. + g = gnm_random_graph(n, m, None, directed=True) + + # in-degree sequence of g as a list of integers. + in_degrees = list(dict(g.in_degree()).values()) + # out-degree sequence of g as a list of integers. + out_degrees = list(dict(g.out_degree()).values()) + nkk = degree_mixing_dict(g) + + # generate simple directed graph with given degree sequence and joint + # degree matrix. + G = directed_joint_degree_graph(in_degrees, out_degrees, nkk) + + # assert degree sequence correctness. + assert in_degrees == list(dict(G.in_degree()).values()) + assert out_degrees == list(dict(G.out_degree()).values()) + # assert joint degree matrix correctness. + assert nkk == degree_mixing_dict(G) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_lattice.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_lattice.py new file mode 100644 index 0000000000000000000000000000000000000000..10ac9fc7f0b7ed74c69859ad323b9fbe33a0a460 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_lattice.py @@ -0,0 +1,264 @@ +"""Unit tests for the :mod:`networkx.generators.lattice` module.""" + +from itertools import product + +import pytest + +import networkx as nx +from networkx.utils import edges_equal + + +def test_hexagonal_lattice_no_pos(): + # Test positions are note computed/stored when with_positions=False + G = nx.hexagonal_lattice_graph(6, 6, with_positions=False) + assert all(pos is None for _, pos in G.nodes(data="pos")) + + +@pytest.mark.parametrize( + "lattice_graph", (nx.triangular_lattice_graph, nx.hexagonal_lattice_graph) +) +def test_2D_lattice_no_contraction_leftovers(lattice_graph): + """hexagonal_lattice_graph and triangular_lattice_graph use nx.contracted_nodes + under-the-hood when periodic=True. Check that there are no leftover + "contraction" node attributes on the returned graph.""" + G = lattice_graph(6, 6, with_positions=False, periodic=True) + assert all(data == {} for _, data in G.nodes(data=True)) + assert all(data == {} for _, _, data in G.edges(data=True)) + + +class TestGrid2DGraph: + """Unit tests for :func:`networkx.generators.lattice.grid_2d_graph`""" + + def test_number_of_vertices(self): + m, n = 5, 6 + G = nx.grid_2d_graph(m, n) + assert len(G) == m * n + + def test_degree_distribution(self): + m, n = 5, 6 + G = nx.grid_2d_graph(m, n) + expected_histogram = [0, 0, 4, 2 * (m + n) - 8, (m - 2) * (n - 2)] + assert nx.degree_histogram(G) == expected_histogram + + def test_directed(self): + m, n = 5, 6 + G = nx.grid_2d_graph(m, n) + H = nx.grid_2d_graph(m, n, create_using=nx.DiGraph()) + assert H.succ == G.adj + assert H.pred == G.adj + + def test_multigraph(self): + m, n = 5, 6 + G = nx.grid_2d_graph(m, n) + H = nx.grid_2d_graph(m, n, create_using=nx.MultiGraph()) + assert list(H.edges()) == list(G.edges()) + + def test_periodic(self): + G = nx.grid_2d_graph(0, 0, periodic=True) + assert dict(G.degree()) == {} + + for m, n, H in [ + (2, 2, nx.cycle_graph(4)), + (1, 7, nx.cycle_graph(7)), + (7, 1, nx.cycle_graph(7)), + (2, 5, nx.circular_ladder_graph(5)), + (5, 2, nx.circular_ladder_graph(5)), + (2, 4, nx.cubical_graph()), + (4, 2, nx.cubical_graph()), + ]: + G = nx.grid_2d_graph(m, n, periodic=True) + assert nx.could_be_isomorphic(G, H) + + def test_periodic_iterable(self): + m, n = 3, 7 + for a, b in product([0, 1], [0, 1]): + G = nx.grid_2d_graph(m, n, periodic=(a, b)) + assert G.number_of_nodes() == m * n + assert G.number_of_edges() == (m + a - 1) * n + (n + b - 1) * m + + def test_periodic_directed(self): + G = nx.grid_2d_graph(4, 2, periodic=True) + H = nx.grid_2d_graph(4, 2, periodic=True, create_using=nx.DiGraph()) + assert H.succ == G.adj + assert H.pred == G.adj + + def test_periodic_multigraph(self): + G = nx.grid_2d_graph(4, 2, periodic=True) + H = nx.grid_2d_graph(4, 2, periodic=True, create_using=nx.MultiGraph()) + assert list(G.edges()) == list(H.edges()) + + def test_exceptions(self): + pytest.raises(nx.NetworkXError, nx.grid_2d_graph, -3, 2) + pytest.raises(nx.NetworkXError, nx.grid_2d_graph, 3, -2) + pytest.raises(TypeError, nx.grid_2d_graph, 3.3, 2) + pytest.raises(TypeError, nx.grid_2d_graph, 3, 2.2) + + def test_node_input(self): + G = nx.grid_2d_graph(4, 2, periodic=True) + H = nx.grid_2d_graph(range(4), range(2), periodic=True) + assert nx.is_isomorphic(H, G) + H = nx.grid_2d_graph("abcd", "ef", periodic=True) + assert nx.is_isomorphic(H, G) + G = nx.grid_2d_graph(5, 6) + H = nx.grid_2d_graph(range(5), range(6)) + assert edges_equal(H, G) + + +class TestGridGraph: + """Unit tests for :func:`networkx.generators.lattice.grid_graph`""" + + def test_grid_graph(self): + """grid_graph([n,m]) is a connected simple graph with the + following properties: + number_of_nodes = n*m + degree_histogram = [0,0,4,2*(n+m)-8,(n-2)*(m-2)] + """ + for n, m in [(3, 5), (5, 3), (4, 5), (5, 4)]: + dim = [n, m] + g = nx.grid_graph(dim) + assert len(g) == n * m + assert nx.degree_histogram(g) == [ + 0, + 0, + 4, + 2 * (n + m) - 8, + (n - 2) * (m - 2), + ] + + for n, m in [(1, 5), (5, 1)]: + dim = [n, m] + g = nx.grid_graph(dim) + assert len(g) == n * m + assert nx.is_isomorphic(g, nx.path_graph(5)) + + # mg = nx.grid_graph([n,m], create_using=MultiGraph()) + # assert_equal(mg.edges(), g.edges()) + + def test_node_input(self): + G = nx.grid_graph([range(7, 9), range(3, 6)]) + assert len(G) == 2 * 3 + assert nx.is_isomorphic(G, nx.grid_graph([2, 3])) + + def test_periodic_iterable(self): + m, n, k = 3, 7, 5 + for a, b, c in product([0, 1], [0, 1], [0, 1]): + G = nx.grid_graph([m, n, k], periodic=(a, b, c)) + num_e = (m + a - 1) * n * k + (n + b - 1) * m * k + (k + c - 1) * m * n + assert G.number_of_nodes() == m * n * k + assert G.number_of_edges() == num_e + + +class TestHypercubeGraph: + """Unit tests for :func:`networkx.generators.lattice.hypercube_graph`""" + + def test_special_cases(self): + for n, H in [ + (0, nx.null_graph()), + (1, nx.path_graph(2)), + (2, nx.cycle_graph(4)), + (3, nx.cubical_graph()), + ]: + G = nx.hypercube_graph(n) + assert nx.could_be_isomorphic(G, H) + + def test_degree_distribution(self): + for n in range(1, 10): + G = nx.hypercube_graph(n) + expected_histogram = [0] * n + [2**n] + assert nx.degree_histogram(G) == expected_histogram + + +class TestTriangularLatticeGraph: + "Tests for :func:`networkx.generators.lattice.triangular_lattice_graph`" + + def test_lattice_points(self): + """Tests that the graph is really a triangular lattice.""" + for m, n in [(2, 3), (2, 2), (2, 1), (3, 3), (3, 2), (3, 4)]: + G = nx.triangular_lattice_graph(m, n) + N = (n + 1) // 2 + assert len(G) == (m + 1) * (1 + N) - (n % 2) * ((m + 1) // 2) + for i, j in G.nodes(): + nbrs = G[(i, j)] + if i < N: + assert (i + 1, j) in nbrs + if j < m: + assert (i, j + 1) in nbrs + if j < m and (i > 0 or j % 2) and (i < N or (j + 1) % 2): + assert (i + 1, j + 1) in nbrs or (i - 1, j + 1) in nbrs + + def test_directed(self): + """Tests for creating a directed triangular lattice.""" + G = nx.triangular_lattice_graph(3, 4, create_using=nx.Graph()) + H = nx.triangular_lattice_graph(3, 4, create_using=nx.DiGraph()) + assert H.is_directed() + for u, v in H.edges(): + assert v[1] >= u[1] + if v[1] == u[1]: + assert v[0] > u[0] + + def test_multigraph(self): + """Tests for creating a triangular lattice multigraph.""" + G = nx.triangular_lattice_graph(3, 4, create_using=nx.Graph()) + H = nx.triangular_lattice_graph(3, 4, create_using=nx.MultiGraph()) + assert list(H.edges()) == list(G.edges()) + + def test_periodic(self): + G = nx.triangular_lattice_graph(4, 6, periodic=True) + assert len(G) == 12 + assert G.size() == 36 + # all degrees are 6 + assert len([n for n, d in G.degree() if d != 6]) == 0 + G = nx.triangular_lattice_graph(5, 7, periodic=True) + TLG = nx.triangular_lattice_graph + pytest.raises(nx.NetworkXError, TLG, 2, 4, periodic=True) + pytest.raises(nx.NetworkXError, TLG, 4, 4, periodic=True) + pytest.raises(nx.NetworkXError, TLG, 2, 6, periodic=True) + + +class TestHexagonalLatticeGraph: + "Tests for :func:`networkx.generators.lattice.hexagonal_lattice_graph`" + + def test_lattice_points(self): + """Tests that the graph is really a hexagonal lattice.""" + for m, n in [(4, 5), (4, 4), (4, 3), (3, 2), (3, 3), (3, 5)]: + G = nx.hexagonal_lattice_graph(m, n) + assert len(G) == 2 * (m + 1) * (n + 1) - 2 + C_6 = nx.cycle_graph(6) + hexagons = [ + [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)], + [(0, 2), (0, 3), (0, 4), (1, 2), (1, 3), (1, 4)], + [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3)], + [(2, 0), (2, 1), (2, 2), (3, 0), (3, 1), (3, 2)], + [(2, 2), (2, 3), (2, 4), (3, 2), (3, 3), (3, 4)], + ] + for hexagon in hexagons: + assert nx.is_isomorphic(G.subgraph(hexagon), C_6) + + def test_directed(self): + """Tests for creating a directed hexagonal lattice.""" + G = nx.hexagonal_lattice_graph(3, 5, create_using=nx.Graph()) + H = nx.hexagonal_lattice_graph(3, 5, create_using=nx.DiGraph()) + assert H.is_directed() + pos = nx.get_node_attributes(H, "pos") + for u, v in H.edges(): + assert pos[v][1] >= pos[u][1] + if pos[v][1] == pos[u][1]: + assert pos[v][0] > pos[u][0] + + def test_multigraph(self): + """Tests for creating a hexagonal lattice multigraph.""" + G = nx.hexagonal_lattice_graph(3, 5, create_using=nx.Graph()) + H = nx.hexagonal_lattice_graph(3, 5, create_using=nx.MultiGraph()) + assert list(H.edges()) == list(G.edges()) + + def test_periodic(self): + G = nx.hexagonal_lattice_graph(4, 6, periodic=True) + assert len(G) == 48 + assert G.size() == 72 + # all degrees are 3 + assert len([n for n, d in G.degree() if d != 3]) == 0 + G = nx.hexagonal_lattice_graph(5, 8, periodic=True) + HLG = nx.hexagonal_lattice_graph + pytest.raises(nx.NetworkXError, HLG, 2, 7, periodic=True) + pytest.raises(nx.NetworkXError, HLG, 1, 4, periodic=True) + pytest.raises(nx.NetworkXError, HLG, 2, 1, periodic=True) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_line.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_line.py new file mode 100644 index 0000000000000000000000000000000000000000..7b3ff079e0a9bf7ac2233e0cac7f47d9e7d7ea04 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_line.py @@ -0,0 +1,316 @@ +import pytest + +import networkx as nx +from networkx.generators import line +from networkx.utils import edges_equal + + +class TestGeneratorLine: + def test_star(self): + G = nx.star_graph(5) + L = nx.line_graph(G) + assert nx.is_isomorphic(L, nx.complete_graph(5)) + + def test_path(self): + G = nx.path_graph(5) + L = nx.line_graph(G) + assert nx.is_isomorphic(L, nx.path_graph(4)) + + def test_cycle(self): + G = nx.cycle_graph(5) + L = nx.line_graph(G) + assert nx.is_isomorphic(L, G) + + def test_digraph1(self): + G = nx.DiGraph([(0, 1), (0, 2), (0, 3)]) + L = nx.line_graph(G) + # no edge graph, but with nodes + assert L.adj == {(0, 1): {}, (0, 2): {}, (0, 3): {}} + + def test_multigraph1(self): + G = nx.MultiGraph([(0, 1), (0, 1), (1, 0), (0, 2), (2, 0), (0, 3)]) + L = nx.line_graph(G) + # no edge graph, but with nodes + assert edges_equal( + L.edges(), + [ + ((0, 3, 0), (0, 1, 0)), + ((0, 3, 0), (0, 2, 0)), + ((0, 3, 0), (0, 2, 1)), + ((0, 3, 0), (0, 1, 1)), + ((0, 3, 0), (0, 1, 2)), + ((0, 1, 0), (0, 1, 1)), + ((0, 1, 0), (0, 2, 0)), + ((0, 1, 0), (0, 1, 2)), + ((0, 1, 0), (0, 2, 1)), + ((0, 1, 1), (0, 1, 2)), + ((0, 1, 1), (0, 2, 0)), + ((0, 1, 1), (0, 2, 1)), + ((0, 1, 2), (0, 2, 0)), + ((0, 1, 2), (0, 2, 1)), + ((0, 2, 0), (0, 2, 1)), + ], + ) + + def test_multigraph2(self): + G = nx.MultiGraph([(1, 2), (2, 1)]) + L = nx.line_graph(G) + assert edges_equal(L.edges(), [((1, 2, 0), (1, 2, 1))]) + + def test_multidigraph1(self): + G = nx.MultiDiGraph([(1, 2), (2, 1)]) + L = nx.line_graph(G) + assert edges_equal( + L.edges(), [((1, 2, 0), (2, 1, 0)), ((2, 1, 0), (1, 2, 0))], directed=True + ) + + def test_multidigraph2(self): + G = nx.MultiDiGraph([(0, 1), (0, 1), (0, 1), (1, 2)]) + L = nx.line_graph(G) + assert edges_equal( + L.edges(), + [((0, 1, 0), (1, 2, 0)), ((0, 1, 1), (1, 2, 0)), ((0, 1, 2), (1, 2, 0))], + directed=True, + ) + + def test_digraph2(self): + G = nx.DiGraph([(0, 1), (1, 2), (2, 3)]) + L = nx.line_graph(G) + assert edges_equal( + L.edges(), [((0, 1), (1, 2)), ((1, 2), (2, 3))], directed=True + ) + + def test_create1(self): + G = nx.DiGraph([(0, 1), (1, 2), (2, 3)]) + L = nx.line_graph(G, create_using=nx.Graph()) + assert edges_equal(L.edges(), [((0, 1), (1, 2)), ((1, 2), (2, 3))]) + + def test_create2(self): + G = nx.Graph([(0, 1), (1, 2), (2, 3)]) + L = nx.line_graph(G, create_using=nx.DiGraph()) + assert edges_equal( + L.edges(), [((0, 1), (1, 2)), ((1, 2), (2, 3))], directed=True + ) + + +class TestGeneratorInverseLine: + def test_example(self): + G = nx.Graph() + G_edges = [ + [1, 2], + [1, 3], + [1, 4], + [1, 5], + [2, 3], + [2, 5], + [2, 6], + [2, 7], + [3, 4], + [3, 5], + [6, 7], + [6, 8], + [7, 8], + ] + G.add_edges_from(G_edges) + H = nx.inverse_line_graph(G) + solution = nx.Graph() + solution_edges = [ + ("a", "b"), + ("a", "c"), + ("a", "d"), + ("a", "e"), + ("c", "d"), + ("e", "f"), + ("e", "g"), + ("f", "g"), + ] + solution.add_edges_from(solution_edges) + assert nx.is_isomorphic(H, solution) + + def test_example_2(self): + G = nx.Graph() + G_edges = [[1, 2], [1, 3], [2, 3], [3, 4], [3, 5], [4, 5]] + G.add_edges_from(G_edges) + H = nx.inverse_line_graph(G) + solution = nx.Graph() + solution_edges = [("a", "c"), ("b", "c"), ("c", "d"), ("d", "e"), ("d", "f")] + solution.add_edges_from(solution_edges) + assert nx.is_isomorphic(H, solution) + + def test_pair(self): + G = nx.path_graph(2) + H = nx.inverse_line_graph(G) + solution = nx.path_graph(3) + assert nx.is_isomorphic(H, solution) + + def test_line(self): + G = nx.path_graph(5) + solution = nx.path_graph(6) + H = nx.inverse_line_graph(G) + assert nx.is_isomorphic(H, solution) + + def test_triangle_graph(self): + G = nx.complete_graph(3) + H = nx.inverse_line_graph(G) + alternative_solution = nx.Graph() + alternative_solution.add_edges_from([[0, 1], [0, 2], [0, 3]]) + # there are two alternative inverse line graphs for this case + # so long as we get one of them the test should pass + assert nx.is_isomorphic(H, G) or nx.is_isomorphic(H, alternative_solution) + + def test_cycle(self): + G = nx.cycle_graph(5) + H = nx.inverse_line_graph(G) + assert nx.is_isomorphic(H, G) + + def test_empty(self): + G = nx.Graph() + H = nx.inverse_line_graph(G) + assert nx.is_isomorphic(H, nx.complete_graph(1)) + + def test_K1(self): + G = nx.complete_graph(1) + H = nx.inverse_line_graph(G) + solution = nx.path_graph(2) + assert nx.is_isomorphic(H, solution) + + def test_edgeless_graph(self): + G = nx.empty_graph(5) + with pytest.raises(nx.NetworkXError, match="edgeless graph"): + nx.inverse_line_graph(G) + + def test_selfloops_error(self): + G = nx.cycle_graph(4) + G.add_edge(0, 0) + pytest.raises(nx.NetworkXError, nx.inverse_line_graph, G) + + def test_non_line_graphs(self): + # Tests several known non-line graphs for impossibility + # Adapted from L.W.Beineke, "Characterizations of derived graphs" + + # claw graph + claw = nx.star_graph(3) + pytest.raises(nx.NetworkXError, nx.inverse_line_graph, claw) + + # wheel graph with 6 nodes + wheel = nx.wheel_graph(6) + pytest.raises(nx.NetworkXError, nx.inverse_line_graph, wheel) + + # K5 with one edge remove + K5m = nx.complete_graph(5) + K5m.remove_edge(0, 1) + pytest.raises(nx.NetworkXError, nx.inverse_line_graph, K5m) + + # graph without any odd triangles (contains claw as induced subgraph) + G = nx.compose(nx.path_graph(2), nx.complete_bipartite_graph(2, 3)) + pytest.raises(nx.NetworkXError, nx.inverse_line_graph, G) + + ## Variations on a diamond graph + + # Diamond + 2 edges (+ "roof") + G = nx.diamond_graph() + G.add_edges_from([(4, 0), (5, 3)]) + pytest.raises(nx.NetworkXError, nx.inverse_line_graph, G) + G.add_edge(4, 5) + pytest.raises(nx.NetworkXError, nx.inverse_line_graph, G) + + # Diamond + 2 connected edges + G = nx.diamond_graph() + G.add_edges_from([(4, 0), (4, 3)]) + pytest.raises(nx.NetworkXError, nx.inverse_line_graph, G) + + # Diamond + K3 + one edge (+ 2*K3) + G = nx.diamond_graph() + G.add_edges_from([(4, 0), (4, 1), (4, 2), (5, 3)]) + pytest.raises(nx.NetworkXError, nx.inverse_line_graph, G) + G.add_edges_from([(5, 1), (5, 2)]) + pytest.raises(nx.NetworkXError, nx.inverse_line_graph, G) + + # 4 triangles + G = nx.diamond_graph() + G.add_edges_from([(4, 0), (4, 1), (5, 2), (5, 3)]) + pytest.raises(nx.NetworkXError, nx.inverse_line_graph, G) + + def test_wrong_graph_type(self): + G = nx.DiGraph() + G_edges = [[0, 1], [0, 2], [0, 3]] + G.add_edges_from(G_edges) + pytest.raises(nx.NetworkXNotImplemented, nx.inverse_line_graph, G) + + G = nx.MultiGraph() + G_edges = [[0, 1], [0, 2], [0, 3]] + G.add_edges_from(G_edges) + pytest.raises(nx.NetworkXNotImplemented, nx.inverse_line_graph, G) + + def test_line_inverse_line_complete(self): + G = nx.complete_graph(10) + H = nx.line_graph(G) + J = nx.inverse_line_graph(H) + assert nx.is_isomorphic(G, J) + + def test_line_inverse_line_path(self): + G = nx.path_graph(10) + H = nx.line_graph(G) + J = nx.inverse_line_graph(H) + assert nx.is_isomorphic(G, J) + + def test_line_inverse_line_hypercube(self): + G = nx.hypercube_graph(5) + H = nx.line_graph(G) + J = nx.inverse_line_graph(H) + assert nx.is_isomorphic(G, J) + + def test_line_inverse_line_cycle(self): + G = nx.cycle_graph(10) + H = nx.line_graph(G) + J = nx.inverse_line_graph(H) + assert nx.is_isomorphic(G, J) + + def test_line_inverse_line_star(self): + G = nx.star_graph(20) + H = nx.line_graph(G) + J = nx.inverse_line_graph(H) + assert nx.is_isomorphic(G, J) + + def test_line_inverse_line_multipartite(self): + G = nx.complete_multipartite_graph(3, 4, 5) + H = nx.line_graph(G) + J = nx.inverse_line_graph(H) + assert nx.is_isomorphic(G, J) + + def test_line_inverse_line_dgm(self): + G = nx.dorogovtsev_goltsev_mendes_graph(4) + H = nx.line_graph(G) + J = nx.inverse_line_graph(H) + assert nx.is_isomorphic(G, J) + + def test_line_different_node_types(self): + G = nx.path_graph([1, 2, 3, "a", "b", "c"]) + H = nx.line_graph(G) + J = nx.inverse_line_graph(H) + assert nx.is_isomorphic(G, J) + + +class TestGeneratorPrivateFunctions: + def test_triangles_error(self): + G = nx.diamond_graph() + pytest.raises(nx.NetworkXError, line._triangles, G, (4, 0)) + pytest.raises(nx.NetworkXError, line._triangles, G, (0, 3)) + + def test_odd_triangles_error(self): + G = nx.diamond_graph() + pytest.raises(nx.NetworkXError, line._odd_triangle, G, (0, 1, 4)) + pytest.raises(nx.NetworkXError, line._odd_triangle, G, (0, 1, 3)) + + def test_select_starting_cell_error(self): + G = nx.diamond_graph() + pytest.raises(nx.NetworkXError, line._select_starting_cell, G, (4, 0)) + pytest.raises(nx.NetworkXError, line._select_starting_cell, G, (0, 3)) + + def test_diamond_graph(self): + G = nx.diamond_graph() + for edge in G.edges: + cell = line._select_starting_cell(G, starting_edge=edge) + # Starting cell should always be one of the two triangles + assert len(cell) == 3 + assert all(v in G[u] for u in cell for v in cell if u != v) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_mycielski.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_mycielski.py new file mode 100644 index 0000000000000000000000000000000000000000..eb12b1412ad4559bb500a7125c8d65e6239c5fed --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_mycielski.py @@ -0,0 +1,30 @@ +"""Unit tests for the :mod:`networkx.generators.mycielski` module.""" + +import pytest + +import networkx as nx + + +class TestMycielski: + def test_construction(self): + G = nx.path_graph(2) + M = nx.mycielskian(G) + assert nx.is_isomorphic(M, nx.cycle_graph(5)) + + def test_size(self): + G = nx.path_graph(2) + M = nx.mycielskian(G, 2) + assert len(M) == 11 + assert M.size() == 20 + + def test_mycielski_graph_generator(self): + G = nx.mycielski_graph(1) + assert nx.is_isomorphic(G, nx.empty_graph(1)) + G = nx.mycielski_graph(2) + assert nx.is_isomorphic(G, nx.path_graph(2)) + G = nx.mycielski_graph(3) + assert nx.is_isomorphic(G, nx.cycle_graph(5)) + G = nx.mycielski_graph(4) + assert nx.is_isomorphic(G, nx.mycielskian(nx.cycle_graph(5))) + with pytest.raises(nx.NetworkXError, match="must satisfy n >= 1"): + nx.mycielski_graph(0) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_nonisomorphic_trees.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_nonisomorphic_trees.py new file mode 100644 index 0000000000000000000000000000000000000000..7c09303cc98f329084160733e8004fbe2710255f --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_nonisomorphic_trees.py @@ -0,0 +1,82 @@ +""" +Unit tests for WROM algorithm generator in generators/nonisomorphic_trees.py +""" + +import pytest + +import networkx as nx +from networkx.utils import edges_equal + + +def test_nonisomorphic_tree_negative_order(): + with pytest.raises(ValueError, match="order must be non-negative"): + nx.number_of_nonisomorphic_trees(-1) + with pytest.raises(ValueError, match="order must be non-negative"): + next(nx.nonisomorphic_trees(-1)) + + +def test_nonisomorphic_tree_order_0(): + assert nx.number_of_nonisomorphic_trees(0) == 0 + assert list(nx.nonisomorphic_trees(0)) == [] + + +def test_nonisomorphic_tree_order_1(): + assert nx.number_of_nonisomorphic_trees(1) == 1 + nit_list = list(nx.nonisomorphic_trees(1)) + assert len(nit_list) == 1 + G = nit_list[0] + assert nx.utils.graphs_equal(G, nx.empty_graph(1)) + + +@pytest.mark.parametrize("n", range(5)) +def test_nonisomorphic_tree_low_order_agreement(n): + """Ensure all the order<2 'special cases' are consistent.""" + assert len(list(nx.nonisomorphic_trees(n))) == nx.number_of_nonisomorphic_trees(n) + + +class TestGeneratorNonIsomorphicTrees: + def test_tree_structure(self): + # test for tree structure for nx.nonisomorphic_trees() + def f(x): + return list(nx.nonisomorphic_trees(x)) + + for i in f(6): + assert nx.is_tree(i) + for i in f(8): + assert nx.is_tree(i) + + def test_nonisomorphism(self): + # test for nonisomorphism of trees for nx.nonisomorphic_trees() + def f(x): + return list(nx.nonisomorphic_trees(x)) + + trees = f(6) + for i in range(len(trees)): + for j in range(i + 1, len(trees)): + assert not nx.is_isomorphic(trees[i], trees[j]) + trees = f(8) + for i in range(len(trees)): + for j in range(i + 1, len(trees)): + assert not nx.is_isomorphic(trees[i], trees[j]) + + def test_number_of_nonisomorphic_trees(self): + # http://oeis.org/A000055 + assert nx.number_of_nonisomorphic_trees(2) == 1 + assert nx.number_of_nonisomorphic_trees(3) == 1 + assert nx.number_of_nonisomorphic_trees(4) == 2 + assert nx.number_of_nonisomorphic_trees(5) == 3 + assert nx.number_of_nonisomorphic_trees(6) == 6 + assert nx.number_of_nonisomorphic_trees(7) == 11 + assert nx.number_of_nonisomorphic_trees(8) == 23 + assert nx.number_of_nonisomorphic_trees(9) == 47 + assert nx.number_of_nonisomorphic_trees(10) == 106 + assert nx.number_of_nonisomorphic_trees(20) == 823065 + assert nx.number_of_nonisomorphic_trees(30) == 14830871802 + + def test_nonisomorphic_trees(self): + def f(x): + return list(nx.nonisomorphic_trees(x)) + + assert edges_equal(f(3)[0].edges(), [(0, 1), (0, 2)]) + assert edges_equal(f(4)[0].edges(), [(0, 1), (0, 3), (1, 2)]) + assert edges_equal(f(4)[1].edges(), [(0, 1), (0, 2), (0, 3)]) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_random_clustered.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_random_clustered.py new file mode 100644 index 0000000000000000000000000000000000000000..85066520ae59f1e9bec03327630276918d573fb2 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_random_clustered.py @@ -0,0 +1,33 @@ +import pytest + +import networkx as nx + + +class TestRandomClusteredGraph: + def test_custom_joint_degree_sequence(self): + node = [1, 1, 1, 2, 1, 2, 0, 0] + tri = [0, 0, 0, 0, 0, 1, 1, 1] + joint_degree_sequence = zip(node, tri) + G = nx.random_clustered_graph(joint_degree_sequence) + assert G.number_of_nodes() == 8 + assert G.number_of_edges() == 7 + + def test_tuple_joint_degree_sequence(self): + G = nx.random_clustered_graph([(1, 2), (2, 1), (1, 1), (1, 1), (1, 1), (2, 0)]) + assert G.number_of_nodes() == 6 + assert G.number_of_edges() == 10 + + def test_invalid_joint_degree_sequence_type(self): + with pytest.raises(nx.NetworkXError, match="Invalid degree sequence"): + nx.random_clustered_graph([[1, 1], [2, 1], [0, 1]]) + + def test_invalid_joint_degree_sequence_value(self): + with pytest.raises(nx.NetworkXError, match="Invalid degree sequence"): + nx.random_clustered_graph([[1, 1], [1, 2], [0, 1]]) + + def test_directed_graph_raises_error(self): + with pytest.raises(nx.NetworkXError, match="Directed Graph not supported"): + nx.random_clustered_graph( + [(1, 2), (2, 1), (1, 1), (1, 1), (1, 1), (2, 0)], + create_using=nx.DiGraph, + ) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_small.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_small.py new file mode 100644 index 0000000000000000000000000000000000000000..2072678e473d4ec7f094b38865fc080058f94218 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_small.py @@ -0,0 +1,220 @@ +import pytest + +import networkx as nx + +null = nx.null_graph() + + +class TestGeneratorsSmall: + def test__LCF_graph(self): + # If n<=0, then return the null_graph + G = nx.LCF_graph(-10, [1, 2], 100) + assert nx.could_be_isomorphic(G, null) + G = nx.LCF_graph(0, [1, 2], 3) + assert nx.could_be_isomorphic(G, null) + G = nx.LCF_graph(0, [1, 2], 10) + assert nx.could_be_isomorphic(G, null) + + # Test that LCF(n,[],0) == cycle_graph(n) + for a, b, c in [(5, [], 0), (10, [], 0), (5, [], 1), (10, [], 10)]: + G = nx.LCF_graph(a, b, c) + assert nx.could_be_isomorphic(G, nx.cycle_graph(a)) + + # Generate the utility graph K_{3,3} + G = nx.LCF_graph(6, [3, -3], 3) + utility_graph = nx.complete_bipartite_graph(3, 3) + assert nx.could_be_isomorphic(G, utility_graph) + + with pytest.raises(nx.NetworkXError, match="Directed Graph not supported"): + G = nx.LCF_graph(6, [3, -3], 3, create_using=nx.DiGraph) + + def test_properties_of_named_small_graphs(self): + G = nx.bull_graph() + assert sorted(G) == list(range(5)) + assert G.number_of_edges() == 5 + assert sorted(d for n, d in G.degree()) == [1, 1, 2, 3, 3] + assert nx.diameter(G) == 3 + assert nx.radius(G) == 2 + + G = nx.chvatal_graph() + assert sorted(G) == list(range(12)) + assert G.number_of_edges() == 24 + assert [d for n, d in G.degree()] == 12 * [4] + assert nx.diameter(G) == 2 + assert nx.radius(G) == 2 + + G = nx.cubical_graph() + assert sorted(G) == list(range(8)) + assert G.number_of_edges() == 12 + assert [d for n, d in G.degree()] == 8 * [3] + assert nx.diameter(G) == 3 + assert nx.radius(G) == 3 + + G = nx.desargues_graph() + assert sorted(G) == list(range(20)) + assert G.number_of_edges() == 30 + assert [d for n, d in G.degree()] == 20 * [3] + assert nx.is_isomorphic(G, nx.generalized_petersen_graph(10, 3)) + + G = nx.diamond_graph() + assert sorted(G) == list(range(4)) + assert sorted(d for n, d in G.degree()) == [2, 2, 3, 3] + assert nx.diameter(G) == 2 + assert nx.radius(G) == 1 + + G = nx.dodecahedral_graph() + assert sorted(G) == list(range(20)) + assert G.number_of_edges() == 30 + assert [d for n, d in G.degree()] == 20 * [3] + assert nx.diameter(G) == 5 + assert nx.radius(G) == 5 + assert nx.is_isomorphic(G, nx.generalized_petersen_graph(10, 2)) + + G = nx.frucht_graph() + assert sorted(G) == list(range(12)) + assert G.number_of_edges() == 18 + assert [d for n, d in G.degree()] == 12 * [3] + assert nx.diameter(G) == 4 + assert nx.radius(G) == 3 + + G = nx.generalized_petersen_graph(10, 4) + assert sorted(G) == list(range(20)) + assert G.number_of_edges() == 30 + assert [d for n, d in G.degree()] == 20 * [3] + assert nx.diameter(G) == 4 + assert nx.radius(G) == 4 + + G = nx.heawood_graph() + assert sorted(G) == list(range(14)) + assert G.number_of_edges() == 21 + assert [d for n, d in G.degree()] == 14 * [3] + assert nx.diameter(G) == 3 + assert nx.radius(G) == 3 + + G = nx.hoffman_singleton_graph() + assert sorted(G) == list(range(50)) + assert G.number_of_edges() == 175 + assert [d for n, d in G.degree()] == 50 * [7] + assert nx.diameter(G) == 2 + assert nx.radius(G) == 2 + + G = nx.house_graph() + assert sorted(G) == list(range(5)) + assert G.number_of_edges() == 6 + assert sorted(d for n, d in G.degree()) == [2, 2, 2, 3, 3] + assert nx.diameter(G) == 2 + assert nx.radius(G) == 2 + + G = nx.house_x_graph() + assert sorted(G) == list(range(5)) + assert G.number_of_edges() == 8 + assert sorted(d for n, d in G.degree()) == [2, 3, 3, 4, 4] + assert nx.diameter(G) == 2 + assert nx.radius(G) == 1 + + G = nx.icosahedral_graph() + assert sorted(G) == list(range(12)) + assert G.number_of_edges() == 30 + assert [d for n, d in G.degree()] == [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5] + assert nx.diameter(G) == 3 + assert nx.radius(G) == 3 + + G = nx.krackhardt_kite_graph() + assert sorted(G) == list(range(10)) + assert G.number_of_edges() == 18 + assert sorted(d for n, d in G.degree()) == [1, 2, 3, 3, 3, 4, 4, 5, 5, 6] + + G = nx.moebius_kantor_graph() + assert sorted(G) == list(range(16)) + assert G.number_of_edges() == 24 + assert [d for n, d in G.degree()] == 16 * [3] + assert nx.diameter(G) == 4 + assert nx.is_isomorphic(G, nx.generalized_petersen_graph(8, 3)) + + G = nx.octahedral_graph() + assert sorted(G) == list(range(6)) + assert G.number_of_edges() == 12 + assert [d for n, d in G.degree()] == 6 * [4] + assert nx.diameter(G) == 2 + assert nx.radius(G) == 2 + + G = nx.pappus_graph() + assert sorted(G) == list(range(18)) + assert G.number_of_edges() == 27 + assert [d for n, d in G.degree()] == 18 * [3] + assert nx.diameter(G) == 4 + + G = nx.petersen_graph() + assert sorted(G) == list(range(10)) + assert G.number_of_edges() == 15 + assert [d for n, d in G.degree()] == 10 * [3] + assert nx.diameter(G) == 2 + assert nx.radius(G) == 2 + assert nx.is_isomorphic(G, nx.generalized_petersen_graph(5, 2)) + + G = nx.sedgewick_maze_graph() + assert sorted(G) == list(range(8)) + assert G.number_of_edges() == 10 + assert sorted(d for n, d in G.degree()) == [1, 2, 2, 2, 3, 3, 3, 4] + + G = nx.tetrahedral_graph() + assert sorted(G) == list(range(4)) + assert G.number_of_edges() == 6 + assert [d for n, d in G.degree()] == [3, 3, 3, 3] + assert nx.diameter(G) == 1 + assert nx.radius(G) == 1 + + G = nx.truncated_cube_graph() + assert sorted(G) == list(range(24)) + assert G.number_of_edges() == 36 + assert [d for n, d in G.degree()] == 24 * [3] + + G = nx.truncated_tetrahedron_graph() + assert sorted(G) == list(range(12)) + assert G.number_of_edges() == 18 + assert [d for n, d in G.degree()] == 12 * [3] + + G = nx.tutte_graph() + assert sorted(G) == list(range(46)) + assert G.number_of_edges() == 69 + assert [d for n, d in G.degree()] == 46 * [3] + + MG = nx.tutte_graph(create_using=nx.MultiGraph) + assert sorted(MG.edges()) == sorted(G.edges()) + + # Test create_using with directed or multigraphs on small graphs + with pytest.raises(nx.NetworkXError, match="Directed Graph not supported "): + nx.generalized_petersen_graph(5, 2, create_using=nx.DiGraph) + with pytest.raises(nx.NetworkXError, match="Directed Graph not supported "): + nx.generalized_petersen_graph(5, 2, create_using=nx.MultiDiGraph) + G = nx.generalized_petersen_graph(5, 2) + MG = nx.generalized_petersen_graph(5, 2, create_using=nx.MultiGraph) + assert sorted(MG.edges()) == sorted(G.edges()) + + +@pytest.mark.parametrize( + "fn", + ( + nx.bull_graph, + nx.chvatal_graph, + nx.cubical_graph, + nx.diamond_graph, + nx.house_graph, + nx.house_x_graph, + nx.icosahedral_graph, + nx.krackhardt_kite_graph, + nx.octahedral_graph, + nx.petersen_graph, + nx.truncated_cube_graph, + nx.tutte_graph, + ), +) +@pytest.mark.parametrize( + "create_using", (nx.DiGraph, nx.MultiDiGraph, nx.DiGraph([(0, 1)])) +) +def tests_raises_with_directed_create_using(fn, create_using): + with pytest.raises(nx.NetworkXError, match="Directed Graph not supported"): + fn(create_using=create_using) + # All these functions have `create_using` as the first positional argument too + with pytest.raises(nx.NetworkXError, match="Directed Graph not supported"): + fn(create_using) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_spectral_graph_forge.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_spectral_graph_forge.py new file mode 100644 index 0000000000000000000000000000000000000000..b554bfd7017658c9e3ac801c4504c9702d1e03d9 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_spectral_graph_forge.py @@ -0,0 +1,49 @@ +import pytest + +pytest.importorskip("numpy") +pytest.importorskip("scipy") + + +from networkx import is_isomorphic +from networkx.exception import NetworkXError +from networkx.generators import karate_club_graph +from networkx.generators.spectral_graph_forge import spectral_graph_forge +from networkx.utils import nodes_equal + + +def test_spectral_graph_forge(): + G = karate_club_graph() + + seed = 54321 + + # common cases, just checking node number preserving and difference + # between identity and modularity cases + H = spectral_graph_forge(G, 0.1, transformation="identity", seed=seed) + assert nodes_equal(G, H) + + I = spectral_graph_forge(G, 0.1, transformation="identity", seed=seed) + assert nodes_equal(G, H) + assert is_isomorphic(I, H) + + I = spectral_graph_forge(G, 0.1, transformation="modularity", seed=seed) + assert nodes_equal(G, I) + + assert not is_isomorphic(I, H) + + # with all the eigenvectors, output graph is identical to the input one + H = spectral_graph_forge(G, 1, transformation="modularity", seed=seed) + assert nodes_equal(G, H) + assert is_isomorphic(G, H) + + # invalid alpha input value, it is silently truncated in [0,1] + H = spectral_graph_forge(G, -1, transformation="identity", seed=seed) + assert nodes_equal(G, H) + + H = spectral_graph_forge(G, 10, transformation="identity", seed=seed) + assert nodes_equal(G, H) + assert is_isomorphic(G, H) + + # invalid transformation mode, checking the error raising + pytest.raises( + NetworkXError, spectral_graph_forge, G, 0.1, transformation="unknown", seed=seed + ) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_stochastic.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_stochastic.py new file mode 100644 index 0000000000000000000000000000000000000000..0404d9d8454b36b546152c1428790441c6952fa2 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_stochastic.py @@ -0,0 +1,72 @@ +"""Unit tests for the :mod:`networkx.generators.stochastic` module.""" + +import pytest + +import networkx as nx + + +class TestStochasticGraph: + """Unit tests for the :func:`~networkx.stochastic_graph` function.""" + + def test_default_weights(self): + G = nx.DiGraph() + G.add_edge(0, 1) + G.add_edge(0, 2) + S = nx.stochastic_graph(G) + assert nx.is_isomorphic(G, S) + assert sorted(S.edges(data=True)) == [ + (0, 1, {"weight": 0.5}), + (0, 2, {"weight": 0.5}), + ] + + def test_in_place(self): + """Tests for an in-place reweighting of the edges of the graph.""" + G = nx.DiGraph() + G.add_edge(0, 1, weight=1) + G.add_edge(0, 2, weight=1) + nx.stochastic_graph(G, copy=False) + assert sorted(G.edges(data=True)) == [ + (0, 1, {"weight": 0.5}), + (0, 2, {"weight": 0.5}), + ] + + def test_arbitrary_weights(self): + G = nx.DiGraph() + G.add_edge(0, 1, weight=1) + G.add_edge(0, 2, weight=1) + S = nx.stochastic_graph(G) + assert sorted(S.edges(data=True)) == [ + (0, 1, {"weight": 0.5}), + (0, 2, {"weight": 0.5}), + ] + + def test_multidigraph(self): + G = nx.MultiDiGraph() + G.add_edges_from([(0, 1), (0, 1), (0, 2), (0, 2)]) + S = nx.stochastic_graph(G) + d = {"weight": 0.25} + assert sorted(S.edges(data=True)) == [ + (0, 1, d), + (0, 1, d), + (0, 2, d), + (0, 2, d), + ] + + def test_zero_weights(self): + """Smoke test: ensure ZeroDivisionError is not raised.""" + G = nx.DiGraph() + G.add_edge(0, 1, weight=0) + G.add_edge(0, 2, weight=0) + S = nx.stochastic_graph(G) + assert sorted(S.edges(data=True)) == [ + (0, 1, {"weight": 0}), + (0, 2, {"weight": 0}), + ] + + def test_graph_disallowed(self): + with pytest.raises(nx.NetworkXNotImplemented): + nx.stochastic_graph(nx.Graph()) + + def test_multigraph_disallowed(self): + with pytest.raises(nx.NetworkXNotImplemented): + nx.stochastic_graph(nx.MultiGraph()) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_sudoku.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_sudoku.py new file mode 100644 index 0000000000000000000000000000000000000000..7c3560aa81890d0dc308219d7f0983d3950f9fd5 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_sudoku.py @@ -0,0 +1,92 @@ +"""Unit tests for the :mod:`networkx.generators.sudoku_graph` module.""" + +import pytest + +import networkx as nx + + +def test_sudoku_negative(): + """Raise an error when generating a Sudoku graph of order -1.""" + pytest.raises(nx.NetworkXError, nx.sudoku_graph, n=-1) + + +@pytest.mark.parametrize("n", [0, 1, 2, 3, 4]) +def test_sudoku_generator(n): + """Generate Sudoku graphs of various sizes and verify their properties.""" + G = nx.sudoku_graph(n) + expected_nodes = n**4 + expected_degree = (n - 1) * (3 * n + 1) + expected_edges = expected_nodes * expected_degree // 2 + assert not G.is_directed() + assert not G.is_multigraph() + assert G.number_of_nodes() == expected_nodes + assert G.number_of_edges() == expected_edges + assert all(d == expected_degree for _, d in G.degree) + + if n == 2: + assert sorted(G.neighbors(6)) == [2, 3, 4, 5, 7, 10, 14] + elif n == 3: + assert sorted(G.neighbors(42)) == [ + 6, + 15, + 24, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 43, + 44, + 51, + 52, + 53, + 60, + 69, + 78, + ] + elif n == 4: + assert sorted(G.neighbors(0)) == [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 32, + 33, + 34, + 35, + 48, + 49, + 50, + 51, + 64, + 80, + 96, + 112, + 128, + 144, + 160, + 176, + 192, + 208, + 224, + 240, + ] diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_trees.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_trees.py new file mode 100644 index 0000000000000000000000000000000000000000..7932436bf7ad6bb5ab5124f6ff59b7523358354d --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_trees.py @@ -0,0 +1,195 @@ +import random + +import pytest + +import networkx as nx +from networkx.utils import arbitrary_element, graphs_equal + + +@pytest.mark.parametrize("prefix_tree_fn", (nx.prefix_tree, nx.prefix_tree_recursive)) +def test_basic_prefix_tree(prefix_tree_fn): + # This example is from the Wikipedia article "Trie" + # . + strings = ["a", "to", "tea", "ted", "ten", "i", "in", "inn"] + T = prefix_tree_fn(strings) + root, NIL = 0, -1 + + def source_label(v): + return T.nodes[v]["source"] + + # First, we check that the tree has the expected + # structure. Recall that each node that corresponds to one of + # the input strings has an edge to the NIL node. + # + # Consider the three children at level 1 in the trie. + a, i, t = sorted(T[root], key=source_label) + # Check the 'a' branch. + assert len(T[a]) == 1 + nil = arbitrary_element(T[a]) + assert len(T[nil]) == 0 + # Check the 'i' branch. + assert len(T[i]) == 2 + nil, in_ = sorted(T[i], key=source_label) + assert len(T[nil]) == 0 + assert len(T[in_]) == 2 + nil, inn = sorted(T[in_], key=source_label) + assert len(T[nil]) == 0 + assert len(T[inn]) == 1 + nil = arbitrary_element(T[inn]) + assert len(T[nil]) == 0 + # Check the 't' branch. + te, to = sorted(T[t], key=source_label) + assert len(T[to]) == 1 + nil = arbitrary_element(T[to]) + assert len(T[nil]) == 0 + tea, ted, ten = sorted(T[te], key=source_label) + assert len(T[tea]) == 1 + assert len(T[ted]) == 1 + assert len(T[ten]) == 1 + nil = arbitrary_element(T[tea]) + assert len(T[nil]) == 0 + nil = arbitrary_element(T[ted]) + assert len(T[nil]) == 0 + nil = arbitrary_element(T[ten]) + assert len(T[nil]) == 0 + + # Next, we check that the "sources" of each of the nodes is the + # rightmost letter in the string corresponding to the path to + # that node. + assert source_label(root) is None + assert source_label(a) == "a" + assert source_label(i) == "i" + assert source_label(t) == "t" + assert source_label(in_) == "n" + assert source_label(inn) == "n" + assert source_label(to) == "o" + assert source_label(te) == "e" + assert source_label(tea) == "a" + assert source_label(ted) == "d" + assert source_label(ten) == "n" + assert source_label(NIL) == "NIL" + + +@pytest.mark.parametrize( + "strings", + ( + ["a", "to", "tea", "ted", "ten", "i", "in", "inn"], + ["ab", "abs", "ad"], + ["ab", "abs", "ad", ""], + ["distant", "disparaging", "distant", "diamond", "ruby"], + ), +) +def test_implementations_consistent(strings): + """Ensure results are consistent between prefix_tree implementations.""" + assert graphs_equal(nx.prefix_tree(strings), nx.prefix_tree_recursive(strings)) + + +def test_random_labeled_rooted_tree(): + for i in range(1, 10): + t1 = nx.random_labeled_rooted_tree(i, seed=42) + t2 = nx.random_labeled_rooted_tree(i, seed=42) + assert nx.utils.misc.graphs_equal(t1, t2) + assert nx.is_tree(t1) + assert "root" in t1.graph + assert "roots" not in t1.graph + + +def test_random_labeled_tree_n_zero(): + """Tests if n = 0 then the NetworkXPointlessConcept exception is raised.""" + with pytest.raises(nx.NetworkXPointlessConcept): + T = nx.random_labeled_tree(0, seed=1234) + with pytest.raises(nx.NetworkXPointlessConcept): + T = nx.random_labeled_rooted_tree(0, seed=1234) + + +def test_random_labeled_rooted_forest(): + for i in range(1, 10): + t1 = nx.random_labeled_rooted_forest(i, seed=42) + t2 = nx.random_labeled_rooted_forest(i, seed=42) + assert nx.utils.misc.graphs_equal(t1, t2) + for c in nx.connected_components(t1): + assert nx.is_tree(t1.subgraph(c)) + assert "root" not in t1.graph + assert "roots" in t1.graph + + +def test_random_labeled_rooted_forest_n_zero(): + """Tests generation of empty labeled forests.""" + F = nx.random_labeled_rooted_forest(0, seed=1234) + assert len(F) == 0 + assert len(F.graph["roots"]) == 0 + + +def test_random_unlabeled_rooted_tree(): + for i in range(1, 10): + t1 = nx.random_unlabeled_rooted_tree(i, seed=42) + t2 = nx.random_unlabeled_rooted_tree(i, seed=42) + assert nx.utils.misc.graphs_equal(t1, t2) + assert nx.is_tree(t1) + assert "root" in t1.graph + assert "roots" not in t1.graph + t = nx.random_unlabeled_rooted_tree(15, number_of_trees=10, seed=43) + random.seed(43) + s = nx.random_unlabeled_rooted_tree(15, number_of_trees=10, seed=random) + for i in range(10): + assert nx.utils.misc.graphs_equal(t[i], s[i]) + assert nx.is_tree(t[i]) + assert "root" in t[i].graph + assert "roots" not in t[i].graph + + +def test_random_unlabeled_tree_n_zero(): + """Tests if n = 0 then the NetworkXPointlessConcept exception is raised.""" + with pytest.raises(nx.NetworkXPointlessConcept): + T = nx.random_unlabeled_tree(0, seed=1234) + with pytest.raises(nx.NetworkXPointlessConcept): + T = nx.random_unlabeled_rooted_tree(0, seed=1234) + + +def test_random_unlabeled_rooted_forest(): + with pytest.raises(ValueError): + nx.random_unlabeled_rooted_forest(10, q=0, seed=42) + for i in range(1, 10): + for q in range(1, i + 1): + t1 = nx.random_unlabeled_rooted_forest(i, q=q, seed=42) + t2 = nx.random_unlabeled_rooted_forest(i, q=q, seed=42) + assert nx.utils.misc.graphs_equal(t1, t2) + for c in nx.connected_components(t1): + assert nx.is_tree(t1.subgraph(c)) + assert len(c) <= q + assert "root" not in t1.graph + assert "roots" in t1.graph + t = nx.random_unlabeled_rooted_forest(15, number_of_forests=10, seed=43) + random.seed(43) + s = nx.random_unlabeled_rooted_forest(15, number_of_forests=10, seed=random) + for i in range(10): + assert nx.utils.misc.graphs_equal(t[i], s[i]) + for c in nx.connected_components(t[i]): + assert nx.is_tree(t[i].subgraph(c)) + assert "root" not in t[i].graph + assert "roots" in t[i].graph + + +def test_random_unlabeled_forest_n_zero(): + """Tests generation of empty unlabeled forests.""" + F = nx.random_unlabeled_rooted_forest(0, seed=1234) + assert len(F) == 0 + assert len(F.graph["roots"]) == 0 + + +def test_random_unlabeled_tree(): + for i in range(1, 10): + t1 = nx.random_unlabeled_tree(i, seed=42) + t2 = nx.random_unlabeled_tree(i, seed=42) + assert nx.utils.misc.graphs_equal(t1, t2) + assert nx.is_tree(t1) + assert "root" not in t1.graph + assert "roots" not in t1.graph + t = nx.random_unlabeled_tree(10, number_of_trees=10, seed=43) + random.seed(43) + s = nx.random_unlabeled_tree(10, number_of_trees=10, seed=random) + for i in range(10): + assert nx.utils.misc.graphs_equal(t[i], s[i]) + assert nx.is_tree(t[i]) + assert "root" not in t[i].graph + assert "roots" not in t[i].graph diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_triads.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_triads.py new file mode 100644 index 0000000000000000000000000000000000000000..463844be23a07f71375873bbc71e09c402d51118 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_triads.py @@ -0,0 +1,15 @@ +"""Unit tests for the :mod:`networkx.generators.triads` module.""" + +import pytest + +from networkx import triad_graph + + +def test_triad_graph(): + G = triad_graph("030T") + assert [tuple(e) for e in ("ab", "ac", "cb")] == sorted(G.edges()) + + +def test_invalid_name(): + with pytest.raises(ValueError): + triad_graph("bogus") diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f6a86728059bcfce1a76431f5207bbf795702250 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/algebraicconnectivity.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/algebraicconnectivity.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ee0585552b8f4c5bce7a3b90d0f385bc39979da8 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/algebraicconnectivity.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/attrmatrix.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/attrmatrix.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2be2617dbff8c6d7111edda6f5094e2550512e0f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/attrmatrix.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/bethehessianmatrix.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/bethehessianmatrix.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d292db363c6d7041f1f71eb281507f7ee4a6f6a8 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/bethehessianmatrix.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/graphmatrix.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/graphmatrix.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b42a992b3bd0cdfcde1c353de47dd8f90ca28e61 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/graphmatrix.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/laplacianmatrix.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/laplacianmatrix.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..112629ee00384b00beba0bd7014c485e827ac9a5 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/laplacianmatrix.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/modularitymatrix.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/modularitymatrix.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7e6ffa29d804c9184f486c98d540d5cdd05fc7dd Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/modularitymatrix.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/spectrum.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/spectrum.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..69e5ca32cff0bd6119c93ffd8fd58194242af76f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/__pycache__/spectrum.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5b3848451965bc7a6e0d0a0f97b0ad56c410e15b Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/test_algebraic_connectivity.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/test_algebraic_connectivity.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..afe5a2959e43417dcbe058399b1fc1663a046094 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/test_algebraic_connectivity.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/test_attrmatrix.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/test_attrmatrix.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e40c75ca7c12915d97aa964093bb86d20fef9d0f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/test_attrmatrix.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/test_bethehessian.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/test_bethehessian.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3d9589f369eba47fdd1f4a799862dfdc9d26675e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/test_bethehessian.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/test_graphmatrix.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/test_graphmatrix.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..23757c22408d7d4204aae3abb6601b181ed13636 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/test_graphmatrix.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/test_laplacian.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/test_laplacian.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..781f568622450b96ec97c28c2dba091a9091a3fe Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/test_laplacian.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/test_modularity.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/test_modularity.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b53cc13b979b2a83871aa30e6bd86bf89a8c5964 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/test_modularity.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/test_spectrum.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/test_spectrum.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5764388b54e5a99f9968a77362414dee5b97e9f0 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/__pycache__/test_spectrum.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_algebraic_connectivity.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_algebraic_connectivity.py new file mode 100644 index 0000000000000000000000000000000000000000..31f911f7a2b039cd523e930d5d552ad07c77dd4d --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_algebraic_connectivity.py @@ -0,0 +1,400 @@ +from math import sqrt + +import pytest + +import networkx as nx + +np = pytest.importorskip("numpy") +methods = ("tracemin_pcg", "tracemin_lu", "lanczos", "lobpcg") + + +def test_algebraic_connectivity_tracemin_chol(): + """Test that "tracemin_chol" raises an exception.""" + pytest.importorskip("scipy") + G = nx.barbell_graph(5, 4) + with pytest.raises(nx.NetworkXError): + nx.algebraic_connectivity(G, method="tracemin_chol") + + +def test_fiedler_vector_tracemin_chol(): + """Test that "tracemin_chol" raises an exception.""" + pytest.importorskip("scipy") + G = nx.barbell_graph(5, 4) + with pytest.raises(nx.NetworkXError): + nx.fiedler_vector(G, method="tracemin_chol") + + +def test_spectral_ordering_tracemin_chol(): + """Test that "tracemin_chol" raises an exception.""" + pytest.importorskip("scipy") + G = nx.barbell_graph(5, 4) + with pytest.raises(nx.NetworkXError): + nx.spectral_ordering(G, method="tracemin_chol") + + +def test_fiedler_vector_tracemin_unknown(): + """Test that "tracemin_unknown" raises an exception.""" + pytest.importorskip("scipy") + G = nx.barbell_graph(5, 4) + L = nx.laplacian_matrix(G) + X = np.asarray(np.random.normal(size=(1, L.shape[0]))).T + with pytest.raises(nx.NetworkXError, match="Unknown linear system solver"): + nx.linalg.algebraicconnectivity._tracemin_fiedler( + L, X, normalized=False, tol=1e-8, method="tracemin_unknown" + ) + + +def test_spectral_bisection(): + pytest.importorskip("scipy") + G = nx.barbell_graph(3, 0) + C = nx.spectral_bisection(G) + assert C == ({0, 1, 2}, {3, 4, 5}) + + mapping = dict(enumerate("badfec")) + G = nx.relabel_nodes(G, mapping) + C = nx.spectral_bisection(G) + assert C == ( + {mapping[0], mapping[1], mapping[2]}, + {mapping[3], mapping[4], mapping[5]}, + ) + + +def check_eigenvector(A, l, x): + nx = np.linalg.norm(x) + # Check zeroness. + assert nx != pytest.approx(0, abs=1e-07) + y = A @ x + ny = np.linalg.norm(y) + # Check collinearity. + assert x @ y == pytest.approx(nx * ny, abs=1e-7) + # Check eigenvalue. + assert ny == pytest.approx(l * nx, abs=1e-7) + + +class TestAlgebraicConnectivity: + @pytest.mark.parametrize("method", methods) + def test_directed(self, method): + G = nx.DiGraph() + pytest.raises( + nx.NetworkXNotImplemented, nx.algebraic_connectivity, G, method=method + ) + pytest.raises(nx.NetworkXNotImplemented, nx.fiedler_vector, G, method=method) + + @pytest.mark.parametrize("method", methods) + def test_null_and_singleton(self, method): + G = nx.Graph() + pytest.raises(nx.NetworkXError, nx.algebraic_connectivity, G, method=method) + pytest.raises(nx.NetworkXError, nx.fiedler_vector, G, method=method) + G.add_edge(0, 0) + pytest.raises(nx.NetworkXError, nx.algebraic_connectivity, G, method=method) + pytest.raises(nx.NetworkXError, nx.fiedler_vector, G, method=method) + + @pytest.mark.parametrize("method", methods) + def test_disconnected(self, method): + G = nx.Graph() + G.add_nodes_from(range(2)) + assert nx.algebraic_connectivity(G) == 0 + pytest.raises(nx.NetworkXError, nx.fiedler_vector, G, method=method) + G.add_edge(0, 1, weight=0) + assert nx.algebraic_connectivity(G) == 0 + pytest.raises(nx.NetworkXError, nx.fiedler_vector, G, method=method) + + def test_unrecognized_method(self): + pytest.importorskip("scipy") + G = nx.path_graph(4) + pytest.raises(nx.NetworkXError, nx.algebraic_connectivity, G, method="unknown") + pytest.raises(nx.NetworkXError, nx.fiedler_vector, G, method="unknown") + + @pytest.mark.parametrize("method", methods) + def test_two_nodes(self, method): + pytest.importorskip("scipy") + G = nx.Graph() + G.add_edge(0, 1, weight=1) + A = nx.laplacian_matrix(G) + assert nx.algebraic_connectivity(G, tol=1e-12, method=method) == pytest.approx( + 2, abs=1e-7 + ) + x = nx.fiedler_vector(G, tol=1e-12, method=method) + check_eigenvector(A, 2, x) + + @pytest.mark.parametrize("method", methods) + def test_two_nodes_multigraph(self, method): + pytest.importorskip("scipy") + G = nx.MultiGraph() + G.add_edge(0, 0, spam=1e8) + G.add_edge(0, 1, spam=1) + G.add_edge(0, 1, spam=-2) + A = -3 * nx.laplacian_matrix(G, weight="spam") + assert nx.algebraic_connectivity( + G, weight="spam", tol=1e-12, method=method + ) == pytest.approx(6, abs=1e-7) + x = nx.fiedler_vector(G, weight="spam", tol=1e-12, method=method) + check_eigenvector(A, 6, x) + + def test_abbreviation_of_method(self): + pytest.importorskip("scipy") + G = nx.path_graph(8) + A = nx.laplacian_matrix(G) + sigma = 2 - sqrt(2 + sqrt(2)) + ac = nx.algebraic_connectivity(G, tol=1e-12, method="tracemin") + assert ac == pytest.approx(sigma, abs=1e-7) + x = nx.fiedler_vector(G, tol=1e-12, method="tracemin") + check_eigenvector(A, sigma, x) + + @pytest.mark.parametrize("method", methods) + def test_path(self, method): + pytest.importorskip("scipy") + G = nx.path_graph(8) + A = nx.laplacian_matrix(G) + sigma = 2 - sqrt(2 + sqrt(2)) + ac = nx.algebraic_connectivity(G, tol=1e-12, method=method) + assert ac == pytest.approx(sigma, abs=1e-7) + x = nx.fiedler_vector(G, tol=1e-12, method=method) + check_eigenvector(A, sigma, x) + + @pytest.mark.parametrize("method", methods) + def test_problematic_graph_issue_2381(self, method): + pytest.importorskip("scipy") + G = nx.path_graph(4) + G.add_edges_from([(4, 2), (5, 1)]) + A = nx.laplacian_matrix(G) + sigma = 0.438447187191 + ac = nx.algebraic_connectivity(G, tol=1e-12, method=method) + assert ac == pytest.approx(sigma, abs=1e-7) + x = nx.fiedler_vector(G, tol=1e-12, method=method) + check_eigenvector(A, sigma, x) + + @pytest.mark.parametrize("method", methods) + def test_cycle(self, method): + pytest.importorskip("scipy") + G = nx.cycle_graph(8) + A = nx.laplacian_matrix(G) + sigma = 2 - sqrt(2) + ac = nx.algebraic_connectivity(G, tol=1e-12, method=method) + assert ac == pytest.approx(sigma, abs=1e-7) + x = nx.fiedler_vector(G, tol=1e-12, method=method) + check_eigenvector(A, sigma, x) + + @pytest.mark.parametrize("method", methods) + def test_seed_argument(self, method): + pytest.importorskip("scipy") + G = nx.cycle_graph(8) + A = nx.laplacian_matrix(G) + sigma = 2 - sqrt(2) + ac = nx.algebraic_connectivity(G, tol=1e-12, method=method, seed=1) + assert ac == pytest.approx(sigma, abs=1e-7) + x = nx.fiedler_vector(G, tol=1e-12, method=method, seed=1) + check_eigenvector(A, sigma, x) + + @pytest.mark.parametrize( + ("normalized", "sigma", "laplacian_fn"), + ( + (False, 0.2434017461399311, nx.laplacian_matrix), + (True, 0.08113391537997749, nx.normalized_laplacian_matrix), + ), + ) + @pytest.mark.parametrize("method", methods) + def test_buckminsterfullerene(self, normalized, sigma, laplacian_fn, method): + pytest.importorskip("scipy") + G = nx.Graph( + [ + (1, 10), + (1, 41), + (1, 59), + (2, 12), + (2, 42), + (2, 60), + (3, 6), + (3, 43), + (3, 57), + (4, 8), + (4, 44), + (4, 58), + (5, 13), + (5, 56), + (5, 57), + (6, 10), + (6, 31), + (7, 14), + (7, 56), + (7, 58), + (8, 12), + (8, 32), + (9, 23), + (9, 53), + (9, 59), + (10, 15), + (11, 24), + (11, 53), + (11, 60), + (12, 16), + (13, 14), + (13, 25), + (14, 26), + (15, 27), + (15, 49), + (16, 28), + (16, 50), + (17, 18), + (17, 19), + (17, 54), + (18, 20), + (18, 55), + (19, 23), + (19, 41), + (20, 24), + (20, 42), + (21, 31), + (21, 33), + (21, 57), + (22, 32), + (22, 34), + (22, 58), + (23, 24), + (25, 35), + (25, 43), + (26, 36), + (26, 44), + (27, 51), + (27, 59), + (28, 52), + (28, 60), + (29, 33), + (29, 34), + (29, 56), + (30, 51), + (30, 52), + (30, 53), + (31, 47), + (32, 48), + (33, 45), + (34, 46), + (35, 36), + (35, 37), + (36, 38), + (37, 39), + (37, 49), + (38, 40), + (38, 50), + (39, 40), + (39, 51), + (40, 52), + (41, 47), + (42, 48), + (43, 49), + (44, 50), + (45, 46), + (45, 54), + (46, 55), + (47, 54), + (48, 55), + ] + ) + A = laplacian_fn(G) + try: + assert nx.algebraic_connectivity( + G, normalized=normalized, tol=1e-12, method=method + ) == pytest.approx(sigma, abs=1e-7) + x = nx.fiedler_vector(G, normalized=normalized, tol=1e-12, method=method) + check_eigenvector(A, sigma, x) + except nx.NetworkXError as err: + if err.args not in ( + ("Cholesky solver unavailable.",), + ("LU solver unavailable.",), + ): + raise + + +class TestSpectralOrdering: + _graphs = (nx.Graph, nx.DiGraph, nx.MultiGraph, nx.MultiDiGraph) + + @pytest.mark.parametrize("graph", _graphs) + def test_nullgraph(self, graph): + G = graph() + pytest.raises(nx.NetworkXError, nx.spectral_ordering, G) + + @pytest.mark.parametrize("graph", _graphs) + def test_singleton(self, graph): + G = graph() + G.add_node("x") + assert nx.spectral_ordering(G) == ["x"] + G.add_edge("x", "x", weight=33) + G.add_edge("x", "x", weight=33) + assert nx.spectral_ordering(G) == ["x"] + + def test_unrecognized_method(self): + G = nx.path_graph(4) + pytest.raises(nx.NetworkXError, nx.spectral_ordering, G, method="unknown") + + @pytest.mark.parametrize("method", methods) + def test_three_nodes(self, method): + pytest.importorskip("scipy") + G = nx.Graph() + G.add_weighted_edges_from([(1, 2, 1), (1, 3, 2), (2, 3, 1)], weight="spam") + order = nx.spectral_ordering(G, weight="spam", method=method) + assert set(order) == set(G) + assert {1, 3} in (set(order[:-1]), set(order[1:])) + + @pytest.mark.parametrize("method", methods) + def test_three_nodes_multigraph(self, method): + pytest.importorskip("scipy") + G = nx.MultiDiGraph() + G.add_weighted_edges_from([(1, 2, 1), (1, 3, 2), (2, 3, 1), (2, 3, 2)]) + order = nx.spectral_ordering(G, method=method) + assert set(order) == set(G) + assert {2, 3} in (set(order[:-1]), set(order[1:])) + + @pytest.mark.parametrize("method", methods) + def test_path(self, method): + pytest.importorskip("scipy") + path = list(range(10)) + np.random.shuffle(path) + G = nx.Graph() + nx.add_path(G, path) + order = nx.spectral_ordering(G, method=method) + assert order in [path, list(reversed(path))] + + @pytest.mark.parametrize("method", methods) + def test_seed_argument(self, method): + pytest.importorskip("scipy") + path = list(range(10)) + np.random.shuffle(path) + G = nx.Graph() + nx.add_path(G, path) + order = nx.spectral_ordering(G, method=method, seed=1) + assert order in [path, list(reversed(path))] + + @pytest.mark.parametrize("method", methods) + def test_disconnected(self, method): + pytest.importorskip("scipy") + G = nx.Graph() + nx.add_path(G, range(0, 10, 2)) + nx.add_path(G, range(1, 10, 2)) + order = nx.spectral_ordering(G, method=method) + assert set(order) == set(G) + seqs = [ + list(range(0, 10, 2)), + list(range(8, -1, -2)), + list(range(1, 10, 2)), + list(range(9, -1, -2)), + ] + assert order[:5] in seqs + assert order[5:] in seqs + + @pytest.mark.parametrize( + ("normalized", "expected_order"), + ( + (False, [[1, 2, 0, 3, 4, 5, 6, 9, 7, 8], [8, 7, 9, 6, 5, 4, 3, 0, 2, 1]]), + (True, [[1, 2, 3, 0, 4, 5, 9, 6, 7, 8], [8, 7, 6, 9, 5, 4, 0, 3, 2, 1]]), + ), + ) + @pytest.mark.parametrize("method", methods) + def test_cycle(self, normalized, expected_order, method): + pytest.importorskip("scipy") + path = list(range(10)) + G = nx.Graph() + nx.add_path(G, path, weight=5) + G.add_edge(path[-1], path[0], weight=1) + A = nx.laplacian_matrix(G).todense() + order = nx.spectral_ordering(G, normalized=normalized, method=method) + assert order in expected_order diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_attrmatrix.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_attrmatrix.py new file mode 100644 index 0000000000000000000000000000000000000000..05a3b94f3a727715f3d0b9ea67af8d44676c9170 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_attrmatrix.py @@ -0,0 +1,108 @@ +import pytest + +import networkx as nx + +np = pytest.importorskip("numpy") + + +def test_attr_matrix(): + G = nx.Graph() + G.add_edge(0, 1, thickness=1, weight=3) + G.add_edge(0, 1, thickness=1, weight=3) + G.add_edge(0, 2, thickness=2) + G.add_edge(1, 2, thickness=3) + + def node_attr(u): + return G.nodes[u].get("size", 0.5) * 3 + + def edge_attr(u, v): + return G[u][v].get("thickness", 0.5) + + M = nx.attr_matrix(G, edge_attr=edge_attr, node_attr=node_attr) + np.testing.assert_equal(M[0], np.array([[6.0]])) + assert M[1] == [1.5] + + +def test_attr_matrix_directed(): + G = nx.DiGraph() + G.add_edge(0, 1, thickness=1, weight=3) + G.add_edge(0, 1, thickness=1, weight=3) + G.add_edge(0, 2, thickness=2) + G.add_edge(1, 2, thickness=3) + M = nx.attr_matrix(G, rc_order=[0, 1, 2]) + # fmt: off + data = np.array( + [[0., 1., 1.], + [0., 0., 1.], + [0., 0., 0.]] + ) + # fmt: on + np.testing.assert_equal(M, np.array(data)) + + +def test_attr_matrix_multigraph(): + G = nx.MultiGraph() + G.add_edge(0, 1, thickness=1, weight=3) + G.add_edge(0, 1, thickness=1, weight=3) + G.add_edge(0, 1, thickness=1, weight=3) + G.add_edge(0, 2, thickness=2) + G.add_edge(1, 2, thickness=3) + M = nx.attr_matrix(G, rc_order=[0, 1, 2]) + # fmt: off + data = np.array( + [[0., 3., 1.], + [3., 0., 1.], + [1., 1., 0.]] + ) + # fmt: on + np.testing.assert_equal(M, np.array(data)) + M = nx.attr_matrix(G, edge_attr="weight", rc_order=[0, 1, 2]) + # fmt: off + data = np.array( + [[0., 9., 1.], + [9., 0., 1.], + [1., 1., 0.]] + ) + # fmt: on + np.testing.assert_equal(M, np.array(data)) + M = nx.attr_matrix(G, edge_attr="thickness", rc_order=[0, 1, 2]) + # fmt: off + data = np.array( + [[0., 3., 2.], + [3., 0., 3.], + [2., 3., 0.]] + ) + # fmt: on + np.testing.assert_equal(M, np.array(data)) + + +def test_attr_sparse_matrix(): + pytest.importorskip("scipy") + G = nx.Graph() + G.add_edge(0, 1, thickness=1, weight=3) + G.add_edge(0, 2, thickness=2) + G.add_edge(1, 2, thickness=3) + M = nx.attr_sparse_matrix(G) + mtx = M[0] + data = np.ones((3, 3), float) + np.fill_diagonal(data, 0) + np.testing.assert_equal(mtx.todense(), np.array(data)) + assert M[1] == [0, 1, 2] + + +def test_attr_sparse_matrix_directed(): + pytest.importorskip("scipy") + G = nx.DiGraph() + G.add_edge(0, 1, thickness=1, weight=3) + G.add_edge(0, 1, thickness=1, weight=3) + G.add_edge(0, 2, thickness=2) + G.add_edge(1, 2, thickness=3) + M = nx.attr_sparse_matrix(G, rc_order=[0, 1, 2]) + # fmt: off + data = np.array( + [[0., 1., 1.], + [0., 0., 1.], + [0., 0., 0.]] + ) + # fmt: on + np.testing.assert_equal(M.todense(), np.array(data)) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_bethehessian.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_bethehessian.py new file mode 100644 index 0000000000000000000000000000000000000000..92b745b882ad2eed6dea2c87b98bfcd87938a233 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_bethehessian.py @@ -0,0 +1,40 @@ +import pytest + +import networkx as nx + +np = pytest.importorskip("numpy") +pytest.importorskip("scipy") + + +class TestBetheHessian: + @classmethod + def setup_class(cls): + deg = [3, 2, 2, 1, 0] + cls.G = nx.havel_hakimi_graph(deg) + cls.P = nx.path_graph(3) + + def test_bethe_hessian(self): + "Bethe Hessian matrix" + # fmt: off + H = np.array([[4, -2, 0], + [-2, 5, -2], + [0, -2, 4]]) + # fmt: on + permutation = [2, 0, 1] + # Bethe Hessian gives expected form + np.testing.assert_equal(nx.bethe_hessian_matrix(self.P, r=2).todense(), H) + # nodelist is correctly implemented + np.testing.assert_equal( + nx.bethe_hessian_matrix(self.P, r=2, nodelist=permutation).todense(), + H[np.ix_(permutation, permutation)], + ) + # Equal to Laplacian matrix when r=1 + np.testing.assert_equal( + nx.bethe_hessian_matrix(self.G, r=1).todense(), + nx.laplacian_matrix(self.G).todense(), + ) + # Correct default for the regularizer r + np.testing.assert_equal( + nx.bethe_hessian_matrix(self.G).todense(), + nx.bethe_hessian_matrix(self.G, r=1.25).todense(), + ) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_graphmatrix.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_graphmatrix.py new file mode 100644 index 0000000000000000000000000000000000000000..d84a397d81caa15ab3f0ecbbf6eb6afeee82cbc2 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_graphmatrix.py @@ -0,0 +1,275 @@ +import pytest + +import networkx as nx +from networkx.exception import NetworkXError + +np = pytest.importorskip("numpy") +pytest.importorskip("scipy") + + +def test_incidence_matrix_simple(): + deg = [3, 2, 2, 1, 0] + G = nx.havel_hakimi_graph(deg) + deg = [(1, 0), (1, 0), (1, 0), (2, 0), (1, 0), (2, 1), (0, 1), (0, 1)] + MG = nx.random_clustered_graph(deg, seed=42) + + I = nx.incidence_matrix(G, dtype=int).todense() + # fmt: off + expected = np.array( + [[1, 1, 1, 0], + [0, 1, 0, 1], + [1, 0, 0, 1], + [0, 0, 1, 0], + [0, 0, 0, 0]] + ) + # fmt: on + np.testing.assert_equal(I, expected) + + I = nx.incidence_matrix(MG, dtype=int).todense() + # fmt: off + expected = np.array( + [[1, 0, 0, 0, 0, 0, 0], + [1, 0, 0, 0, 0, 0, 0], + [0, 1, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0], + [0, 1, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 1, 1, 0], + [0, 0, 0, 0, 0, 1, 1], + [0, 0, 0, 0, 1, 0, 1]] + ) + # fmt: on + np.testing.assert_equal(I, expected) + + with pytest.raises(NetworkXError): + nx.incidence_matrix(G, nodelist=[0, 1]) + + +class TestGraphMatrix: + @classmethod + def setup_class(cls): + deg = [3, 2, 2, 1, 0] + cls.G = nx.havel_hakimi_graph(deg) + # fmt: off + cls.OI = np.array( + [[-1, -1, -1, 0], + [1, 0, 0, -1], + [0, 1, 0, 1], + [0, 0, 1, 0], + [0, 0, 0, 0]] + ) + cls.A = np.array( + [[0, 1, 1, 1, 0], + [1, 0, 1, 0, 0], + [1, 1, 0, 0, 0], + [1, 0, 0, 0, 0], + [0, 0, 0, 0, 0]] + ) + # fmt: on + cls.WG = nx.havel_hakimi_graph(deg) + cls.WG.add_edges_from( + (u, v, {"weight": 0.5, "other": 0.3}) for (u, v) in cls.G.edges() + ) + # fmt: off + cls.WA = np.array( + [[0, 0.5, 0.5, 0.5, 0], + [0.5, 0, 0.5, 0, 0], + [0.5, 0.5, 0, 0, 0], + [0.5, 0, 0, 0, 0], + [0, 0, 0, 0, 0]] + ) + # fmt: on + cls.MG = nx.MultiGraph(cls.G) + cls.MG2 = cls.MG.copy() + cls.MG2.add_edge(0, 1) + # fmt: off + cls.MG2A = np.array( + [[0, 2, 1, 1, 0], + [2, 0, 1, 0, 0], + [1, 1, 0, 0, 0], + [1, 0, 0, 0, 0], + [0, 0, 0, 0, 0]] + ) + cls.MGOI = np.array( + [[-1, -1, -1, -1, 0], + [1, 1, 0, 0, -1], + [0, 0, 1, 0, 1], + [0, 0, 0, 1, 0], + [0, 0, 0, 0, 0]] + ) + # fmt: on + cls.no_edges_G = nx.Graph([(1, 2), (3, 2, {"weight": 8})]) + cls.no_edges_A = np.array([[0, 0], [0, 0]]) + + def test_incidence_matrix(self): + "Conversion to incidence matrix" + I = nx.incidence_matrix( + self.G, + nodelist=sorted(self.G), + edgelist=sorted(self.G.edges()), + oriented=True, + dtype=int, + ).todense() + np.testing.assert_equal(I, self.OI) + + I = nx.incidence_matrix( + self.G, + nodelist=sorted(self.G), + edgelist=sorted(self.G.edges()), + oriented=False, + dtype=int, + ).todense() + np.testing.assert_equal(I, np.abs(self.OI)) + + I = nx.incidence_matrix( + self.MG, + nodelist=sorted(self.MG), + edgelist=sorted(self.MG.edges()), + oriented=True, + dtype=int, + ).todense() + np.testing.assert_equal(I, self.OI) + + I = nx.incidence_matrix( + self.MG, + nodelist=sorted(self.MG), + edgelist=sorted(self.MG.edges()), + oriented=False, + dtype=int, + ).todense() + np.testing.assert_equal(I, np.abs(self.OI)) + + I = nx.incidence_matrix( + self.MG2, + nodelist=sorted(self.MG2), + edgelist=sorted(self.MG2.edges()), + oriented=True, + dtype=int, + ).todense() + np.testing.assert_equal(I, self.MGOI) + + I = nx.incidence_matrix( + self.MG2, + nodelist=sorted(self.MG), + edgelist=sorted(self.MG2.edges()), + oriented=False, + dtype=int, + ).todense() + np.testing.assert_equal(I, np.abs(self.MGOI)) + + I = nx.incidence_matrix(self.G, dtype=np.uint8) + assert I.dtype == np.uint8 + + def test_weighted_incidence_matrix(self): + I = nx.incidence_matrix( + self.WG, + nodelist=sorted(self.WG), + edgelist=sorted(self.WG.edges()), + oriented=True, + dtype=int, + ).todense() + np.testing.assert_equal(I, self.OI) + + I = nx.incidence_matrix( + self.WG, + nodelist=sorted(self.WG), + edgelist=sorted(self.WG.edges()), + oriented=False, + dtype=int, + ).todense() + np.testing.assert_equal(I, np.abs(self.OI)) + + # np.testing.assert_equal(nx.incidence_matrix(self.WG,oriented=True, + # weight='weight').todense(),0.5*self.OI) + # np.testing.assert_equal(nx.incidence_matrix(self.WG,weight='weight').todense(), + # np.abs(0.5*self.OI)) + # np.testing.assert_equal(nx.incidence_matrix(self.WG,oriented=True,weight='other').todense(), + # 0.3*self.OI) + + I = nx.incidence_matrix( + self.WG, + nodelist=sorted(self.WG), + edgelist=sorted(self.WG.edges()), + oriented=True, + weight="weight", + ).todense() + np.testing.assert_equal(I, 0.5 * self.OI) + + I = nx.incidence_matrix( + self.WG, + nodelist=sorted(self.WG), + edgelist=sorted(self.WG.edges()), + oriented=False, + weight="weight", + ).todense() + np.testing.assert_equal(I, np.abs(0.5 * self.OI)) + + I = nx.incidence_matrix( + self.WG, + nodelist=sorted(self.WG), + edgelist=sorted(self.WG.edges()), + oriented=True, + weight="other", + ).todense() + np.testing.assert_equal(I, 0.3 * self.OI) + + # WMG=nx.MultiGraph(self.WG) + # WMG.add_edge(0,1,weight=0.5,other=0.3) + # np.testing.assert_equal(nx.incidence_matrix(WMG,weight='weight').todense(), + # np.abs(0.5*self.MGOI)) + # np.testing.assert_equal(nx.incidence_matrix(WMG,weight='weight',oriented=True).todense(), + # 0.5*self.MGOI) + # np.testing.assert_equal(nx.incidence_matrix(WMG,weight='other',oriented=True).todense(), + # 0.3*self.MGOI) + + WMG = nx.MultiGraph(self.WG) + WMG.add_edge(0, 1, weight=0.5, other=0.3) + + I = nx.incidence_matrix( + WMG, + nodelist=sorted(WMG), + edgelist=sorted(WMG.edges(keys=True)), + oriented=True, + weight="weight", + ).todense() + np.testing.assert_equal(I, 0.5 * self.MGOI) + + I = nx.incidence_matrix( + WMG, + nodelist=sorted(WMG), + edgelist=sorted(WMG.edges(keys=True)), + oriented=False, + weight="weight", + ).todense() + np.testing.assert_equal(I, np.abs(0.5 * self.MGOI)) + + I = nx.incidence_matrix( + WMG, + nodelist=sorted(WMG), + edgelist=sorted(WMG.edges(keys=True)), + oriented=True, + weight="other", + ).todense() + np.testing.assert_equal(I, 0.3 * self.MGOI) + + def test_adjacency_matrix(self): + "Conversion to adjacency matrix" + np.testing.assert_equal(nx.adjacency_matrix(self.G).todense(), self.A) + np.testing.assert_equal(nx.adjacency_matrix(self.MG).todense(), self.A) + np.testing.assert_equal(nx.adjacency_matrix(self.MG2).todense(), self.MG2A) + np.testing.assert_equal( + nx.adjacency_matrix(self.G, nodelist=[0, 1]).todense(), self.A[:2, :2] + ) + np.testing.assert_equal(nx.adjacency_matrix(self.WG).todense(), self.WA) + np.testing.assert_equal( + nx.adjacency_matrix(self.WG, weight=None).todense(), self.A + ) + np.testing.assert_equal( + nx.adjacency_matrix(self.MG2, weight=None).todense(), self.MG2A + ) + np.testing.assert_equal( + nx.adjacency_matrix(self.WG, weight="other").todense(), 0.6 * self.WA + ) + np.testing.assert_equal( + nx.adjacency_matrix(self.no_edges_G, nodelist=[1, 3]).todense(), + self.no_edges_A, + ) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_laplacian.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_laplacian.py new file mode 100644 index 0000000000000000000000000000000000000000..b1d5c13e8d676c6b9d3e87f148051b7bccf9da30 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_laplacian.py @@ -0,0 +1,334 @@ +import pytest + +import networkx as nx + +np = pytest.importorskip("numpy") +pytest.importorskip("scipy") + + +class TestLaplacian: + @classmethod + def setup_class(cls): + deg = [3, 2, 2, 1, 0] + cls.G = nx.havel_hakimi_graph(deg) + cls.WG = nx.Graph( + (u, v, {"weight": 0.5, "other": 0.3}) for (u, v) in cls.G.edges() + ) + cls.WG.add_node(4) + cls.MG = nx.MultiGraph(cls.G) + + # Graph with clsloops + cls.Gsl = cls.G.copy() + for node in cls.Gsl.nodes(): + cls.Gsl.add_edge(node, node) + + # Graph used as an example in Sec. 4.1 of Langville and Meyer, + # "Google's PageRank and Beyond". + cls.DiG = nx.DiGraph() + cls.DiG.add_edges_from( + ( + (1, 2), + (1, 3), + (3, 1), + (3, 2), + (3, 5), + (4, 5), + (4, 6), + (5, 4), + (5, 6), + (6, 4), + ) + ) + cls.DiMG = nx.MultiDiGraph(cls.DiG) + cls.DiWG = nx.DiGraph( + (u, v, {"weight": 0.5, "other": 0.3}) for (u, v) in cls.DiG.edges() + ) + cls.DiGsl = cls.DiG.copy() + for node in cls.DiGsl.nodes(): + cls.DiGsl.add_edge(node, node) + + def test_laplacian(self): + "Graph Laplacian" + # fmt: off + NL = np.array([[ 3, -1, -1, -1, 0], + [-1, 2, -1, 0, 0], + [-1, -1, 2, 0, 0], + [-1, 0, 0, 1, 0], + [ 0, 0, 0, 0, 0]]) + # fmt: on + WL = 0.5 * NL + OL = 0.3 * NL + # fmt: off + DiNL = np.array([[ 2, -1, -1, 0, 0, 0], + [ 0, 0, 0, 0, 0, 0], + [-1, -1, 3, -1, 0, 0], + [ 0, 0, 0, 2, -1, -1], + [ 0, 0, 0, -1, 2, -1], + [ 0, 0, 0, 0, -1, 1]]) + # fmt: on + DiWL = 0.5 * DiNL + DiOL = 0.3 * DiNL + np.testing.assert_equal(nx.laplacian_matrix(self.G).todense(), NL) + np.testing.assert_equal(nx.laplacian_matrix(self.MG).todense(), NL) + np.testing.assert_equal( + nx.laplacian_matrix(self.G, nodelist=[0, 1]).todense(), + np.array([[1, -1], [-1, 1]]), + ) + np.testing.assert_equal(nx.laplacian_matrix(self.WG).todense(), WL) + np.testing.assert_equal(nx.laplacian_matrix(self.WG, weight=None).todense(), NL) + np.testing.assert_equal( + nx.laplacian_matrix(self.WG, weight="other").todense(), OL + ) + + np.testing.assert_equal(nx.laplacian_matrix(self.DiG).todense(), DiNL) + np.testing.assert_equal(nx.laplacian_matrix(self.DiMG).todense(), DiNL) + np.testing.assert_equal( + nx.laplacian_matrix(self.DiG, nodelist=[1, 2]).todense(), + np.array([[1, -1], [0, 0]]), + ) + np.testing.assert_equal(nx.laplacian_matrix(self.DiWG).todense(), DiWL) + np.testing.assert_equal( + nx.laplacian_matrix(self.DiWG, weight=None).todense(), DiNL + ) + np.testing.assert_equal( + nx.laplacian_matrix(self.DiWG, weight="other").todense(), DiOL + ) + + def test_normalized_laplacian(self): + "Generalized Graph Laplacian" + # fmt: off + G = np.array([[ 1. , -0.408, -0.408, -0.577, 0.], + [-0.408, 1. , -0.5 , 0. , 0.], + [-0.408, -0.5 , 1. , 0. , 0.], + [-0.577, 0. , 0. , 1. , 0.], + [ 0. , 0. , 0. , 0. , 0.]]) + GL = np.array([[ 1. , -0.408, -0.408, -0.577, 0. ], + [-0.408, 1. , -0.5 , 0. , 0. ], + [-0.408, -0.5 , 1. , 0. , 0. ], + [-0.577, 0. , 0. , 1. , 0. ], + [ 0. , 0. , 0. , 0. , 0. ]]) + Lsl = np.array([[ 0.75 , -0.2887, -0.2887, -0.3536, 0. ], + [-0.2887, 0.6667, -0.3333, 0. , 0. ], + [-0.2887, -0.3333, 0.6667, 0. , 0. ], + [-0.3536, 0. , 0. , 0.5 , 0. ], + [ 0. , 0. , 0. , 0. , 0. ]]) + + DiG = np.array([[ 1. , 0. , -0.4082, 0. , 0. , 0. ], + [ 0. , 0. , 0. , 0. , 0. , 0. ], + [-0.4082, 0. , 1. , 0. , -0.4082, 0. ], + [ 0. , 0. , 0. , 1. , -0.5 , -0.7071], + [ 0. , 0. , 0. , -0.5 , 1. , -0.7071], + [ 0. , 0. , 0. , -0.7071, 0. , 1. ]]) + DiGL = np.array([[ 1. , 0. , -0.4082, 0. , 0. , 0. ], + [ 0. , 0. , 0. , 0. , 0. , 0. ], + [-0.4082, 0. , 1. , -0.4082, 0. , 0. ], + [ 0. , 0. , 0. , 1. , -0.5 , -0.7071], + [ 0. , 0. , 0. , -0.5 , 1. , -0.7071], + [ 0. , 0. , 0. , 0. , -0.7071, 1. ]]) + DiLsl = np.array([[ 0.6667, -0.5774, -0.2887, 0. , 0. , 0. ], + [ 0. , 0. , 0. , 0. , 0. , 0. ], + [-0.2887, -0.5 , 0.75 , -0.2887, 0. , 0. ], + [ 0. , 0. , 0. , 0.6667, -0.3333, -0.4082], + [ 0. , 0. , 0. , -0.3333, 0.6667, -0.4082], + [ 0. , 0. , 0. , 0. , -0.4082, 0.5 ]]) + # fmt: on + + np.testing.assert_almost_equal( + nx.normalized_laplacian_matrix(self.G, nodelist=range(5)).todense(), + G, + decimal=3, + ) + np.testing.assert_almost_equal( + nx.normalized_laplacian_matrix(self.G).todense(), GL, decimal=3 + ) + np.testing.assert_almost_equal( + nx.normalized_laplacian_matrix(self.MG).todense(), GL, decimal=3 + ) + np.testing.assert_almost_equal( + nx.normalized_laplacian_matrix(self.WG).todense(), GL, decimal=3 + ) + np.testing.assert_almost_equal( + nx.normalized_laplacian_matrix(self.WG, weight="other").todense(), + GL, + decimal=3, + ) + np.testing.assert_almost_equal( + nx.normalized_laplacian_matrix(self.Gsl).todense(), Lsl, decimal=3 + ) + + np.testing.assert_almost_equal( + nx.normalized_laplacian_matrix( + self.DiG, + nodelist=range(1, 1 + 6), + ).todense(), + DiG, + decimal=3, + ) + np.testing.assert_almost_equal( + nx.normalized_laplacian_matrix(self.DiG).todense(), DiGL, decimal=3 + ) + np.testing.assert_almost_equal( + nx.normalized_laplacian_matrix(self.DiMG).todense(), DiGL, decimal=3 + ) + np.testing.assert_almost_equal( + nx.normalized_laplacian_matrix(self.DiWG).todense(), DiGL, decimal=3 + ) + np.testing.assert_almost_equal( + nx.normalized_laplacian_matrix(self.DiWG, weight="other").todense(), + DiGL, + decimal=3, + ) + np.testing.assert_almost_equal( + nx.normalized_laplacian_matrix(self.DiGsl).todense(), DiLsl, decimal=3 + ) + + +def test_directed_laplacian(): + "Directed Laplacian" + # Graph used as an example in Sec. 4.1 of Langville and Meyer, + # "Google's PageRank and Beyond". The graph contains dangling nodes, so + # the pagerank random walk is selected by directed_laplacian + G = nx.DiGraph() + G.add_edges_from( + ( + (1, 2), + (1, 3), + (3, 1), + (3, 2), + (3, 5), + (4, 5), + (4, 6), + (5, 4), + (5, 6), + (6, 4), + ) + ) + # fmt: off + GL = np.array([[ 0.9833, -0.2941, -0.3882, -0.0291, -0.0231, -0.0261], + [-0.2941, 0.8333, -0.2339, -0.0536, -0.0589, -0.0554], + [-0.3882, -0.2339, 0.9833, -0.0278, -0.0896, -0.0251], + [-0.0291, -0.0536, -0.0278, 0.9833, -0.4878, -0.6675], + [-0.0231, -0.0589, -0.0896, -0.4878, 0.9833, -0.2078], + [-0.0261, -0.0554, -0.0251, -0.6675, -0.2078, 0.9833]]) + # fmt: on + L = nx.directed_laplacian_matrix(G, alpha=0.9, nodelist=sorted(G)) + np.testing.assert_almost_equal(L, GL, decimal=3) + + # Make the graph strongly connected, so we can use a random and lazy walk + G.add_edges_from(((2, 5), (6, 1))) + # fmt: off + GL = np.array([[ 1. , -0.3062, -0.4714, 0. , 0. , -0.3227], + [-0.3062, 1. , -0.1443, 0. , -0.3162, 0. ], + [-0.4714, -0.1443, 1. , 0. , -0.0913, 0. ], + [ 0. , 0. , 0. , 1. , -0.5 , -0.5 ], + [ 0. , -0.3162, -0.0913, -0.5 , 1. , -0.25 ], + [-0.3227, 0. , 0. , -0.5 , -0.25 , 1. ]]) + # fmt: on + L = nx.directed_laplacian_matrix( + G, alpha=0.9, nodelist=sorted(G), walk_type="random" + ) + np.testing.assert_almost_equal(L, GL, decimal=3) + + # fmt: off + GL = np.array([[ 0.5 , -0.1531, -0.2357, 0. , 0. , -0.1614], + [-0.1531, 0.5 , -0.0722, 0. , -0.1581, 0. ], + [-0.2357, -0.0722, 0.5 , 0. , -0.0456, 0. ], + [ 0. , 0. , 0. , 0.5 , -0.25 , -0.25 ], + [ 0. , -0.1581, -0.0456, -0.25 , 0.5 , -0.125 ], + [-0.1614, 0. , 0. , -0.25 , -0.125 , 0.5 ]]) + # fmt: on + L = nx.directed_laplacian_matrix(G, alpha=0.9, nodelist=sorted(G), walk_type="lazy") + np.testing.assert_almost_equal(L, GL, decimal=3) + + # Make a strongly connected periodic graph + G = nx.DiGraph() + G.add_edges_from(((1, 2), (2, 4), (4, 1), (1, 3), (3, 4))) + # fmt: off + GL = np.array([[ 0.5 , -0.176, -0.176, -0.25 ], + [-0.176, 0.5 , 0. , -0.176], + [-0.176, 0. , 0.5 , -0.176], + [-0.25 , -0.176, -0.176, 0.5 ]]) + # fmt: on + L = nx.directed_laplacian_matrix(G, alpha=0.9, nodelist=sorted(G)) + np.testing.assert_almost_equal(L, GL, decimal=3) + + +def test_directed_combinatorial_laplacian(): + "Directed combinatorial Laplacian" + # Graph used as an example in Sec. 4.1 of Langville and Meyer, + # "Google's PageRank and Beyond". The graph contains dangling nodes, so + # the pagerank random walk is selected by directed_laplacian + G = nx.DiGraph() + G.add_edges_from( + ( + (1, 2), + (1, 3), + (3, 1), + (3, 2), + (3, 5), + (4, 5), + (4, 6), + (5, 4), + (5, 6), + (6, 4), + ) + ) + # fmt: off + GL = np.array([[ 0.0366, -0.0132, -0.0153, -0.0034, -0.0020, -0.0027], + [-0.0132, 0.0450, -0.0111, -0.0076, -0.0062, -0.0069], + [-0.0153, -0.0111, 0.0408, -0.0035, -0.0083, -0.0027], + [-0.0034, -0.0076, -0.0035, 0.3688, -0.1356, -0.2187], + [-0.0020, -0.0062, -0.0083, -0.1356, 0.2026, -0.0505], + [-0.0027, -0.0069, -0.0027, -0.2187, -0.0505, 0.2815]]) + # fmt: on + + L = nx.directed_combinatorial_laplacian_matrix(G, alpha=0.9, nodelist=sorted(G)) + np.testing.assert_almost_equal(L, GL, decimal=3) + + # Make the graph strongly connected, so we can use a random and lazy walk + G.add_edges_from(((2, 5), (6, 1))) + + # fmt: off + GL = np.array([[ 0.1395, -0.0349, -0.0465, 0. , 0. , -0.0581], + [-0.0349, 0.093 , -0.0116, 0. , -0.0465, 0. ], + [-0.0465, -0.0116, 0.0698, 0. , -0.0116, 0. ], + [ 0. , 0. , 0. , 0.2326, -0.1163, -0.1163], + [ 0. , -0.0465, -0.0116, -0.1163, 0.2326, -0.0581], + [-0.0581, 0. , 0. , -0.1163, -0.0581, 0.2326]]) + # fmt: on + + L = nx.directed_combinatorial_laplacian_matrix( + G, alpha=0.9, nodelist=sorted(G), walk_type="random" + ) + np.testing.assert_almost_equal(L, GL, decimal=3) + + # fmt: off + GL = np.array([[ 0.0698, -0.0174, -0.0233, 0. , 0. , -0.0291], + [-0.0174, 0.0465, -0.0058, 0. , -0.0233, 0. ], + [-0.0233, -0.0058, 0.0349, 0. , -0.0058, 0. ], + [ 0. , 0. , 0. , 0.1163, -0.0581, -0.0581], + [ 0. , -0.0233, -0.0058, -0.0581, 0.1163, -0.0291], + [-0.0291, 0. , 0. , -0.0581, -0.0291, 0.1163]]) + # fmt: on + + L = nx.directed_combinatorial_laplacian_matrix( + G, alpha=0.9, nodelist=sorted(G), walk_type="lazy" + ) + np.testing.assert_almost_equal(L, GL, decimal=3) + + E = nx.DiGraph(nx.margulis_gabber_galil_graph(2)) + L = nx.directed_combinatorial_laplacian_matrix(E) + # fmt: off + expected = np.array( + [[ 0.16666667, -0.08333333, -0.08333333, 0. ], + [-0.08333333, 0.16666667, 0. , -0.08333333], + [-0.08333333, 0. , 0.16666667, -0.08333333], + [ 0. , -0.08333333, -0.08333333, 0.16666667]] + ) + # fmt: on + np.testing.assert_almost_equal(L, expected, decimal=6) + + with pytest.raises(nx.NetworkXError): + nx.directed_combinatorial_laplacian_matrix(G, walk_type="pagerank", alpha=100) + with pytest.raises(nx.NetworkXError): + nx.directed_combinatorial_laplacian_matrix(G, walk_type="silly") diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_modularity.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_modularity.py new file mode 100644 index 0000000000000000000000000000000000000000..48dda0063e127bcaa3c47dc05089dd858623f4c1 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_modularity.py @@ -0,0 +1,86 @@ +import pytest + +import networkx as nx + +np = pytest.importorskip("numpy") +pytest.importorskip("scipy") + + +class TestModularity: + @classmethod + def setup_class(cls): + deg = [3, 2, 2, 1, 0] + cls.G = nx.havel_hakimi_graph(deg) + # Graph used as an example in Sec. 4.1 of Langville and Meyer, + # "Google's PageRank and Beyond". (Used for test_directed_laplacian) + cls.DG = nx.DiGraph() + cls.DG.add_edges_from( + ( + (1, 2), + (1, 3), + (3, 1), + (3, 2), + (3, 5), + (4, 5), + (4, 6), + (5, 4), + (5, 6), + (6, 4), + ) + ) + + def test_modularity(self): + "Modularity matrix" + # fmt: off + B = np.array([[-1.125, 0.25, 0.25, 0.625, 0.], + [0.25, -0.5, 0.5, -0.25, 0.], + [0.25, 0.5, -0.5, -0.25, 0.], + [0.625, -0.25, -0.25, -0.125, 0.], + [0., 0., 0., 0., 0.]]) + # fmt: on + + permutation = [4, 0, 1, 2, 3] + np.testing.assert_equal(nx.modularity_matrix(self.G), B) + np.testing.assert_equal( + nx.modularity_matrix(self.G, nodelist=permutation), + B[np.ix_(permutation, permutation)], + ) + + def test_modularity_weight(self): + "Modularity matrix with weights" + # fmt: off + B = np.array([[-1.125, 0.25, 0.25, 0.625, 0.], + [0.25, -0.5, 0.5, -0.25, 0.], + [0.25, 0.5, -0.5, -0.25, 0.], + [0.625, -0.25, -0.25, -0.125, 0.], + [0., 0., 0., 0., 0.]]) + # fmt: on + + G_weighted = self.G.copy() + for n1, n2 in G_weighted.edges(): + G_weighted.edges[n1, n2]["weight"] = 0.5 + # The following test would fail in networkx 1.1 + np.testing.assert_equal(nx.modularity_matrix(G_weighted), B) + # The following test that the modularity matrix get rescaled accordingly + np.testing.assert_equal( + nx.modularity_matrix(G_weighted, weight="weight"), 0.5 * B + ) + + def test_directed_modularity(self): + "Directed Modularity matrix" + # fmt: off + B = np.array([[-0.2, 0.6, 0.8, -0.4, -0.4, -0.4], + [0., 0., 0., 0., 0., 0.], + [0.7, 0.4, -0.3, -0.6, 0.4, -0.6], + [-0.2, -0.4, -0.2, -0.4, 0.6, 0.6], + [-0.2, -0.4, -0.2, 0.6, -0.4, 0.6], + [-0.1, -0.2, -0.1, 0.8, -0.2, -0.2]]) + # fmt: on + node_permutation = [5, 1, 2, 3, 4, 6] + idx_permutation = [4, 0, 1, 2, 3, 5] + mm = nx.directed_modularity_matrix(self.DG, nodelist=sorted(self.DG)) + np.testing.assert_equal(mm, B) + np.testing.assert_equal( + nx.directed_modularity_matrix(self.DG, nodelist=node_permutation), + B[np.ix_(idx_permutation, idx_permutation)], + ) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_spectrum.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_spectrum.py new file mode 100644 index 0000000000000000000000000000000000000000..01009f005064b8cd23d221160719c4c5cc8e33f3 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/networkx/linalg/tests/test_spectrum.py @@ -0,0 +1,70 @@ +import pytest + +import networkx as nx + +np = pytest.importorskip("numpy") +pytest.importorskip("scipy") + + +class TestSpectrum: + @classmethod + def setup_class(cls): + deg = [3, 2, 2, 1, 0] + cls.G = nx.havel_hakimi_graph(deg) + cls.P = nx.path_graph(3) + cls.WG = nx.Graph( + (u, v, {"weight": 0.5, "other": 0.3}) for (u, v) in cls.G.edges() + ) + cls.WG.add_node(4) + cls.DG = nx.DiGraph() + nx.add_path(cls.DG, [0, 1, 2]) + + def test_laplacian_spectrum(self): + "Laplacian eigenvalues" + evals = np.array([0, 0, 1, 3, 4]) + e = sorted(nx.laplacian_spectrum(self.G)) + np.testing.assert_almost_equal(e, evals) + e = sorted(nx.laplacian_spectrum(self.WG, weight=None)) + np.testing.assert_almost_equal(e, evals) + e = sorted(nx.laplacian_spectrum(self.WG)) + np.testing.assert_almost_equal(e, 0.5 * evals) + e = sorted(nx.laplacian_spectrum(self.WG, weight="other")) + np.testing.assert_almost_equal(e, 0.3 * evals) + + def test_normalized_laplacian_spectrum(self): + "Normalized Laplacian eigenvalues" + evals = np.array([0, 0, 0.7712864461218, 1.5, 1.7287135538781]) + e = sorted(nx.normalized_laplacian_spectrum(self.G)) + np.testing.assert_almost_equal(e, evals) + e = sorted(nx.normalized_laplacian_spectrum(self.WG, weight=None)) + np.testing.assert_almost_equal(e, evals) + e = sorted(nx.normalized_laplacian_spectrum(self.WG)) + np.testing.assert_almost_equal(e, evals) + e = sorted(nx.normalized_laplacian_spectrum(self.WG, weight="other")) + np.testing.assert_almost_equal(e, evals) + + def test_adjacency_spectrum(self): + "Adjacency eigenvalues" + evals = np.array([-np.sqrt(2), 0, np.sqrt(2)]) + e = sorted(nx.adjacency_spectrum(self.P)) + np.testing.assert_almost_equal(e, evals) + + def test_modularity_spectrum(self): + "Modularity eigenvalues" + evals = np.array([-1.5, 0.0, 0.0]) + e = sorted(nx.modularity_spectrum(self.P)) + np.testing.assert_almost_equal(e, evals) + # Directed modularity eigenvalues + evals = np.array([-0.5, 0.0, 0.0]) + e = sorted(nx.modularity_spectrum(self.DG)) + np.testing.assert_almost_equal(e, evals) + + def test_bethe_hessian_spectrum(self): + "Bethe Hessian eigenvalues" + evals = np.array([0.5 * (9 - np.sqrt(33)), 4, 0.5 * (9 + np.sqrt(33))]) + e = sorted(nx.bethe_hessian_spectrum(self.P, r=2)) + np.testing.assert_almost_equal(e, evals) + # Collapses back to Laplacian: + e1 = sorted(nx.bethe_hessian_spectrum(self.P, r=1)) + e2 = sorted(nx.laplacian_spectrum(self.P)) + np.testing.assert_almost_equal(e1, e2) diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Ashgabat b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Ashgabat new file mode 100644 index 0000000000000000000000000000000000000000..2bd1cb3da0f5a11024f1609b09ae68645e6ae75c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Ashgabat differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Bishkek b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Bishkek new file mode 100644 index 0000000000000000000000000000000000000000..547fd5e1bd16152073f7237ad265b5c643e7cbfe Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Bishkek differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Chungking b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Chungking new file mode 100644 index 0000000000000000000000000000000000000000..91f6f8bc2e234bafd484146986bdb289082c3588 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Chungking differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Jakarta b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Jakarta new file mode 100644 index 0000000000000000000000000000000000000000..ec4bd5747a8c9c528dfd22c8e3171851784ade59 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Jakarta differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Omsk b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Omsk new file mode 100644 index 0000000000000000000000000000000000000000..16c5f3cfed75151d50ffc2dc483ac6279816a01f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Omsk differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Qyzylorda b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Qyzylorda new file mode 100644 index 0000000000000000000000000000000000000000..27b522a7d5e24eafdf29dd541ebbca69ce4db7b8 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Qyzylorda differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Shanghai b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Shanghai new file mode 100644 index 0000000000000000000000000000000000000000..91f6f8bc2e234bafd484146986bdb289082c3588 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Shanghai differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Yerevan b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Yerevan new file mode 100644 index 0000000000000000000000000000000000000000..0d5f6853ac79c41fcb445a23062a27aca9e471f3 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia/Yerevan differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Andorra b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Andorra new file mode 100644 index 0000000000000000000000000000000000000000..5962550392fa78514061582e9371c32b9f1d929b Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Andorra differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Athens b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Athens new file mode 100644 index 0000000000000000000000000000000000000000..9f3a0678d766881389e129c93def7fffd74f14f1 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Athens differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Belgrade b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Belgrade new file mode 100644 index 0000000000000000000000000000000000000000..27de456f16ab549627b284a39e2265cbdb4ad8e9 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Belgrade differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Berlin b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Berlin new file mode 100644 index 0000000000000000000000000000000000000000..7f6d958f8630cba512d8e58ca8edfbd516291522 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Berlin differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Guernsey b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Guernsey new file mode 100644 index 0000000000000000000000000000000000000000..5ad74220e83e6c30a0aeefda4a00271b8ebdfcad Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Guernsey differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Jersey b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Jersey new file mode 100644 index 0000000000000000000000000000000000000000..5ad74220e83e6c30a0aeefda4a00271b8ebdfcad Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Jersey differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Kirov b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Kirov new file mode 100644 index 0000000000000000000000000000000000000000..0cfb956be223ab593ca27569ad554dae9b106117 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Kirov differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Monaco b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Monaco new file mode 100644 index 0000000000000000000000000000000000000000..7d366c6098c49ecd546e1cc1538919e1414a3aee Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Monaco differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Podgorica b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Podgorica new file mode 100644 index 0000000000000000000000000000000000000000..27de456f16ab549627b284a39e2265cbdb4ad8e9 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Podgorica differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Rome b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Rome new file mode 100644 index 0000000000000000000000000000000000000000..32b2899a306dde401fa2e3952d06f5f4d9952bed Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Rome differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Samara b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Samara new file mode 100644 index 0000000000000000000000000000000000000000..d0ea2f25e9b4acaf3167a09a1c647943425e51b1 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Samara differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Vatican b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Vatican new file mode 100644 index 0000000000000000000000000000000000000000..32b2899a306dde401fa2e3952d06f5f4d9952bed Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Vatican differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Warsaw b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Warsaw new file mode 100644 index 0000000000000000000000000000000000000000..e33cf67171da78aa9e6eb02e50f9b9603da4c3f4 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Warsaw differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Zagreb b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Zagreb new file mode 100644 index 0000000000000000000000000000000000000000..27de456f16ab549627b284a39e2265cbdb4ad8e9 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Zagreb differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Zurich b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Zurich new file mode 100644 index 0000000000000000000000000000000000000000..ad6cf59281a1046d9dcd045fda521585e3e33e06 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe/Zurich differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4e0fa250458e6598b5887683874c74662c176b4a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/__main__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/__main__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ae9503a73a90a32dc77c8c62ad2cb4c6c4e93363 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/__main__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_emoji_replace.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_emoji_replace.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7bfc7fd02937afd7eb10f05dfc4840b422707d16 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_emoji_replace.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_extension.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_extension.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..66ab1dd5f97e528e23e7891ba78d0a6eadc41a35 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_extension.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_fileno.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_fileno.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d546277a229dd268a3a4064d449f9cc3439f1b8a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_fileno.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_inspect.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_inspect.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c39d379a0d8e8b4008e7ff59b124fed7115f5783 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_inspect.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_log_render.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_log_render.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..819381738b7e4a3339f4b32804c3fcb27a236cdf Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_log_render.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_loop.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_loop.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f5bc14b0b1cf838d4f6d2117a2b865e20a42806a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_loop.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_palettes.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_palettes.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cca04f35bd8e97e32a9de3101950d40aa37427a5 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_palettes.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_pick.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_pick.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bea31ccf1c9b4b029fd7acef272b971f083861b4 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_pick.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_ratio.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_ratio.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c8813219fa0613bcc77461b60ef417ea59ae2bfe Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_ratio.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_spinners.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_spinners.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..62764f6dca05128ed6762679c2cb6d75d91a9e04 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_spinners.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_stack.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_stack.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dc4a4e06a827df2c98c68fd8f66b445807622eea Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_stack.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_timer.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_timer.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a3ddde80d9abd65cbd8fd9c06b04ab688147eecc Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_timer.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_win32_console.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_win32_console.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8b75a5f8b42e37c61a3067134439a8d24c1a3687 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_win32_console.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_windows.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_windows.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..16ea858ef0936b56dc8e9774de5f906af42ced22 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_windows.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_windows_renderer.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_windows_renderer.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..48430a0d46dfe1aade2e9fb2d18c7537b5755452 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_windows_renderer.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_wrap.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_wrap.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..563c2d62a9af7ffb3ddaa8acb4ffe1958e3dc57c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/_wrap.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/align.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/align.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9f4c09325d7aaa544a9dee6dabfa9dcdd15522fd Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/align.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/bar.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/bar.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3240c7f4e0c6f7084cf514574cad53f61bd8614f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/bar.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/box.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/box.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e91639328a0d5f01efd2fd18d61e1c9a4e075431 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/box.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/cells.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/cells.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5b44056f4de76928e1b013fd12047e6bdadd6b78 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/cells.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/color.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/color.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3a772d40dc624d66a8483f4fe3e4404938841b5a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/color.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/color_triplet.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/color_triplet.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d5781ae0544e57417e9c84b040b1a7259391a268 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/color_triplet.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/columns.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/columns.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6a433f75645c13f234712043ba2d63ffc3f1c80c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/columns.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/constrain.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/constrain.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0814b63137dc150a36abd22d9cdf0aa924dce070 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/constrain.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/containers.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/containers.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ed843dd44a5961a30c290f1d74e3cc8e80812141 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/containers.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/control.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/control.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..86bb0780a90673b862d79b3abc62fa192500e735 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/control.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/default_styles.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/default_styles.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ba3a69e6c56e66c288f9db369829baa496d4de0c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/default_styles.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/diagnose.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/diagnose.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2be6b26aef0323b3b21e9aab1db2259683a13aa4 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/diagnose.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/emoji.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/emoji.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4dede2e5244c9a7f4b620d232eb60dd962c28c97 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/emoji.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/file_proxy.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/file_proxy.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fdbd3f65cfba1adc05d4d68a5f35831f0c448a11 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/file_proxy.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/filesize.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/filesize.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2c756f63a79199d21e16ba0ea9c61b2dfebd2e2a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/filesize.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/json.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/json.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..85ad3977d39a4ea6fa180a37296689fd32743298 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/json.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/layout.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/layout.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2d273f9df285862c3c8616b660ab8084844a6819 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/layout.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/live.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/live.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e41f50ce3d0ed721780bd6119a15a59f3e1bb436 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/live.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/live_render.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/live_render.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cc2380bde51643e9990e2a718359256755f50504 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/live_render.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/logging.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/logging.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..261201eeb10db5ee18e69262df92ac871fd60338 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/logging.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/markdown.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/markdown.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..017a6f9ba6aa05c4b7ec34e91a92f007f4d89f88 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/markdown.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/markup.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/markup.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9997a847bb2fe0a4b58c932574a7b3a0c627368c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/markup.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/measure.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/measure.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5f854da2e98172ef47fad2d6f0b328c42bd58945 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/measure.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/padding.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/padding.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f7398abb2155afcb8860931931aac1936a7ab9e7 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/padding.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/pager.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/pager.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fcb60ca8301f4e18ce61c3ce53bbea73879820bd Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/pager.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/palette.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/palette.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f20015947457097e4561c711798365de616411f7 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/palette.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/panel.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/panel.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..aacced0edb61164396c3a26ceee5d68e02087adb Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/panel.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/pretty.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/pretty.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..400fc101883e8693e4ec068fd5966fc80d3921e2 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/pretty.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/progress.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/progress.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..190879468702195f0f831ec0bb6d6f0a22856478 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/progress.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/progress_bar.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/progress_bar.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2b0d1b151b1c0f000cc3d42708fd4dede562cf8a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/progress_bar.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/prompt.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/prompt.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a664cd6a9dc7d35b846912d788aadfbafaa0d3bd Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/prompt.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/protocol.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/protocol.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..811c40801e925a626653a9168b30a4961a40d934 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/protocol.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/repr.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/repr.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5ce844074e84f942f791c4241fe5d6fc7d1444d9 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/repr.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/rule.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/rule.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..02448eabba042326b52662dbac4ea95876730bc7 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/rule.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/scope.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/scope.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..49837af56922f7a4fedc088e286cd1fe206436ab Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/scope.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/screen.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/screen.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d1f1cb148ee11632e27446fea09566e0c8d53a35 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/screen.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/segment.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/segment.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a7d5ace9668f57b92762807e790a3d51da12ade6 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/segment.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/spinner.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/spinner.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4e4027f633eb73408bd3e0a5eecea82a62cccd8c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/spinner.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/status.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/status.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d1e53010314094ae412f141440f4f41111860294 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/status.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/style.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/style.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ce1370984c8742bb966d9254f79f37975832d074 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/style.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/styled.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/styled.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..793775c19e4773cd93582d35d7c8203286b310b9 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/styled.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/table.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/table.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7585644e2a9928401d4218fc30a32a9ba8a7f885 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/table.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/terminal_theme.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/terminal_theme.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d9124be99caa15297975a7eef0c1c25af8649a7d Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/terminal_theme.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/text.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/text.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..81a9b32624ee08171f1ef35643f4eb869f332b27 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/text.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/theme.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/theme.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..59af3d3aba6f4f32540e3fe59c2c83423efecfaa Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/theme.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/themes.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/themes.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7cdab06468ab51829859e99ad6dce87bf1259ba5 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/themes.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/tree.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/tree.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..67b40e486ced1289638be9822f2bee5cc23d3229 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/rich/__pycache__/tree.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/commands/__pycache__/add_fast_image_processor.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/commands/__pycache__/add_fast_image_processor.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..21cb33a1c773b6982fba3e5836af8e6a35df3e24 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/commands/__pycache__/add_fast_image_processor.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/commands/__pycache__/env.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/commands/__pycache__/env.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1de02d218a34551ff25deda200a984cd660963ce Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/commands/__pycache__/env.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/commands/__pycache__/run.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/commands/__pycache__/run.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e9dc7bb4696db3e214f73dbd7a4c952f2ef100f8 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/commands/__pycache__/run.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/commands/__pycache__/serving.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/commands/__pycache__/serving.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..42e23fccb86adcd39ab9362f36d636baa02ad22c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/commands/__pycache__/serving.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/commands/__pycache__/train.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/commands/__pycache__/train.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6e6247208d21f74bffebfb9fcb8ab2485b7dfaeb Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/commands/__pycache__/train.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/commands/__pycache__/transformers_cli.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/commands/__pycache__/transformers_cli.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..976accd12d23aa60f0eb3b3e12449b3ed732eba1 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/commands/__pycache__/transformers_cli.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/data/datasets/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/data/datasets/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..378894ab4bbb4704b67b1de4ab512f145b889d46 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/data/datasets/__init__.py @@ -0,0 +1,23 @@ +# Copyright 2020 The HuggingFace Team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from .glue import GlueDataset, GlueDataTrainingArguments +from .language_modeling import ( + LineByLineTextDataset, + LineByLineWithRefDataset, + LineByLineWithSOPTextDataset, + TextDataset, + TextDatasetForNextSentencePrediction, +) +from .squad import SquadDataset, SquadDataTrainingArguments diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/data/datasets/glue.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/data/datasets/glue.py new file mode 100644 index 0000000000000000000000000000000000000000..d8db0dfebac1a8432d18320df4f1f4eba4eb4030 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/data/datasets/glue.py @@ -0,0 +1,162 @@ +# Copyright 2020 The HuggingFace Team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os +import time +import warnings +from dataclasses import dataclass, field +from enum import Enum +from typing import Optional, Union + +import torch +from filelock import FileLock +from torch.utils.data import Dataset + +from ...tokenization_utils_base import PreTrainedTokenizerBase +from ...utils import check_torch_load_is_safe, logging +from ..processors.glue import glue_convert_examples_to_features, glue_output_modes, glue_processors +from ..processors.utils import InputFeatures + + +logger = logging.get_logger(__name__) + + +@dataclass +class GlueDataTrainingArguments: + """ + Arguments pertaining to what data we are going to input our model for training and eval. + + Using `HfArgumentParser` we can turn this class into argparse arguments to be able to specify them on the command + line. + """ + + task_name: str = field(metadata={"help": "The name of the task to train on: " + ", ".join(glue_processors.keys())}) + data_dir: str = field( + metadata={"help": "The input data dir. Should contain the .tsv files (or other data files) for the task."} + ) + max_seq_length: int = field( + default=128, + metadata={ + "help": ( + "The maximum total input sequence length after tokenization. Sequences longer " + "than this will be truncated, sequences shorter will be padded." + ) + }, + ) + overwrite_cache: bool = field( + default=False, metadata={"help": "Overwrite the cached training and evaluation sets"} + ) + + def __post_init__(self): + self.task_name = self.task_name.lower() + + +class Split(Enum): + train = "train" + dev = "dev" + test = "test" + + +class GlueDataset(Dataset): + """ + This will be superseded by a framework-agnostic approach soon. + """ + + args: GlueDataTrainingArguments + output_mode: str + features: list[InputFeatures] + + def __init__( + self, + args: GlueDataTrainingArguments, + tokenizer: PreTrainedTokenizerBase, + limit_length: Optional[int] = None, + mode: Union[str, Split] = Split.train, + cache_dir: Optional[str] = None, + ): + warnings.warn( + "This dataset will be removed from the library soon, preprocessing should be handled with the 🤗 Datasets " + "library. You can have a look at this example script for pointers: " + "https://github.com/huggingface/transformers/blob/main/examples/pytorch/text-classification/run_glue.py", + FutureWarning, + ) + self.args = args + self.processor = glue_processors[args.task_name]() + self.output_mode = glue_output_modes[args.task_name] + if isinstance(mode, str): + try: + mode = Split[mode] + except KeyError: + raise KeyError("mode is not a valid split name") + # Load data features from cache or dataset file + cached_features_file = os.path.join( + cache_dir if cache_dir is not None else args.data_dir, + f"cached_{mode.value}_{tokenizer.__class__.__name__}_{args.max_seq_length}_{args.task_name}", + ) + label_list = self.processor.get_labels() + if args.task_name in ["mnli", "mnli-mm"] and tokenizer.__class__.__name__ in ( + "RobertaTokenizer", + "RobertaTokenizerFast", + "XLMRobertaTokenizer", + "BartTokenizer", + "BartTokenizerFast", + ): + # HACK(label indices are swapped in RoBERTa pretrained model) + label_list[1], label_list[2] = label_list[2], label_list[1] + self.label_list = label_list + + # Make sure only the first process in distributed training processes the dataset, + # and the others will use the cache. + lock_path = cached_features_file + ".lock" + with FileLock(lock_path): + if os.path.exists(cached_features_file) and not args.overwrite_cache: + start = time.time() + check_torch_load_is_safe() + self.features = torch.load(cached_features_file, weights_only=True) + logger.info( + f"Loading features from cached file {cached_features_file} [took %.3f s]", time.time() - start + ) + else: + logger.info(f"Creating features from dataset file at {args.data_dir}") + + if mode == Split.dev: + examples = self.processor.get_dev_examples(args.data_dir) + elif mode == Split.test: + examples = self.processor.get_test_examples(args.data_dir) + else: + examples = self.processor.get_train_examples(args.data_dir) + if limit_length is not None: + examples = examples[:limit_length] + self.features = glue_convert_examples_to_features( + examples, + tokenizer, + max_length=args.max_seq_length, + label_list=label_list, + output_mode=self.output_mode, + ) + start = time.time() + torch.save(self.features, cached_features_file) + # ^ This seems to take a lot of time so I want to investigate why and how we can improve. + logger.info( + f"Saving features into cached file {cached_features_file} [took {time.time() - start:.3f} s]" + ) + + def __len__(self): + return len(self.features) + + def __getitem__(self, i) -> InputFeatures: + return self.features[i] + + def get_labels(self): + return self.label_list diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/data/datasets/language_modeling.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/data/datasets/language_modeling.py new file mode 100644 index 0000000000000000000000000000000000000000..07250ef3cb5402603c75ed2c1a4c2e2200fb3dbe --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/data/datasets/language_modeling.py @@ -0,0 +1,530 @@ +# Copyright 2020 The HuggingFace Team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import json +import os +import pickle +import random +import time +import warnings +from typing import Optional + +import torch +from filelock import FileLock +from torch.utils.data import Dataset + +from ...tokenization_utils import PreTrainedTokenizer +from ...utils import logging + + +logger = logging.get_logger(__name__) + + +DEPRECATION_WARNING = ( + "This dataset will be removed from the library soon, preprocessing should be handled with the 🤗 Datasets " + "library. You can have a look at this example script for pointers: {0}" +) + + +class TextDataset(Dataset): + """ + This will be superseded by a framework-agnostic approach soon. + """ + + def __init__( + self, + tokenizer: PreTrainedTokenizer, + file_path: str, + block_size: int, + overwrite_cache=False, + cache_dir: Optional[str] = None, + ): + warnings.warn( + DEPRECATION_WARNING.format( + "https://github.com/huggingface/transformers/blob/main/examples/pytorch/language-modeling/run_mlm.py" + ), + FutureWarning, + ) + if os.path.isfile(file_path) is False: + raise ValueError(f"Input file path {file_path} not found") + + block_size = block_size - tokenizer.num_special_tokens_to_add(pair=False) + + directory, filename = os.path.split(file_path) + cached_features_file = os.path.join( + cache_dir if cache_dir is not None else directory, + f"cached_lm_{tokenizer.__class__.__name__}_{block_size}_{filename}", + ) + + # Make sure only the first process in distributed training processes the dataset, + # and the others will use the cache. + lock_path = cached_features_file + ".lock" + with FileLock(lock_path): + if os.path.exists(cached_features_file) and not overwrite_cache: + start = time.time() + with open(cached_features_file, "rb") as handle: + self.examples = pickle.load(handle) + logger.info( + f"Loading features from cached file {cached_features_file} [took %.3f s]", time.time() - start + ) + + else: + logger.info(f"Creating features from dataset file at {directory}") + + self.examples = [] + with open(file_path, encoding="utf-8") as f: + text = f.read() + + tokenized_text = tokenizer.convert_tokens_to_ids(tokenizer.tokenize(text)) + + for i in range(0, len(tokenized_text) - block_size + 1, block_size): # Truncate in block of block_size + self.examples.append( + tokenizer.build_inputs_with_special_tokens(tokenized_text[i : i + block_size]) + ) + # Note that we are losing the last truncated example here for the sake of simplicity (no padding) + # If your dataset is small, first you should look for a bigger one :-) and second you + # can change this behavior by adding (model specific) padding. + + start = time.time() + with open(cached_features_file, "wb") as handle: + pickle.dump(self.examples, handle, protocol=pickle.HIGHEST_PROTOCOL) + logger.info( + f"Saving features into cached file {cached_features_file} [took {time.time() - start:.3f} s]" + ) + + def __len__(self): + return len(self.examples) + + def __getitem__(self, i) -> torch.Tensor: + return torch.tensor(self.examples[i], dtype=torch.long) + + +class LineByLineTextDataset(Dataset): + """ + This will be superseded by a framework-agnostic approach soon. + """ + + def __init__(self, tokenizer: PreTrainedTokenizer, file_path: str, block_size: int): + warnings.warn( + DEPRECATION_WARNING.format( + "https://github.com/huggingface/transformers/blob/main/examples/pytorch/language-modeling/run_mlm.py" + ), + FutureWarning, + ) + if os.path.isfile(file_path) is False: + raise ValueError(f"Input file path {file_path} not found") + # Here, we do not cache the features, operating under the assumption + # that we will soon use fast multithreaded tokenizers from the + # `tokenizers` repo everywhere =) + logger.info(f"Creating features from dataset file at {file_path}") + + with open(file_path, encoding="utf-8") as f: + lines = [line for line in f.read().splitlines() if (len(line) > 0 and not line.isspace())] + + batch_encoding = tokenizer(lines, add_special_tokens=True, truncation=True, max_length=block_size) + self.examples = batch_encoding["input_ids"] + self.examples = [{"input_ids": torch.tensor(e, dtype=torch.long)} for e in self.examples] + + def __len__(self): + return len(self.examples) + + def __getitem__(self, i) -> dict[str, torch.tensor]: + return self.examples[i] + + +class LineByLineWithRefDataset(Dataset): + """ + This will be superseded by a framework-agnostic approach soon. + """ + + def __init__(self, tokenizer: PreTrainedTokenizer, file_path: str, block_size: int, ref_path: str): + warnings.warn( + DEPRECATION_WARNING.format( + "https://github.com/huggingface/transformers/blob/main/examples/pytorch/language-modeling/run_mlm_wwm.py" + ), + FutureWarning, + ) + if os.path.isfile(file_path) is False: + raise ValueError(f"Input file path {file_path} not found") + if os.path.isfile(ref_path) is False: + raise ValueError(f"Ref file path {file_path} not found") + # Here, we do not cache the features, operating under the assumption + # that we will soon use fast multithreaded tokenizers from the + # `tokenizers` repo everywhere =) + logger.info(f"Creating features from dataset file at {file_path}") + logger.info(f"Use ref segment results at {ref_path}") + with open(file_path, encoding="utf-8") as f: + data = f.readlines() # use this method to avoid delimiter '\u2029' to split a line + data = [line.strip() for line in data if len(line) > 0 and not line.isspace()] + # Get ref inf from file + with open(ref_path, encoding="utf-8") as f: + ref = [json.loads(line) for line in f.read().splitlines() if (len(line) > 0 and not line.isspace())] + if len(data) != len(ref): + raise ValueError( + f"Length of Input file should be equal to Ref file. But the length of {file_path} is {len(data)} " + f"while length of {ref_path} is {len(ref)}" + ) + + batch_encoding = tokenizer(data, add_special_tokens=True, truncation=True, max_length=block_size) + self.examples = batch_encoding["input_ids"] + self.examples = [{"input_ids": torch.tensor(e, dtype=torch.long)} for e in self.examples] + + n = len(self.examples) + for i in range(n): + self.examples[i]["chinese_ref"] = torch.tensor(ref[i], dtype=torch.long) + + def __len__(self): + return len(self.examples) + + def __getitem__(self, i) -> dict[str, torch.tensor]: + return self.examples[i] + + +class LineByLineWithSOPTextDataset(Dataset): + """ + Dataset for sentence order prediction task, prepare sentence pairs for SOP task + """ + + def __init__(self, tokenizer: PreTrainedTokenizer, file_dir: str, block_size: int): + warnings.warn( + DEPRECATION_WARNING.format( + "https://github.com/huggingface/transformers/blob/main/examples/pytorch/language-modeling/run_mlm.py" + ), + FutureWarning, + ) + if os.path.isdir(file_dir) is False: + raise ValueError(f"{file_dir} is not a directory") + logger.info(f"Creating features from dataset file folder at {file_dir}") + self.examples = [] + # TODO: randomness could apply a random seed, ex. rng = random.Random(random_seed) + # file path looks like ./dataset/wiki_1, ./dataset/wiki_2 + for file_name in os.listdir(file_dir): + file_path = os.path.join(file_dir, file_name) + if os.path.isfile(file_path) is False: + raise ValueError(f"{file_path} is not a file") + article_open = False + with open(file_path, encoding="utf-8") as f: + original_lines = f.readlines() + article_lines = [] + for line in original_lines: + if "" in line: + article_open = False + document = [ + tokenizer.convert_tokens_to_ids(tokenizer.tokenize(line)) + for line in article_lines[1:] + if (len(line) > 0 and not line.isspace()) + ] + + examples = self.create_examples_from_document(document, block_size, tokenizer) + self.examples.extend(examples) + article_lines = [] + else: + if article_open: + article_lines.append(line) + + logger.info("Dataset parse finished.") + + def create_examples_from_document(self, document, block_size, tokenizer, short_seq_prob=0.1): + """Creates examples for a single document.""" + + # Account for special tokens + max_num_tokens = block_size - tokenizer.num_special_tokens_to_add(pair=True) + + # We *usually* want to fill up the entire sequence since we are padding + # to `block_size` anyways, so short sequences are generally wasted + # computation. However, we *sometimes* + # (i.e., short_seq_prob == 0.1 == 10% of the time) want to use shorter + # sequences to minimize the mismatch between pretraining and fine-tuning. + # The `target_seq_length` is just a rough target however, whereas + # `block_size` is a hard limit. + target_seq_length = max_num_tokens + if random.random() < short_seq_prob: + target_seq_length = random.randint(2, max_num_tokens) + + # We DON'T just concatenate all of the tokens from a document into a long + # sequence and choose an arbitrary split point because this would make the + # next sentence prediction task too easy. Instead, we split the input into + # segments "A" and "B" based on the actual "sentences" provided by the user + # input. + examples = [] + current_chunk = [] # a buffer stored current working segments + current_length = 0 + i = 0 + while i < len(document): + segment = document[i] # get a segment + if not segment: + i += 1 + continue + current_chunk.append(segment) # add a segment to current chunk + current_length += len(segment) # overall token length + # if current length goes to the target length or reaches the end of file, start building token a and b + if i == len(document) - 1 or current_length >= target_seq_length: + if current_chunk: + # `a_end` is how many segments from `current_chunk` go into the `A` (first) sentence. + a_end = 1 + # if current chunk has more than 2 sentences, pick part of it `A` (first) sentence + if len(current_chunk) >= 2: + a_end = random.randint(1, len(current_chunk) - 1) + # token a + tokens_a = [] + for j in range(a_end): + tokens_a.extend(current_chunk[j]) + + # token b + tokens_b = [] + for j in range(a_end, len(current_chunk)): + tokens_b.extend(current_chunk[j]) + + if len(tokens_a) == 0 or len(tokens_b) == 0: + continue + + # switch tokens_a and tokens_b randomly + if random.random() < 0.5: + is_next = False + tokens_a, tokens_b = tokens_b, tokens_a + else: + is_next = True + + def truncate_seq_pair(tokens_a, tokens_b, max_num_tokens): + """Truncates a pair of sequences to a maximum sequence length.""" + while True: + total_length = len(tokens_a) + len(tokens_b) + if total_length <= max_num_tokens: + break + trunc_tokens = tokens_a if len(tokens_a) > len(tokens_b) else tokens_b + if not (len(trunc_tokens) >= 1): + raise ValueError("Sequence length to be truncated must be no less than one") + # We want to sometimes truncate from the front and sometimes from the + # back to add more randomness and avoid biases. + if random.random() < 0.5: + del trunc_tokens[0] + else: + trunc_tokens.pop() + + truncate_seq_pair(tokens_a, tokens_b, max_num_tokens) + if not (len(tokens_a) >= 1): + raise ValueError(f"Length of sequence a is {len(tokens_a)} which must be no less than 1") + if not (len(tokens_b) >= 1): + raise ValueError(f"Length of sequence b is {len(tokens_b)} which must be no less than 1") + + # add special tokens + input_ids = tokenizer.build_inputs_with_special_tokens(tokens_a, tokens_b) + # add token type ids, 0 for sentence a, 1 for sentence b + token_type_ids = tokenizer.create_token_type_ids_from_sequences(tokens_a, tokens_b) + + example = { + "input_ids": torch.tensor(input_ids, dtype=torch.long), + "token_type_ids": torch.tensor(token_type_ids, dtype=torch.long), + "sentence_order_label": torch.tensor(0 if is_next else 1, dtype=torch.long), + } + examples.append(example) + current_chunk = [] # clear current chunk + current_length = 0 # reset current text length + i += 1 # go to next line + return examples + + def __len__(self): + return len(self.examples) + + def __getitem__(self, i) -> dict[str, torch.tensor]: + return self.examples[i] + + +class TextDatasetForNextSentencePrediction(Dataset): + """ + This will be superseded by a framework-agnostic approach soon. + """ + + def __init__( + self, + tokenizer: PreTrainedTokenizer, + file_path: str, + block_size: int, + overwrite_cache=False, + short_seq_probability=0.1, + nsp_probability=0.5, + ): + warnings.warn( + DEPRECATION_WARNING.format( + "https://github.com/huggingface/transformers/blob/main/examples/pytorch/language-modeling/run_mlm.py" + ), + FutureWarning, + ) + if not os.path.isfile(file_path): + raise ValueError(f"Input file path {file_path} not found") + + self.short_seq_probability = short_seq_probability + self.nsp_probability = nsp_probability + + directory, filename = os.path.split(file_path) + cached_features_file = os.path.join( + directory, + f"cached_nsp_{tokenizer.__class__.__name__}_{block_size}_{filename}", + ) + + self.tokenizer = tokenizer + + # Make sure only the first process in distributed training processes the dataset, + # and the others will use the cache. + lock_path = cached_features_file + ".lock" + + # Input file format: + # (1) One sentence per line. These should ideally be actual sentences, not + # entire paragraphs or arbitrary spans of text. (Because we use the + # sentence boundaries for the "next sentence prediction" task). + # (2) Blank lines between documents. Document boundaries are needed so + # that the "next sentence prediction" task doesn't span between documents. + # + # Example: + # I am very happy. + # Here is the second sentence. + # + # A new document. + + with FileLock(lock_path): + if os.path.exists(cached_features_file) and not overwrite_cache: + start = time.time() + with open(cached_features_file, "rb") as handle: + self.examples = pickle.load(handle) + logger.info( + f"Loading features from cached file {cached_features_file} [took %.3f s]", time.time() - start + ) + else: + logger.info(f"Creating features from dataset file at {directory}") + + self.documents = [[]] + with open(file_path, encoding="utf-8") as f: + while True: + line = f.readline() + if not line: + break + line = line.strip() + + # Empty lines are used as document delimiters + if not line and len(self.documents[-1]) != 0: + self.documents.append([]) + tokens = tokenizer.tokenize(line) + tokens = tokenizer.convert_tokens_to_ids(tokens) + if tokens: + self.documents[-1].append(tokens) + + logger.info(f"Creating examples from {len(self.documents)} documents.") + self.examples = [] + for doc_index, document in enumerate(self.documents): + self.create_examples_from_document(document, doc_index, block_size) + + start = time.time() + with open(cached_features_file, "wb") as handle: + pickle.dump(self.examples, handle, protocol=pickle.HIGHEST_PROTOCOL) + logger.info( + f"Saving features into cached file {cached_features_file} [took {time.time() - start:.3f} s]" + ) + + def create_examples_from_document(self, document: list[list[int]], doc_index: int, block_size: int): + """Creates examples for a single document.""" + + max_num_tokens = block_size - self.tokenizer.num_special_tokens_to_add(pair=True) + + # We *usually* want to fill up the entire sequence since we are padding + # to `block_size` anyways, so short sequences are generally wasted + # computation. However, we *sometimes* + # (i.e., short_seq_prob == 0.1 == 10% of the time) want to use shorter + # sequences to minimize the mismatch between pretraining and fine-tuning. + # The `target_seq_length` is just a rough target however, whereas + # `block_size` is a hard limit. + target_seq_length = max_num_tokens + if random.random() < self.short_seq_probability: + target_seq_length = random.randint(2, max_num_tokens) + + current_chunk = [] # a buffer stored current working segments + current_length = 0 + i = 0 + + while i < len(document): + segment = document[i] + current_chunk.append(segment) + current_length += len(segment) + if i == len(document) - 1 or current_length >= target_seq_length: + if current_chunk: + # `a_end` is how many segments from `current_chunk` go into the `A` + # (first) sentence. + a_end = 1 + if len(current_chunk) >= 2: + a_end = random.randint(1, len(current_chunk) - 1) + + tokens_a = [] + for j in range(a_end): + tokens_a.extend(current_chunk[j]) + + tokens_b = [] + + if len(current_chunk) == 1 or random.random() < self.nsp_probability: + is_random_next = True + target_b_length = target_seq_length - len(tokens_a) + + # This should rarely go for more than one iteration for large + # corpora. However, just to be careful, we try to make sure that + # the random document is not the same as the document + # we're processing. + for _ in range(10): + random_document_index = random.randint(0, len(self.documents) - 1) + if random_document_index != doc_index: + break + + random_document = self.documents[random_document_index] + random_start = random.randint(0, len(random_document) - 1) + for j in range(random_start, len(random_document)): + tokens_b.extend(random_document[j]) + if len(tokens_b) >= target_b_length: + break + # We didn't actually use these segments so we "put them back" so + # they don't go to waste. + num_unused_segments = len(current_chunk) - a_end + i -= num_unused_segments + # Actual next + else: + is_random_next = False + for j in range(a_end, len(current_chunk)): + tokens_b.extend(current_chunk[j]) + + if not (len(tokens_a) >= 1): + raise ValueError(f"Length of sequence a is {len(tokens_a)} which must be no less than 1") + if not (len(tokens_b) >= 1): + raise ValueError(f"Length of sequence b is {len(tokens_b)} which must be no less than 1") + + # add special tokens + input_ids = self.tokenizer.build_inputs_with_special_tokens(tokens_a, tokens_b) + # add token type ids, 0 for sentence a, 1 for sentence b + token_type_ids = self.tokenizer.create_token_type_ids_from_sequences(tokens_a, tokens_b) + + example = { + "input_ids": torch.tensor(input_ids, dtype=torch.long), + "token_type_ids": torch.tensor(token_type_ids, dtype=torch.long), + "next_sentence_label": torch.tensor(1 if is_random_next else 0, dtype=torch.long), + } + + self.examples.append(example) + + current_chunk = [] + current_length = 0 + + i += 1 + + def __len__(self): + return len(self.examples) + + def __getitem__(self, i): + return self.examples[i] diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/data/datasets/squad.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/data/datasets/squad.py new file mode 100644 index 0000000000000000000000000000000000000000..d4f76a51f422b00ffce5215b65c9274ce5646489 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/data/datasets/squad.py @@ -0,0 +1,230 @@ +# Copyright 2020 The HuggingFace Team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os +import time +from dataclasses import dataclass, field +from enum import Enum +from typing import Optional, Union + +import torch +from filelock import FileLock +from torch.utils.data import Dataset + +from ...models.auto.modeling_auto import MODEL_FOR_QUESTION_ANSWERING_MAPPING +from ...tokenization_utils import PreTrainedTokenizer +from ...utils import check_torch_load_is_safe, logging +from ..processors.squad import SquadFeatures, SquadV1Processor, SquadV2Processor, squad_convert_examples_to_features + + +logger = logging.get_logger(__name__) + +MODEL_CONFIG_CLASSES = list(MODEL_FOR_QUESTION_ANSWERING_MAPPING.keys()) +MODEL_TYPES = tuple(conf.model_type for conf in MODEL_CONFIG_CLASSES) + + +@dataclass +class SquadDataTrainingArguments: + """ + Arguments pertaining to what data we are going to input our model for training and eval. + """ + + model_type: str = field( + default=None, metadata={"help": "Model type selected in the list: " + ", ".join(MODEL_TYPES)} + ) + data_dir: str = field( + default=None, metadata={"help": "The input data dir. Should contain the .json files for the SQuAD task."} + ) + max_seq_length: int = field( + default=128, + metadata={ + "help": ( + "The maximum total input sequence length after tokenization. Sequences longer " + "than this will be truncated, sequences shorter will be padded." + ) + }, + ) + doc_stride: int = field( + default=128, + metadata={"help": "When splitting up a long document into chunks, how much stride to take between chunks."}, + ) + max_query_length: int = field( + default=64, + metadata={ + "help": ( + "The maximum number of tokens for the question. Questions longer than this will " + "be truncated to this length." + ) + }, + ) + max_answer_length: int = field( + default=30, + metadata={ + "help": ( + "The maximum length of an answer that can be generated. This is needed because the start " + "and end predictions are not conditioned on one another." + ) + }, + ) + overwrite_cache: bool = field( + default=False, metadata={"help": "Overwrite the cached training and evaluation sets"} + ) + version_2_with_negative: bool = field( + default=False, metadata={"help": "If true, the SQuAD examples contain some that do not have an answer."} + ) + null_score_diff_threshold: float = field( + default=0.0, metadata={"help": "If null_score - best_non_null is greater than the threshold predict null."} + ) + n_best_size: int = field( + default=20, metadata={"help": "If null_score - best_non_null is greater than the threshold predict null."} + ) + lang_id: int = field( + default=0, + metadata={ + "help": ( + "language id of input for language-specific xlm models (see" + " tokenization_xlm.PRETRAINED_INIT_CONFIGURATION)" + ) + }, + ) + threads: int = field(default=1, metadata={"help": "multiple threads for converting example to features"}) + + +class Split(Enum): + train = "train" + dev = "dev" + + +class SquadDataset(Dataset): + """ + This will be superseded by a framework-agnostic approach soon. + """ + + args: SquadDataTrainingArguments + features: list[SquadFeatures] + mode: Split + is_language_sensitive: bool + + def __init__( + self, + args: SquadDataTrainingArguments, + tokenizer: PreTrainedTokenizer, + limit_length: Optional[int] = None, + mode: Union[str, Split] = Split.train, + is_language_sensitive: bool = False, + cache_dir: Optional[str] = None, + dataset_format: str = "pt", + ): + self.args = args + self.is_language_sensitive = is_language_sensitive + self.processor = SquadV2Processor() if args.version_2_with_negative else SquadV1Processor() + if isinstance(mode, str): + try: + mode = Split[mode] + except KeyError: + raise KeyError("mode is not a valid split name") + self.mode = mode + # Load data features from cache or dataset file + version_tag = "v2" if args.version_2_with_negative else "v1" + cached_features_file = os.path.join( + cache_dir if cache_dir is not None else args.data_dir, + f"cached_{mode.value}_{tokenizer.__class__.__name__}_{args.max_seq_length}_{version_tag}", + ) + + # Make sure only the first process in distributed training processes the dataset, + # and the others will use the cache. + lock_path = cached_features_file + ".lock" + with FileLock(lock_path): + if os.path.exists(cached_features_file) and not args.overwrite_cache: + start = time.time() + check_torch_load_is_safe() + self.old_features = torch.load(cached_features_file, weights_only=True) + + # Legacy cache files have only features, while new cache files + # will have dataset and examples also. + self.features = self.old_features["features"] + self.dataset = self.old_features.get("dataset", None) + self.examples = self.old_features.get("examples", None) + logger.info( + f"Loading features from cached file {cached_features_file} [took %.3f s]", time.time() - start + ) + + if self.dataset is None or self.examples is None: + logger.warning( + f"Deleting cached file {cached_features_file} will allow dataset and examples to be cached in" + " future run" + ) + else: + if mode == Split.dev: + self.examples = self.processor.get_dev_examples(args.data_dir) + else: + self.examples = self.processor.get_train_examples(args.data_dir) + + self.features, self.dataset = squad_convert_examples_to_features( + examples=self.examples, + tokenizer=tokenizer, + max_seq_length=args.max_seq_length, + doc_stride=args.doc_stride, + max_query_length=args.max_query_length, + is_training=mode == Split.train, + threads=args.threads, + return_dataset=dataset_format, + ) + + start = time.time() + torch.save( + {"features": self.features, "dataset": self.dataset, "examples": self.examples}, + cached_features_file, + ) + # ^ This seems to take a lot of time so I want to investigate why and how we can improve. + logger.info( + f"Saving features into cached file {cached_features_file} [took {time.time() - start:.3f} s]" + ) + + def __len__(self): + return len(self.features) + + def __getitem__(self, i) -> dict[str, torch.Tensor]: + # Convert to Tensors and build dataset + feature = self.features[i] + + input_ids = torch.tensor(feature.input_ids, dtype=torch.long) + attention_mask = torch.tensor(feature.attention_mask, dtype=torch.long) + token_type_ids = torch.tensor(feature.token_type_ids, dtype=torch.long) + cls_index = torch.tensor(feature.cls_index, dtype=torch.long) + p_mask = torch.tensor(feature.p_mask, dtype=torch.float) + is_impossible = torch.tensor(feature.is_impossible, dtype=torch.float) + + inputs = { + "input_ids": input_ids, + "attention_mask": attention_mask, + "token_type_ids": token_type_ids, + } + + if self.args.model_type in ["xlm", "roberta", "distilbert", "camembert"]: + del inputs["token_type_ids"] + + if self.args.model_type in ["xlnet", "xlm"]: + inputs.update({"cls_index": cls_index, "p_mask": p_mask}) + if self.args.version_2_with_negative: + inputs.update({"is_impossible": is_impossible}) + if self.is_language_sensitive: + inputs.update({"langs": (torch.ones(input_ids.shape, dtype=torch.int64) * self.args.lang_id)}) + + if self.mode == Split.train: + start_positions = torch.tensor(feature.start_position, dtype=torch.long) + end_positions = torch.tensor(feature.end_position, dtype=torch.long) + inputs.update({"start_positions": start_positions, "end_positions": end_positions}) + + return inputs diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/loss/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/loss/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6cd0d9ca942c2aa50f56e8d9bc40bb5a1ea8e4c2 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/loss/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/loss/__pycache__/loss_d_fine.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/loss/__pycache__/loss_d_fine.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..91f64df4ec68558f49afaae51ddc29ebac0605b3 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/loss/__pycache__/loss_d_fine.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/loss/__pycache__/loss_deformable_detr.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/loss/__pycache__/loss_deformable_detr.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3298e990d6fc3b9020fa6ff26b5ab194280b70cf Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/loss/__pycache__/loss_deformable_detr.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/loss/__pycache__/loss_for_object_detection.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/loss/__pycache__/loss_for_object_detection.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f1d6664e30ce66d29ad368003f19e2e55b40396f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/loss/__pycache__/loss_for_object_detection.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/loss/__pycache__/loss_grounding_dino.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/loss/__pycache__/loss_grounding_dino.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3b31d4b511eee7123db04036fe8193bdda8d0721 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/loss/__pycache__/loss_grounding_dino.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/loss/__pycache__/loss_rt_detr.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/loss/__pycache__/loss_rt_detr.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fe6eecfa6a6fbd0818c05a9b8275106fe9da4d4d Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/loss/__pycache__/loss_rt_detr.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/loss/__pycache__/loss_utils.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/loss/__pycache__/loss_utils.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4134616e0f0f987e608a7422be296dac39c31f00 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/loss/__pycache__/loss_utils.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/dab_detr/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/dab_detr/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bc705b8cb83a7d2b95d08c2e7a5dab658db07cfb Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/dab_detr/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/dab_detr/__pycache__/configuration_dab_detr.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/dab_detr/__pycache__/configuration_dab_detr.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..167b3857983df5a7745081fe34cbb4cb4d4f6685 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/dab_detr/__pycache__/configuration_dab_detr.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/dab_detr/__pycache__/modeling_dab_detr.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/dab_detr/__pycache__/modeling_dab_detr.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..58580a44138ae6d16089caa07272bb28a5152ec8 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/dab_detr/__pycache__/modeling_dab_detr.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/deepseek_vl/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/deepseek_vl/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1a31112ebd374cf698377f54f05e53d6d03c851a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/deepseek_vl/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/deepseek_vl/__pycache__/configuration_deepseek_vl.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/deepseek_vl/__pycache__/configuration_deepseek_vl.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9e763f4dc44d5a7940d07546af5c1238e7f0937a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/deepseek_vl/__pycache__/configuration_deepseek_vl.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/deepseek_vl/__pycache__/image_processing_deepseek_vl.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/deepseek_vl/__pycache__/image_processing_deepseek_vl.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c908162b781dd9ab4a47f50cc453b4982f45c691 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/deepseek_vl/__pycache__/image_processing_deepseek_vl.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/deepseek_vl/__pycache__/image_processing_deepseek_vl_fast.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/deepseek_vl/__pycache__/image_processing_deepseek_vl_fast.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f9233fb752a4dd2d2a3da76f9ac273e80116b0f0 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/deepseek_vl/__pycache__/image_processing_deepseek_vl_fast.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/deepseek_vl/__pycache__/modeling_deepseek_vl.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/deepseek_vl/__pycache__/modeling_deepseek_vl.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..181bc764522d407c469157077f85963264ebece3 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/deepseek_vl/__pycache__/modeling_deepseek_vl.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/deepseek_vl/__pycache__/modular_deepseek_vl.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/deepseek_vl/__pycache__/modular_deepseek_vl.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..945222f4d97981e36f3c0de53fafa3b668aa4720 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/deepseek_vl/__pycache__/modular_deepseek_vl.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/deepseek_vl/__pycache__/processing_deepseek_vl.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/deepseek_vl/__pycache__/processing_deepseek_vl.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..566ed9b42a5ac25ce984af98dff9a3c25e72ddea Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/deepseek_vl/__pycache__/processing_deepseek_vl.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/falcon_h1/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/falcon_h1/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bdbf818eaff247a9570c32c503236ba42b8cf692 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/falcon_h1/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/falcon_h1/__pycache__/configuration_falcon_h1.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/falcon_h1/__pycache__/configuration_falcon_h1.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a63918da2d3fc1f55adf8d41add34aa96c3cb485 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/falcon_h1/__pycache__/configuration_falcon_h1.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/falcon_h1/__pycache__/modeling_falcon_h1.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/falcon_h1/__pycache__/modeling_falcon_h1.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5e178de4777ffe01c3f8893b54981553ece5bd7a Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/falcon_h1/__pycache__/modeling_falcon_h1.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/falcon_h1/__pycache__/modular_falcon_h1.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/falcon_h1/__pycache__/modular_falcon_h1.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..00048898234ada4390379ce53fab935043bf9d9b Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/falcon_h1/__pycache__/modular_falcon_h1.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/hunyuan_v1_moe/__pycache__/configuration_hunyuan_v1_moe.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/hunyuan_v1_moe/__pycache__/configuration_hunyuan_v1_moe.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5525a6389043ddc5cfbcfcc244de70109d0eb650 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/hunyuan_v1_moe/__pycache__/configuration_hunyuan_v1_moe.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/jamba/__pycache__/configuration_jamba.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/jamba/__pycache__/configuration_jamba.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f9377f3b5e727f37cbee679821a599444d8acd0f Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/jamba/__pycache__/configuration_jamba.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/jamba/__pycache__/modeling_jamba.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/jamba/__pycache__/modeling_jamba.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..666de74ce1ee3ed6660396f03c5cf12ec36cdaf8 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/jamba/__pycache__/modeling_jamba.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/kosmos2/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/kosmos2/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0a7695b1b80e23177127fedf542d94704495fab3 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/kosmos2/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/kosmos2/__pycache__/configuration_kosmos2.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/kosmos2/__pycache__/configuration_kosmos2.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a6cd3695104c4a778cad825a502c8b0dcc94981b Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/kosmos2/__pycache__/configuration_kosmos2.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/kosmos2/__pycache__/modeling_kosmos2.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/kosmos2/__pycache__/modeling_kosmos2.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a9aabed81ee61fdd1361af012a64ee3446ac0a13 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/kosmos2/__pycache__/modeling_kosmos2.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/kosmos2/__pycache__/processing_kosmos2.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/kosmos2/__pycache__/processing_kosmos2.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..613259f8a5ed006e1ef1bdc7b3ae1ad2a7429cd1 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/kosmos2/__pycache__/processing_kosmos2.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/lfm2_vl/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/lfm2_vl/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..df6f116a53a21bb635c59c712dfeb27cf0511730 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/lfm2_vl/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/lfm2_vl/__pycache__/configuration_lfm2_vl.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/lfm2_vl/__pycache__/configuration_lfm2_vl.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..99e55d95ce96282a87ad5fa5b1c62f99bd7c2c10 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/lfm2_vl/__pycache__/configuration_lfm2_vl.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/lfm2_vl/__pycache__/processing_lfm2_vl.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/lfm2_vl/__pycache__/processing_lfm2_vl.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..88b9ca637a959489650b2e013937def7e8dd6925 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/lfm2_vl/__pycache__/processing_lfm2_vl.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/markuplm/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/markuplm/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ce8db82cd110e93937aa83bb66a6cad05ed25a2c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/markuplm/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/markuplm/__pycache__/configuration_markuplm.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/markuplm/__pycache__/configuration_markuplm.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a5738cdae873ca866f2c053c3bf8eca3933292ef Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/markuplm/__pycache__/configuration_markuplm.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/markuplm/__pycache__/feature_extraction_markuplm.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/markuplm/__pycache__/feature_extraction_markuplm.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..63cbe26df18b874568f655c502275a6da9664202 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/markuplm/__pycache__/feature_extraction_markuplm.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/markuplm/__pycache__/processing_markuplm.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/markuplm/__pycache__/processing_markuplm.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6416afe526d490f47a334ec672c8f62921abca2e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/markuplm/__pycache__/processing_markuplm.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/markuplm/__pycache__/tokenization_markuplm.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/markuplm/__pycache__/tokenization_markuplm.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6b5744df59edc3f450bb850945e8214d311dc33e Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/markuplm/__pycache__/tokenization_markuplm.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/markuplm/__pycache__/tokenization_markuplm_fast.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/markuplm/__pycache__/tokenization_markuplm_fast.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fb2c41e4e24c91df7f4d5cf7b13434e8f0ec6caa Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/markuplm/__pycache__/tokenization_markuplm_fast.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/mgp_str/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/mgp_str/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c7f3af3f110c278a1e4321412de8afdf217ebddf Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/mgp_str/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/mgp_str/__pycache__/modeling_mgp_str.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/mgp_str/__pycache__/modeling_mgp_str.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1d5e5ac24c6088583113f315a0d6087b81fd047c Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/mgp_str/__pycache__/modeling_mgp_str.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/mgp_str/__pycache__/processing_mgp_str.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/mgp_str/__pycache__/processing_mgp_str.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a5594b30e801c6f06c66f6f216e5714a265a0aa1 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/mgp_str/__pycache__/processing_mgp_str.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/wav2vec2_bert/__pycache__/modular_wav2vec2_bert.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/wav2vec2_bert/__pycache__/modular_wav2vec2_bert.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7a625ef962060c248a4e5a4d3e6d0c200858cbc9 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/wav2vec2_bert/__pycache__/modular_wav2vec2_bert.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/wav2vec2_bert/__pycache__/processing_wav2vec2_bert.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/wav2vec2_bert/__pycache__/processing_wav2vec2_bert.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d304ea5408f99bb072bbb634becc8a53f4df12a7 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/transformers/models/wav2vec2_bert/__pycache__/processing_wav2vec2_bert.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/__pycache__/__init__.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..661d04e0019b8d8468f3bd230abef1c70505d7e8 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/__pycache__/__init__.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/__pycache__/_filecheck.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/__pycache__/_filecheck.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3316bee7c1e157e527d37c7d91e54559582eb198 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/__pycache__/_filecheck.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/__pycache__/_internal_testing.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/__pycache__/_internal_testing.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d08fc5522e9d656e419f957c788dac3930d45fde Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/__pycache__/_internal_testing.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/__pycache__/errors.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/__pycache__/errors.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d8796b08239c6df93799cfbb7b3354ae085a0c85 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/__pycache__/errors.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/__pycache__/knobs.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/__pycache__/knobs.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2877dbfd9b32d741375198d803522a104ecfb1d8 Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/__pycache__/knobs.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/__pycache__/testing.cpython-312.pyc b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/__pycache__/testing.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8cbf953ff21b2b73364ff7c83880d6f6d3a1a8fd Binary files /dev/null and b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/__pycache__/testing.cpython-312.pyc differ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/__init__.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..97092379e02dfd25611fc049744ecfc493d76c3d --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/__init__.py @@ -0,0 +1,66 @@ +import importlib +import os +import inspect +import sys +from dataclasses import dataclass +from typing import Type, TypeVar, Union +from types import ModuleType +from .driver import DriverBase +from .compiler import BaseBackend + +if sys.version_info >= (3, 10): + from importlib.metadata import entry_points +else: + from importlib_metadata import entry_points + +T = TypeVar("T", bound=Union[BaseBackend, DriverBase]) + + +def _find_concrete_subclasses(module: ModuleType, base_class: Type[T]) -> Type[T]: + ret: list[Type[T]] = [] + for attr_name in dir(module): + attr = getattr(module, attr_name) + if isinstance(attr, type) and issubclass(attr, base_class) and not inspect.isabstract(attr): + ret.append(attr) + if len(ret) == 0: + raise RuntimeError(f"Found 0 concrete subclasses of {base_class} in {module}: {ret}") + if len(ret) > 1: + raise RuntimeError(f"Found >1 concrete subclasses of {base_class} in {module}: {ret}") + return ret[0] + + +@dataclass(frozen=True) +class Backend: + compiler: Type[BaseBackend] + driver: Type[DriverBase] + + +def _discover_backends() -> dict[str, Backend]: + backends = dict() + # Fast path: optionally skip entry point discovery (which can be slow) and + # discover only in-tree backends under the `triton.backends` namespace. + skip_entrypoints_env = os.environ.get("TRITON_BACKENDS_IN_TREE", "") + + if skip_entrypoints_env == "1": + root = os.path.dirname(__file__) + for name in os.listdir(root): + if not os.path.isdir(os.path.join(root, name)): + continue + if name.startswith('__'): + continue + compiler = importlib.import_module(f"triton.backends.{name}.compiler") + driver = importlib.import_module(f"triton.backends.{name}.driver") + backends[name] = Backend(_find_concrete_subclasses(compiler, BaseBackend), + _find_concrete_subclasses(driver, DriverBase)) + return backends + + # Default path: discover via entry points for out-of-tree/downstream plugins. + for ep in entry_points().select(group="triton.backends"): + compiler = importlib.import_module(f"{ep.value}.compiler") + driver = importlib.import_module(f"{ep.value}.driver") + backends[ep.name] = Backend(_find_concrete_subclasses(compiler, BaseBackend), # type: ignore + _find_concrete_subclasses(driver, DriverBase)) # type: ignore + return backends + + +backends: dict[str, Backend] = _discover_backends() diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/compiler.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/compiler.py new file mode 100644 index 0000000000000000000000000000000000000000..10754e71579bd40c5399aa3a22f86582acca5657 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/compiler.py @@ -0,0 +1,92 @@ +from abc import ABCMeta, abstractmethod +from dataclasses import dataclass +from enum import Enum +from typing import Dict, Union +from types import ModuleType + + +@dataclass(frozen=True) +class GPUTarget(object): + # Target backend, e.g., cuda, hip + backend: str + # Target architecture, e.g., 90 (for cuda compute capability), gfx940 (for hip) + arch: Union[int, str] + warp_size: int + + +class Language(Enum): + """The input language being compiled by the backend.""" + TRITON = 0 + GLUON = 1 + + +class BaseBackend(metaclass=ABCMeta): + supports_native_tensor_specialization = True + + def __init__(self, target: GPUTarget) -> None: + self.target = target + assert self.supports_target(target) + + @staticmethod + @abstractmethod + def supports_target(target: GPUTarget): + raise NotImplementedError + + @abstractmethod + def hash(self) -> str: + """Returns a unique identifier for this backend""" + raise NotImplementedError + + @abstractmethod + def parse_options(self, options: dict) -> object: + """ + Converts an `options` dictionary into an arbitrary object and returns it. + This function may contain target-specific heuristics and check the legality of the provided options + """ + raise NotImplementedError + + @abstractmethod + def add_stages(self, stages: dict, options: object) -> None: + """ + Populates `stages` dictionary with entries of the form: + ir_name [str] => Function[(src: str, metadata: dict) -> str|bytes] + The value of each entry may populate a `metadata` dictionary. + Stages will be run sequentially (in inseriton order) and can communicate using `metadata`. + All stages are expected to return a `str` object, except for the last stage which returns + a `bytes` object for execution by the launcher. + """ + raise NotImplementedError + + @abstractmethod + def load_dialects(self, context): + """ + Load additional MLIR dialects into the provided `context` + """ + raise NotImplementedError + + @abstractmethod + def get_module_map(self) -> Dict[str, ModuleType]: + """ + Return a map of interface modules to their device-specific implementations + """ + raise NotImplementedError + + @staticmethod + def parse_attr(desc): + assert isinstance(desc, str) + ret = [] + if "D" in desc: + ret += [["tt.divisibility", 16]] + return ret + + @staticmethod + def get_int_specialization(arg, **kwargs): + if arg % 16 == 0 and kwargs.get("align", False): + return "D" + return "" + + @staticmethod + def get_tensor_specialization(arg, **kwargs): + if arg.data_ptr() % 16 == 0 and kwargs.get("align", False): + return "D" + return "" diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/driver.py b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/driver.py new file mode 100644 index 0000000000000000000000000000000000000000..13a658b47e48b00fb575d27f6b1c7d59107f6c7c --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/driver.py @@ -0,0 +1,66 @@ +from abc import ABCMeta, abstractmethod +from typing import Callable, List, Protocol, Sequence + + +class Benchmarker(Protocol): + + def __call__(self, kernel_call: Callable, *, quantiles: List[float], **kwargs) -> Sequence[float]: + pass + + +class DriverBase(metaclass=ABCMeta): + + @classmethod + @abstractmethod + def is_active(self): + pass + + @abstractmethod + def map_python_to_cpp_type(self, ty: str) -> str: + """ + Converts a Triton type string to its corresponding C++ type string for this backend. + + Args: + ty (str): The Triton type string. e.g., 'i32', '*fp16', 'fp32'. + + Returns: + str: The C++ type string. + """ + pass + + @abstractmethod + def get_current_target(self): + pass + + @abstractmethod + def get_active_torch_device(self): + pass + + @abstractmethod + def get_benchmarker(self) -> Benchmarker: + """ + Return the benchmarking function that this backend should use by default. + """ + raise NotImplementedError + + def __init__(self) -> None: + pass + + +class GPUDriver(DriverBase): + + def __init__(self): + # TODO: support other frameworks than torch + import torch + self.get_device_capability = torch.cuda.get_device_capability + try: + from torch._C import _cuda_getCurrentRawStream + self.get_current_stream = _cuda_getCurrentRawStream + except ImportError: + self.get_current_stream = lambda idx: torch.cuda.current_stream(idx).cuda_stream + self.get_current_device = torch.cuda.current_device + self.set_current_device = torch.cuda.set_device + + # TODO: remove once TMA is cleaned up + def assemble_tensormap_to_arg(self, tensormaps_info, args): + return args diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/Openacc/cupti_openacc.h b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/Openacc/cupti_openacc.h new file mode 100644 index 0000000000000000000000000000000000000000..b7ea50da7beb2187e77f7606dd70faed0e4b4add --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/Openacc/cupti_openacc.h @@ -0,0 +1,98 @@ +/* + * Copyright 2017 NVIDIA Corporation. All rights reserved. + * + * NOTICE TO LICENSEE: + * + * This source code and/or documentation ("Licensed Deliverables") are + * subject to NVIDIA intellectual property rights under U.S. and + * international Copyright laws. + * + * These Licensed Deliverables contained herein is PROPRIETARY and + * CONFIDENTIAL to NVIDIA and is being provided under the terms and + * conditions of a form of NVIDIA software license agreement by and + * between NVIDIA and Licensee ("License Agreement") or electronically + * accepted by Licensee. Notwithstanding any terms or conditions to + * the contrary in the License Agreement, reproduction or disclosure + * of the Licensed Deliverables to any third party without the express + * written consent of NVIDIA is prohibited. + * + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE + * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. IT IS + * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. + * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED + * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, + * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY + * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY + * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS + * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THESE LICENSED DELIVERABLES. + * + * U.S. Government End Users. These Licensed Deliverables are a + * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT + * 1995), consisting of "commercial computer software" and "commercial + * computer software documentation" as such terms are used in 48 + * C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government + * only as a commercial end item. Consistent with 48 C.F.R.12.212 and + * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all + * U.S. Government End Users acquire the Licensed Deliverables with + * only those rights set forth herein. + * + * Any use of the Licensed Deliverables in individual and commercial + * software must include, in the user documentation and internal + * comments to the code, the above Disclaimer and U.S. Government End + * Users Notice. + */ + +#include + +#if !defined(_CUPTI_OPENACC_H_) +#define _CUPTI_OPENACC_H_ + +#ifndef CUPTIAPI +#ifdef _WIN32 +#define CUPTIAPI __stdcall +#else +#define CUPTIAPI +#endif +#endif + +#if defined(__LP64__) +#define CUPTILP64 1 +#elif defined(_WIN64) +#define CUPTILP64 1 +#else +#undef CUPTILP64 +#endif + +#if defined(__cplusplus) +extern "C" { +#endif + +#if defined(__GNUC__) && defined(CUPTI_LIB) + #pragma GCC visibility push(default) +#endif + +/** + * \brief Initialize OpenACC support + * + * \param profRegister function of type acc_prof_reg as obtained from acc_register_library + * \param profUnregister function of type acc_prof_reg as obtained from acc_register_library + * \param profLookup function of type acc_prof_lookup as obtained from acc_register_library + */ +CUptiResult CUPTIAPI +cuptiOpenACCInitialize(void *profRegister, void *profUnregister, void *profLookup); + +#if defined(__GNUC__) && defined(CUPTI_LIB) + #pragma GCC visibility pop +#endif + +#if defined(__cplusplus) +} +#endif + +#endif /*_CUPTI_OPENACC_H_*/ + diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/Openmp/cupti_openmp.h b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/Openmp/cupti_openmp.h new file mode 100644 index 0000000000000000000000000000000000000000..303dd42878fb02774d872c197ccc27b17f2af69e --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/Openmp/cupti_openmp.h @@ -0,0 +1,100 @@ +/* + * Copyright 2018 NVIDIA Corporation. All rights reserved. + * + * NOTICE TO LICENSEE: + * + * This source code and/or documentation ("Licensed Deliverables") are + * subject to NVIDIA intellectual property rights under U.S. and + * international Copyright laws. + * + * These Licensed Deliverables contained herein is PROPRIETARY and + * CONFIDENTIAL to NVIDIA and is being provided under the terms and + * conditions of a form of NVIDIA software license agreement by and + * between NVIDIA and Licensee ("License Agreement") or electronically + * accepted by Licensee. Notwithstanding any terms or conditions to + * the contrary in the License Agreement, reproduction or disclosure + * of the Licensed Deliverables to any third party without the express + * written consent of NVIDIA is prohibited. + * + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE + * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. IT IS + * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. + * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED + * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, + * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY + * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY + * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS + * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THESE LICENSED DELIVERABLES. + * + * U.S. Government End Users. These Licensed Deliverables are a + * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT + * 1995), consisting of "commercial computer software" and "commercial + * computer software documentation" as such terms are used in 48 + * C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government + * only as a commercial end item. Consistent with 48 C.F.R.12.212 and + * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all + * U.S. Government End Users acquire the Licensed Deliverables with + * only those rights set forth herein. + * + * Any use of the Licensed Deliverables in individual and commercial + * software must include, in the user documentation and internal + * comments to the code, the above Disclaimer and U.S. Government End + * Users Notice. + */ + +#include +#include "Openmp/omp-tools.h" + +#if !defined(_CUPTI_OPENMP_H_) +#define _CUPTI_OPENMP_H_ + +#ifndef CUPTIAPI +#ifdef _WIN32 +#define CUPTIAPI __stdcall +#else +#define CUPTIAPI +#endif +#endif + +#if defined(__LP64__) +#define CUPTILP64 1 +#elif defined(_WIN64) +#define CUPTILP64 1 +#else +#undef CUPTILP64 +#endif + +#if defined(__cplusplus) +extern "C" { +#endif + +#if defined(__GNUC__) && defined(CUPTI_LIB) + #pragma GCC visibility push(default) +#endif + +/** + * \brief Initialize OPENMP support (deprecated, used before OpenMP 5.0) + * + */ +int CUPTIAPI cuptiOpenMpInitialize(ompt_function_lookup_t ompt_fn_lookup, const char *runtime_version, unsigned int ompt_version); + +/** + * \brief Initialize OPENMP support + * + */ +int CUPTIAPI cuptiOpenMpInitialize_v2(ompt_function_lookup_t lookup, int initial_device_num, ompt_data_t *tool_data); + +#if defined(__GNUC__) && defined(CUPTI_LIB) + #pragma GCC visibility pop +#endif + +#if defined(__cplusplus) +} +#endif + +#endif /*_CUPTI_OPENMP_H_*/ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/Openmp/omp-tools.h b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/Openmp/omp-tools.h new file mode 100644 index 0000000000000000000000000000000000000000..276967d07e8f8c0f7686e5b3b15151edf2415ae7 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/Openmp/omp-tools.h @@ -0,0 +1,1083 @@ +/* + * include/50/omp-tools.h.var + */ + +//===----------------------------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.txt for details. +// +//===----------------------------------------------------------------------===// + +#ifndef __OMPT__ +#define __OMPT__ + +/***************************************************************************** + * system include files + *****************************************************************************/ + +#include +#include + +/***************************************************************************** + * iteration macros + *****************************************************************************/ + +#define FOREACH_OMPT_INQUIRY_FN(macro) \ + macro (ompt_enumerate_states) \ + macro (ompt_enumerate_mutex_impls) \ + \ + macro (ompt_set_callback) \ + macro (ompt_get_callback) \ + \ + macro (ompt_get_state) \ + \ + macro (ompt_get_parallel_info) \ + macro (ompt_get_task_info) \ + macro (ompt_get_task_memory) \ + macro (ompt_get_thread_data) \ + macro (ompt_get_unique_id) \ + macro (ompt_finalize_tool) \ + \ + macro(ompt_get_num_procs) \ + macro(ompt_get_num_places) \ + macro(ompt_get_place_proc_ids) \ + macro(ompt_get_place_num) \ + macro(ompt_get_partition_place_nums) \ + macro(ompt_get_proc_id) \ + \ + macro(ompt_get_target_info) \ + macro(ompt_get_num_devices) + +#define FOREACH_OMPT_STATE(macro) \ + \ + /* first available state */ \ + macro (ompt_state_undefined, 0x102) /* undefined thread state */ \ + \ + /* work states (0..15) */ \ + macro (ompt_state_work_serial, 0x000) /* working outside parallel */ \ + macro (ompt_state_work_parallel, 0x001) /* working within parallel */ \ + macro (ompt_state_work_reduction, 0x002) /* performing a reduction */ \ + \ + /* barrier wait states (16..31) */ \ + macro (ompt_state_wait_barrier, 0x010) /* waiting at a barrier */ \ + macro (ompt_state_wait_barrier_implicit_parallel, 0x011) \ + /* implicit barrier at the end of parallel region */\ + macro (ompt_state_wait_barrier_implicit_workshare, 0x012) \ + /* implicit barrier at the end of worksharing */ \ + macro (ompt_state_wait_barrier_implicit, 0x013) /* implicit barrier */ \ + macro (ompt_state_wait_barrier_explicit, 0x014) /* explicit barrier */ \ + \ + /* task wait states (32..63) */ \ + macro (ompt_state_wait_taskwait, 0x020) /* waiting at a taskwait */ \ + macro (ompt_state_wait_taskgroup, 0x021) /* waiting at a taskgroup */ \ + \ + /* mutex wait states (64..127) */ \ + macro (ompt_state_wait_mutex, 0x040) \ + macro (ompt_state_wait_lock, 0x041) /* waiting for lock */ \ + macro (ompt_state_wait_critical, 0x042) /* waiting for critical */ \ + macro (ompt_state_wait_atomic, 0x043) /* waiting for atomic */ \ + macro (ompt_state_wait_ordered, 0x044) /* waiting for ordered */ \ + \ + /* target wait states (128..255) */ \ + macro (ompt_state_wait_target, 0x080) /* waiting for target region */ \ + macro (ompt_state_wait_target_map, 0x081) /* waiting for target data mapping operation */ \ + macro (ompt_state_wait_target_update, 0x082) /* waiting for target update operation */ \ + \ + /* misc (256..511) */ \ + macro (ompt_state_idle, 0x100) /* waiting for work */ \ + macro (ompt_state_overhead, 0x101) /* overhead excluding wait states */ \ + \ + /* implementation-specific states (512..) */ + + +#define FOREACH_KMP_MUTEX_IMPL(macro) \ + macro (kmp_mutex_impl_none, 0) /* unknown implementation */ \ + macro (kmp_mutex_impl_spin, 1) /* based on spin */ \ + macro (kmp_mutex_impl_queuing, 2) /* based on some fair policy */ \ + macro (kmp_mutex_impl_speculative, 3) /* based on HW-supported speculation */ + +#define FOREACH_OMPT_EVENT(macro) \ + \ + /*--- Mandatory Events ---*/ \ + macro (ompt_callback_thread_begin, ompt_callback_thread_begin_t, 1) /* thread begin */ \ + macro (ompt_callback_thread_end, ompt_callback_thread_end_t, 2) /* thread end */ \ + \ + macro (ompt_callback_parallel_begin, ompt_callback_parallel_begin_t, 3) /* parallel begin */ \ + macro (ompt_callback_parallel_end, ompt_callback_parallel_end_t, 4) /* parallel end */ \ + \ + macro (ompt_callback_task_create, ompt_callback_task_create_t, 5) /* task begin */ \ + macro (ompt_callback_task_schedule, ompt_callback_task_schedule_t, 6) /* task schedule */ \ + macro (ompt_callback_implicit_task, ompt_callback_implicit_task_t, 7) /* implicit task */ \ + \ + macro (ompt_callback_target, ompt_callback_target_t, 8) /* target */ \ + macro (ompt_callback_target_data_op, ompt_callback_target_data_op_t, 9) /* target data op */ \ + macro (ompt_callback_target_submit, ompt_callback_target_submit_t, 10) /* target submit */ \ + \ + macro (ompt_callback_control_tool, ompt_callback_control_tool_t, 11) /* control tool */ \ + \ + macro (ompt_callback_device_initialize, ompt_callback_device_initialize_t, 12) /* device initialize */ \ + macro (ompt_callback_device_finalize, ompt_callback_device_finalize_t, 13) /* device finalize */ \ + \ + macro (ompt_callback_device_load, ompt_callback_device_load_t, 14) /* device load */ \ + macro (ompt_callback_device_unload, ompt_callback_device_unload_t, 15) /* device unload */ \ + \ + /* Optional Events */ \ + macro (ompt_callback_sync_region_wait, ompt_callback_sync_region_t, 16) /* sync region wait begin or end */ \ + \ + macro (ompt_callback_mutex_released, ompt_callback_mutex_t, 17) /* mutex released */ \ + \ + macro (ompt_callback_dependences, ompt_callback_dependences_t, 18) /* report task dependences */ \ + macro (ompt_callback_task_dependence, ompt_callback_task_dependence_t, 19) /* report task dependence */ \ + \ + macro (ompt_callback_work, ompt_callback_work_t, 20) /* task at work begin or end */ \ + \ + macro (ompt_callback_master, ompt_callback_master_t, 21) /* task at master begin or end */ \ + \ + macro (ompt_callback_target_map, ompt_callback_target_map_t, 22) /* target map */ \ + \ + macro (ompt_callback_sync_region, ompt_callback_sync_region_t, 23) /* sync region begin or end */ \ + \ + macro (ompt_callback_lock_init, ompt_callback_mutex_acquire_t, 24) /* lock init */ \ + macro (ompt_callback_lock_destroy, ompt_callback_mutex_t, 25) /* lock destroy */ \ + \ + macro (ompt_callback_mutex_acquire, ompt_callback_mutex_acquire_t, 26) /* mutex acquire */ \ + macro (ompt_callback_mutex_acquired, ompt_callback_mutex_t, 27) /* mutex acquired */ \ + \ + macro (ompt_callback_nest_lock, ompt_callback_nest_lock_t, 28) /* nest lock */ \ + \ + macro (ompt_callback_flush, ompt_callback_flush_t, 29) /* after executing flush */ \ + \ + macro (ompt_callback_cancel, ompt_callback_cancel_t, 30) /* cancel innermost binding region */ \ + \ + macro (ompt_callback_reduction, ompt_callback_sync_region_t, 31) /* reduction */ \ + \ + macro (ompt_callback_dispatch, ompt_callback_dispatch_t, 32) /* dispatch of work */ + +/***************************************************************************** + * implementation specific types + *****************************************************************************/ + +typedef enum kmp_mutex_impl_t { +#define kmp_mutex_impl_macro(impl, code) impl = code, + FOREACH_KMP_MUTEX_IMPL(kmp_mutex_impl_macro) +#undef kmp_mutex_impl_macro +} kmp_mutex_impl_t; + +/***************************************************************************** + * definitions generated from spec + *****************************************************************************/ + +typedef enum ompt_callbacks_t { + ompt_callback_thread_begin = 1, + ompt_callback_thread_end = 2, + ompt_callback_parallel_begin = 3, + ompt_callback_parallel_end = 4, + ompt_callback_task_create = 5, + ompt_callback_task_schedule = 6, + ompt_callback_implicit_task = 7, + ompt_callback_target = 8, + ompt_callback_target_data_op = 9, + ompt_callback_target_submit = 10, + ompt_callback_control_tool = 11, + ompt_callback_device_initialize = 12, + ompt_callback_device_finalize = 13, + ompt_callback_device_load = 14, + ompt_callback_device_unload = 15, + ompt_callback_sync_region_wait = 16, + ompt_callback_mutex_released = 17, + ompt_callback_dependences = 18, + ompt_callback_task_dependence = 19, + ompt_callback_work = 20, + ompt_callback_master = 21, + ompt_callback_target_map = 22, + ompt_callback_sync_region = 23, + ompt_callback_lock_init = 24, + ompt_callback_lock_destroy = 25, + ompt_callback_mutex_acquire = 26, + ompt_callback_mutex_acquired = 27, + ompt_callback_nest_lock = 28, + ompt_callback_flush = 29, + ompt_callback_cancel = 30, + ompt_callback_reduction = 31, + ompt_callback_dispatch = 32 +} ompt_callbacks_t; + +typedef enum ompt_record_t { + ompt_record_ompt = 1, + ompt_record_native = 2, + ompt_record_invalid = 3 +} ompt_record_t; + +typedef enum ompt_record_native_t { + ompt_record_native_info = 1, + ompt_record_native_event = 2 +} ompt_record_native_t; + +typedef enum ompt_set_result_t { + ompt_set_error = 0, + ompt_set_never = 1, + ompt_set_impossible = 2, + ompt_set_sometimes = 3, + ompt_set_sometimes_paired = 4, + ompt_set_always = 5 +} ompt_set_result_t; + +typedef uint64_t ompt_id_t; + +typedef uint64_t ompt_device_time_t; + +typedef uint64_t ompt_buffer_cursor_t; + +typedef enum ompt_thread_t { + ompt_thread_initial = 1, + ompt_thread_worker = 2, + ompt_thread_other = 3, + ompt_thread_unknown = 4 +} ompt_thread_t; + +typedef enum ompt_scope_endpoint_t { + ompt_scope_begin = 1, + ompt_scope_end = 2 +} ompt_scope_endpoint_t; + +typedef enum ompt_dispatch_t { + ompt_dispatch_iteration = 1, + ompt_dispatch_section = 2 +} ompt_dispatch_t; + +typedef enum ompt_sync_region_t { + ompt_sync_region_barrier = 1, + ompt_sync_region_barrier_implicit = 2, + ompt_sync_region_barrier_explicit = 3, + ompt_sync_region_barrier_implementation = 4, + ompt_sync_region_taskwait = 5, + ompt_sync_region_taskgroup = 6, + ompt_sync_region_reduction = 7 +} ompt_sync_region_t; + +typedef enum ompt_target_data_op_t { + ompt_target_data_alloc = 1, + ompt_target_data_transfer_to_device = 2, + ompt_target_data_transfer_from_device = 3, + ompt_target_data_delete = 4, + ompt_target_data_associate = 5, + ompt_target_data_disassociate = 6 +} ompt_target_data_op_t; + +typedef enum ompt_work_t { + ompt_work_loop = 1, + ompt_work_sections = 2, + ompt_work_single_executor = 3, + ompt_work_single_other = 4, + ompt_work_workshare = 5, + ompt_work_distribute = 6, + ompt_work_taskloop = 7 +} ompt_work_t; + +typedef enum ompt_mutex_t { + ompt_mutex_lock = 1, + ompt_mutex_test_lock = 2, + ompt_mutex_nest_lock = 3, + ompt_mutex_test_nest_lock = 4, + ompt_mutex_critical = 5, + ompt_mutex_atomic = 6, + ompt_mutex_ordered = 7 +} ompt_mutex_t; + +typedef enum ompt_native_mon_flag_t { + ompt_native_data_motion_explicit = 0x01, + ompt_native_data_motion_implicit = 0x02, + ompt_native_kernel_invocation = 0x04, + ompt_native_kernel_execution = 0x08, + ompt_native_driver = 0x10, + ompt_native_runtime = 0x20, + ompt_native_overhead = 0x40, + ompt_native_idleness = 0x80 +} ompt_native_mon_flag_t; + +typedef enum ompt_task_flag_t { + ompt_task_initial = 0x00000001, + ompt_task_implicit = 0x00000002, + ompt_task_explicit = 0x00000004, + ompt_task_target = 0x00000008, + ompt_task_undeferred = 0x08000000, + ompt_task_untied = 0x10000000, + ompt_task_final = 0x20000000, + ompt_task_mergeable = 0x40000000, + ompt_task_merged = 0x80000000 +} ompt_task_flag_t; + +typedef enum ompt_task_status_t { + ompt_task_complete = 1, + ompt_task_yield = 2, + ompt_task_cancel = 3, + ompt_task_detach = 4, + ompt_task_early_fulfill = 5, + ompt_task_late_fulfill = 6, + ompt_task_switch = 7 +} ompt_task_status_t; + +typedef enum ompt_target_t { + ompt_target = 1, + ompt_target_enter_data = 2, + ompt_target_exit_data = 3, + ompt_target_update = 4 +} ompt_target_t; + +typedef enum ompt_parallel_flag_t { + ompt_parallel_invoker_program = 0x00000001, + ompt_parallel_invoker_runtime = 0x00000002, + ompt_parallel_league = 0x40000000, + ompt_parallel_team = 0x80000000 +} ompt_parallel_flag_t; + +typedef enum ompt_target_map_flag_t { + ompt_target_map_flag_to = 0x01, + ompt_target_map_flag_from = 0x02, + ompt_target_map_flag_alloc = 0x04, + ompt_target_map_flag_release = 0x08, + ompt_target_map_flag_delete = 0x10, + ompt_target_map_flag_implicit = 0x20 +} ompt_target_map_flag_t; + +typedef enum ompt_dependence_type_t { + ompt_dependence_type_in = 1, + ompt_dependence_type_out = 2, + ompt_dependence_type_inout = 3, + ompt_dependence_type_mutexinoutset = 4, + ompt_dependence_type_source = 5, + ompt_dependence_type_sink = 6 +} ompt_dependence_type_t; + +typedef enum ompt_cancel_flag_t { + ompt_cancel_parallel = 0x01, + ompt_cancel_sections = 0x02, + ompt_cancel_loop = 0x04, + ompt_cancel_taskgroup = 0x08, + ompt_cancel_activated = 0x10, + ompt_cancel_detected = 0x20, + ompt_cancel_discarded_task = 0x40 +} ompt_cancel_flag_t; + +typedef uint64_t ompt_hwid_t; + +typedef uint64_t ompt_wait_id_t; + +typedef enum ompt_frame_flag_t { + ompt_frame_runtime = 0x00, + ompt_frame_application = 0x01, + ompt_frame_cfa = 0x10, + ompt_frame_framepointer = 0x20, + ompt_frame_stackaddress = 0x30 +} ompt_frame_flag_t; + +typedef enum ompt_state_t { + ompt_state_work_serial = 0x000, + ompt_state_work_parallel = 0x001, + ompt_state_work_reduction = 0x002, + + ompt_state_wait_barrier = 0x010, + ompt_state_wait_barrier_implicit_parallel = 0x011, + ompt_state_wait_barrier_implicit_workshare = 0x012, + ompt_state_wait_barrier_implicit = 0x013, + ompt_state_wait_barrier_explicit = 0x014, + + ompt_state_wait_taskwait = 0x020, + ompt_state_wait_taskgroup = 0x021, + + ompt_state_wait_mutex = 0x040, + ompt_state_wait_lock = 0x041, + ompt_state_wait_critical = 0x042, + ompt_state_wait_atomic = 0x043, + ompt_state_wait_ordered = 0x044, + + ompt_state_wait_target = 0x080, + ompt_state_wait_target_map = 0x081, + ompt_state_wait_target_update = 0x082, + + ompt_state_idle = 0x100, + ompt_state_overhead = 0x101, + ompt_state_undefined = 0x102 +} ompt_state_t; + +typedef uint64_t (*ompt_get_unique_id_t) (void); + +typedef uint64_t ompd_size_t; + +typedef uint64_t ompd_wait_id_t; + +typedef uint64_t ompd_addr_t; +typedef int64_t ompd_word_t; +typedef uint64_t ompd_seg_t; + +typedef uint64_t ompd_device_t; + +typedef uint64_t ompd_thread_id_t; + +typedef enum ompd_scope_t { + ompd_scope_global = 1, + ompd_scope_address_space = 2, + ompd_scope_thread = 3, + ompd_scope_parallel = 4, + ompd_scope_implicit_task = 5, + ompd_scope_task = 6 +} ompd_scope_t; + +typedef uint64_t ompd_icv_id_t; + +typedef enum ompd_rc_t { + ompd_rc_ok = 0, + ompd_rc_unavailable = 1, + ompd_rc_stale_handle = 2, + ompd_rc_bad_input = 3, + ompd_rc_error = 4, + ompd_rc_unsupported = 5, + ompd_rc_needs_state_tracking = 6, + ompd_rc_incompatible = 7, + ompd_rc_device_read_error = 8, + ompd_rc_device_write_error = 9, + ompd_rc_nomem = 10, +} ompd_rc_t; + +typedef void (*ompt_interface_fn_t) (void); + +typedef ompt_interface_fn_t (*ompt_function_lookup_t) ( + const char *interface_function_name +); + +typedef union ompt_data_t { + uint64_t value; + void *ptr; +} ompt_data_t; + +typedef struct ompt_frame_t { + ompt_data_t exit_frame; + ompt_data_t enter_frame; + int exit_frame_flags; + int enter_frame_flags; +} ompt_frame_t; + +typedef void (*ompt_callback_t) (void); + +typedef void ompt_device_t; + +typedef void ompt_buffer_t; + +typedef void (*ompt_callback_buffer_request_t) ( + int device_num, + ompt_buffer_t **buffer, + size_t *bytes +); + +typedef void (*ompt_callback_buffer_complete_t) ( + int device_num, + ompt_buffer_t *buffer, + size_t bytes, + ompt_buffer_cursor_t begin, + int buffer_owned +); + +typedef void (*ompt_finalize_t) ( + ompt_data_t *tool_data +); + +typedef int (*ompt_initialize_t) ( + ompt_function_lookup_t lookup, + int initial_device_num, + ompt_data_t *tool_data +); + +typedef struct ompt_start_tool_result_t { + ompt_initialize_t initialize; + ompt_finalize_t finalize; + ompt_data_t tool_data; +} ompt_start_tool_result_t; + +typedef struct ompt_record_abstract_t { + ompt_record_native_t rclass; + const char *type; + ompt_device_time_t start_time; + ompt_device_time_t end_time; + ompt_hwid_t hwid; +} ompt_record_abstract_t; + +typedef struct ompt_dependence_t { + ompt_data_t variable; + ompt_dependence_type_t dependence_type; +} ompt_dependence_t; + +typedef int (*ompt_enumerate_states_t) ( + int current_state, + int *next_state, + const char **next_state_name +); + +typedef int (*ompt_enumerate_mutex_impls_t) ( + int current_impl, + int *next_impl, + const char **next_impl_name +); + +typedef ompt_set_result_t (*ompt_set_callback_t) ( + ompt_callbacks_t event, + ompt_callback_t callback +); + +typedef int (*ompt_get_callback_t) ( + ompt_callbacks_t event, + ompt_callback_t *callback +); + +typedef ompt_data_t *(*ompt_get_thread_data_t) (void); + +typedef int (*ompt_get_num_procs_t) (void); + +typedef int (*ompt_get_num_places_t) (void); + +typedef int (*ompt_get_place_proc_ids_t) ( + int place_num, + int ids_size, + int *ids +); + +typedef int (*ompt_get_place_num_t) (void); + +typedef int (*ompt_get_partition_place_nums_t) ( + int place_nums_size, + int *place_nums +); + +typedef int (*ompt_get_proc_id_t) (void); + +typedef int (*ompt_get_state_t) ( + ompt_wait_id_t *wait_id +); + +typedef int (*ompt_get_parallel_info_t) ( + int ancestor_level, + ompt_data_t **parallel_data, + int *team_size +); + +typedef int (*ompt_get_task_info_t) ( + int ancestor_level, + int *flags, + ompt_data_t **task_data, + ompt_frame_t **task_frame, + ompt_data_t **parallel_data, + int *thread_num +); + +typedef int (*ompt_get_task_memory_t)( + void **addr, + size_t *size, + int block +); + +typedef int (*ompt_get_target_info_t) ( + uint64_t *device_num, + ompt_id_t *target_id, + ompt_id_t *host_op_id +); + +typedef int (*ompt_get_num_devices_t) (void); + +typedef void (*ompt_finalize_tool_t) (void); + +typedef int (*ompt_get_device_num_procs_t) ( + ompt_device_t *device +); + +typedef ompt_device_time_t (*ompt_get_device_time_t) ( + ompt_device_t *device +); + +typedef double (*ompt_translate_time_t) ( + ompt_device_t *device, + ompt_device_time_t time +); + +typedef ompt_set_result_t (*ompt_set_trace_ompt_t) ( + ompt_device_t *device, + unsigned int enable, + unsigned int etype +); + +typedef ompt_set_result_t (*ompt_set_trace_native_t) ( + ompt_device_t *device, + int enable, + int flags +); + +typedef int (*ompt_start_trace_t) ( + ompt_device_t *device, + ompt_callback_buffer_request_t request, + ompt_callback_buffer_complete_t complete +); + +typedef int (*ompt_pause_trace_t) ( + ompt_device_t *device, + int begin_pause +); + +typedef int (*ompt_flush_trace_t) ( + ompt_device_t *device +); + +typedef int (*ompt_stop_trace_t) ( + ompt_device_t *device +); + +typedef int (*ompt_advance_buffer_cursor_t) ( + ompt_device_t *device, + ompt_buffer_t *buffer, + size_t size, + ompt_buffer_cursor_t current, + ompt_buffer_cursor_t *next +); + +typedef ompt_record_t (*ompt_get_record_type_t) ( + ompt_buffer_t *buffer, + ompt_buffer_cursor_t current +); + +typedef void *(*ompt_get_record_native_t) ( + ompt_buffer_t *buffer, + ompt_buffer_cursor_t current, + ompt_id_t *host_op_id +); + +typedef ompt_record_abstract_t * +(*ompt_get_record_abstract_t) ( + void *native_record +); + +typedef void (*ompt_callback_thread_begin_t) ( + ompt_thread_t thread_type, + ompt_data_t *thread_data +); + +typedef struct ompt_record_thread_begin_t { + ompt_thread_t thread_type; +} ompt_record_thread_begin_t; + +typedef void (*ompt_callback_thread_end_t) ( + ompt_data_t *thread_data +); + +typedef void (*ompt_callback_parallel_begin_t) ( + ompt_data_t *encountering_task_data, + const ompt_frame_t *encountering_task_frame, + ompt_data_t *parallel_data, + unsigned int requested_parallelism, + int flags, + const void *codeptr_ra +); + +typedef struct ompt_record_parallel_begin_t { + ompt_id_t encountering_task_id; + ompt_id_t parallel_id; + unsigned int requested_parallelism; + int flags; + const void *codeptr_ra; +} ompt_record_parallel_begin_t; + +typedef void (*ompt_callback_parallel_end_t) ( + ompt_data_t *parallel_data, + ompt_data_t *encountering_task_data, + int flags, + const void *codeptr_ra +); + +typedef struct ompt_record_parallel_end_t { + ompt_id_t parallel_id; + ompt_id_t encountering_task_id; + int flags; + const void *codeptr_ra; +} ompt_record_parallel_end_t; + +typedef void (*ompt_callback_work_t) ( + ompt_work_t wstype, + ompt_scope_endpoint_t endpoint, + ompt_data_t *parallel_data, + ompt_data_t *task_data, + uint64_t count, + const void *codeptr_ra +); + +typedef struct ompt_record_work_t { + ompt_work_t wstype; + ompt_scope_endpoint_t endpoint; + ompt_id_t parallel_id; + ompt_id_t task_id; + uint64_t count; + const void *codeptr_ra; +} ompt_record_work_t; + +typedef void (*ompt_callback_dispatch_t) ( + ompt_data_t *parallel_data, + ompt_data_t *task_data, + ompt_dispatch_t kind, + ompt_data_t instance +); + +typedef struct ompt_record_dispatch_t { + ompt_id_t parallel_id; + ompt_id_t task_id; + ompt_dispatch_t kind; + ompt_data_t instance; +} ompt_record_dispatch_t; + +typedef void (*ompt_callback_task_create_t) ( + ompt_data_t *encountering_task_data, + const ompt_frame_t *encountering_task_frame, + ompt_data_t *new_task_data, + int flags, + int has_dependences, + const void *codeptr_ra +); + +typedef struct ompt_record_task_create_t { + ompt_id_t encountering_task_id; + ompt_id_t new_task_id; + int flags; + int has_dependences; + const void *codeptr_ra; +} ompt_record_task_create_t; + +typedef void (*ompt_callback_dependences_t) ( + ompt_data_t *task_data, + const ompt_dependence_t *deps, + int ndeps +); + +typedef struct ompt_record_dependences_t { + ompt_id_t task_id; + ompt_dependence_t dep; + int ndeps; +} ompt_record_dependences_t; + +typedef void (*ompt_callback_task_dependence_t) ( + ompt_data_t *src_task_data, + ompt_data_t *sink_task_data +); + +typedef struct ompt_record_task_dependence_t { + ompt_id_t src_task_id; + ompt_id_t sink_task_id; +} ompt_record_task_dependence_t; + +typedef void (*ompt_callback_task_schedule_t) ( + ompt_data_t *prior_task_data, + ompt_task_status_t prior_task_status, + ompt_data_t *next_task_data +); + +typedef struct ompt_record_task_schedule_t { + ompt_id_t prior_task_id; + ompt_task_status_t prior_task_status; + ompt_id_t next_task_id; +} ompt_record_task_schedule_t; + +typedef void (*ompt_callback_implicit_task_t) ( + ompt_scope_endpoint_t endpoint, + ompt_data_t *parallel_data, + ompt_data_t *task_data, + unsigned int actual_parallelism, + unsigned int index, + int flags +); + +typedef struct ompt_record_implicit_task_t { + ompt_scope_endpoint_t endpoint; + ompt_id_t parallel_id; + ompt_id_t task_id; + unsigned int actual_parallelism; + unsigned int index; + int flags; +} ompt_record_implicit_task_t; + +typedef void (*ompt_callback_master_t) ( + ompt_scope_endpoint_t endpoint, + ompt_data_t *parallel_data, + ompt_data_t *task_data, + const void *codeptr_ra +); + +typedef struct ompt_record_master_t { + ompt_scope_endpoint_t endpoint; + ompt_id_t parallel_id; + ompt_id_t task_id; + const void *codeptr_ra; +} ompt_record_master_t; + +typedef void (*ompt_callback_sync_region_t) ( + ompt_sync_region_t kind, + ompt_scope_endpoint_t endpoint, + ompt_data_t *parallel_data, + ompt_data_t *task_data, + const void *codeptr_ra +); + +typedef struct ompt_record_sync_region_t { + ompt_sync_region_t kind; + ompt_scope_endpoint_t endpoint; + ompt_id_t parallel_id; + ompt_id_t task_id; + const void *codeptr_ra; +} ompt_record_sync_region_t; + +typedef void (*ompt_callback_mutex_acquire_t) ( + ompt_mutex_t kind, + unsigned int hint, + unsigned int impl, + ompt_wait_id_t wait_id, + const void *codeptr_ra +); + +typedef struct ompt_record_mutex_acquire_t { + ompt_mutex_t kind; + unsigned int hint; + unsigned int impl; + ompt_wait_id_t wait_id; + const void *codeptr_ra; +} ompt_record_mutex_acquire_t; + +typedef void (*ompt_callback_mutex_t) ( + ompt_mutex_t kind, + ompt_wait_id_t wait_id, + const void *codeptr_ra +); + +typedef struct ompt_record_mutex_t { + ompt_mutex_t kind; + ompt_wait_id_t wait_id; + const void *codeptr_ra; +} ompt_record_mutex_t; + +typedef void (*ompt_callback_nest_lock_t) ( + ompt_scope_endpoint_t endpoint, + ompt_wait_id_t wait_id, + const void *codeptr_ra +); + +typedef struct ompt_record_nest_lock_t { + ompt_scope_endpoint_t endpoint; + ompt_wait_id_t wait_id; + const void *codeptr_ra; +} ompt_record_nest_lock_t; + +typedef void (*ompt_callback_flush_t) ( + ompt_data_t *thread_data, + const void *codeptr_ra +); + +typedef struct ompt_record_flush_t { + const void *codeptr_ra; +} ompt_record_flush_t; + +typedef void (*ompt_callback_cancel_t) ( + ompt_data_t *task_data, + int flags, + const void *codeptr_ra +); + +typedef struct ompt_record_cancel_t { + ompt_id_t task_id; + int flags; + const void *codeptr_ra; +} ompt_record_cancel_t; + +typedef void (*ompt_callback_device_initialize_t) ( + int device_num, + const char *type, + ompt_device_t *device, + ompt_function_lookup_t lookup, + const char *documentation +); + +typedef void (*ompt_callback_device_finalize_t) ( + int device_num +); + +typedef void (*ompt_callback_device_load_t) ( + int device_num, + const char *filename, + int64_t offset_in_file, + void *vma_in_file, + size_t bytes, + void *host_addr, + void *device_addr, + uint64_t module_id +); + +typedef void (*ompt_callback_device_unload_t) ( + int device_num, + uint64_t module_id +); + +typedef void (*ompt_callback_target_data_op_t) ( + ompt_id_t target_id, + ompt_id_t host_op_id, + ompt_target_data_op_t optype, + void *src_addr, + int src_device_num, + void *dest_addr, + int dest_device_num, + size_t bytes, + const void *codeptr_ra +); + +typedef struct ompt_record_target_data_op_t { + ompt_id_t host_op_id; + ompt_target_data_op_t optype; + void *src_addr; + int src_device_num; + void *dest_addr; + int dest_device_num; + size_t bytes; + ompt_device_time_t end_time; + const void *codeptr_ra; +} ompt_record_target_data_op_t; + +typedef void (*ompt_callback_target_t) ( + ompt_target_t kind, + ompt_scope_endpoint_t endpoint, + int device_num, + ompt_data_t *task_data, + ompt_id_t target_id, + const void *codeptr_ra +); + +typedef struct ompt_record_target_t { + ompt_target_t kind; + ompt_scope_endpoint_t endpoint; + int device_num; + ompt_id_t task_id; + ompt_id_t target_id; + const void *codeptr_ra; +} ompt_record_target_t; + +typedef void (*ompt_callback_target_map_t) ( + ompt_id_t target_id, + unsigned int nitems, + void **host_addr, + void **device_addr, + size_t *bytes, + unsigned int *mapping_flags, + const void *codeptr_ra +); + +typedef struct ompt_record_target_map_t { + ompt_id_t target_id; + unsigned int nitems; + void **host_addr; + void **device_addr; + size_t *bytes; + unsigned int *mapping_flags; + const void *codeptr_ra; +} ompt_record_target_map_t; + +typedef void (*ompt_callback_target_submit_t) ( + ompt_id_t target_id, + ompt_id_t host_op_id, + unsigned int requested_num_teams +); + +typedef struct ompt_record_target_kernel_t { + ompt_id_t host_op_id; + unsigned int requested_num_teams; + unsigned int granted_num_teams; + ompt_device_time_t end_time; +} ompt_record_target_kernel_t; + +typedef int (*ompt_callback_control_tool_t) ( + uint64_t command, + uint64_t modifier, + void *arg, + const void *codeptr_ra +); + +typedef struct ompt_record_control_tool_t { + uint64_t command; + uint64_t modifier; + const void *codeptr_ra; +} ompt_record_control_tool_t; + +typedef struct ompd_address_t { + ompd_seg_t segment; + ompd_addr_t address; +} ompd_address_t; + +typedef struct ompd_frame_info_t { + ompd_address_t frame_address; + ompd_word_t frame_flag; +} ompd_frame_info_t; + +typedef struct _ompd_aspace_handle ompd_address_space_handle_t; +typedef struct _ompd_thread_handle ompd_thread_handle_t; +typedef struct _ompd_parallel_handle ompd_parallel_handle_t; +typedef struct _ompd_task_handle ompd_task_handle_t; + +typedef struct _ompd_aspace_cont ompd_address_space_context_t; +typedef struct _ompd_thread_cont ompd_thread_context_t; + +typedef struct ompd_device_type_sizes_t { + uint8_t sizeof_char; + uint8_t sizeof_short; + uint8_t sizeof_int; + uint8_t sizeof_long; + uint8_t sizeof_long_long; + uint8_t sizeof_pointer; +} ompd_device_type_sizes_t; + +typedef struct ompt_record_ompt_t { + ompt_callbacks_t type; + ompt_device_time_t time; + ompt_id_t thread_id; + ompt_id_t target_id; + union { + ompt_record_thread_begin_t thread_begin; + ompt_record_parallel_begin_t parallel_begin; + ompt_record_parallel_end_t parallel_end; + ompt_record_work_t work; + ompt_record_dispatch_t dispatch; + ompt_record_task_create_t task_create; + ompt_record_dependences_t dependences; + ompt_record_task_dependence_t task_dependence; + ompt_record_task_schedule_t task_schedule; + ompt_record_implicit_task_t implicit_task; + ompt_record_master_t master; + ompt_record_sync_region_t sync_region; + ompt_record_mutex_acquire_t mutex_acquire; + ompt_record_mutex_t mutex; + ompt_record_nest_lock_t nest_lock; + ompt_record_flush_t flush; + ompt_record_cancel_t cancel; + ompt_record_target_t target; + ompt_record_target_data_op_t target_data_op; + ompt_record_target_map_t target_map; + ompt_record_target_kernel_t target_kernel; + ompt_record_control_tool_t control_tool; + } record; +} ompt_record_ompt_t; + +typedef ompt_record_ompt_t *(*ompt_get_record_ompt_t) ( + ompt_buffer_t *buffer, + ompt_buffer_cursor_t current +); + +#define ompt_id_none 0 +#define ompt_data_none {0} +#define ompt_time_none 0 +#define ompt_hwid_none 0 +#define ompt_addr_none ~0 +#define ompt_mutex_impl_none 0 +#define ompt_wait_id_none 0 + +#define ompd_segment_none 0 + +#endif /* __OMPT__ */ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/async.h b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/async.h new file mode 100644 index 0000000000000000000000000000000000000000..1b7dcb2433f2cb7d1ef61290995ac871a901b1e8 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/async.h @@ -0,0 +1,452 @@ +/* Copyright 1993-2016 NVIDIA Corporation. All rights reserved. + * + * NOTICE TO LICENSEE: + * + * The source code and/or documentation ("Licensed Deliverables") are + * subject to NVIDIA intellectual property rights under U.S. and + * international Copyright laws. + * + * The Licensed Deliverables contained herein are PROPRIETARY and + * CONFIDENTIAL to NVIDIA and are being provided under the terms and + * conditions of a form of NVIDIA software license agreement by and + * between NVIDIA and Licensee ("License Agreement") or electronically + * accepted by Licensee. Notwithstanding any terms or conditions to + * the contrary in the License Agreement, reproduction or disclosure + * of the Licensed Deliverables to any third party without the express + * written consent of NVIDIA is prohibited. + * + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE + * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. THEY ARE + * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. + * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED + * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, + * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY + * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY + * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS + * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THESE LICENSED DELIVERABLES. + * + * U.S. Government End Users. These Licensed Deliverables are a + * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT + * 1995), consisting of "commercial computer software" and "commercial + * computer software documentation" as such terms are used in 48 + * C.F.R. 12.212 (SEPT 1995) and are provided to the U.S. Government + * only as a commercial end item. Consistent with 48 C.F.R.12.212 and + * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all + * U.S. Government End Users acquire the Licensed Deliverables with + * only those rights set forth herein. + * + * Any use of the Licensed Deliverables in individual and commercial + * software must include, in the user documentation and internal + * comments to the code, the above Disclaimer and U.S. Government End + * Users Notice. + */ + +#ifndef _CG_ASYNC_H +#define _CG_ASYNC_H + +#include "helpers.h" +#include "info.h" + +#include + +_CG_BEGIN_NAMESPACE + +namespace details { +// Groups supported by memcpy_async +template +struct _async_copy_group_supported : public _CG_STL_NAMESPACE::false_type {}; + +template +struct _async_copy_group_supported> + : public _CG_STL_NAMESPACE::true_type {}; +template <> +struct _async_copy_group_supported : public _CG_STL_NAMESPACE::true_type {}; +template <> +struct _async_copy_group_supported : public _CG_STL_NAMESPACE::true_type {}; + +template +using async_copy_group_supported = _async_copy_group_supported>; + +// Groups that require optimization +template +struct _async_copy_optimize_tile : public _CG_STL_NAMESPACE::false_type {}; + +template +struct _async_copy_optimize_tile> + : public _CG_STL_NAMESPACE::false_type {}; + +template +struct _async_copy_optimize_tile> + : public _CG_STL_NAMESPACE::true_type {}; + +template +using async_copy_optimize_tile = _async_copy_optimize_tile>; + +// SFINAE helpers for tile optimizations +template +using enable_tile_optimization = + typename _CG_STL_NAMESPACE::enable_if::value, void *>::type; + +template +using disable_tile_optimization = + typename _CG_STL_NAMESPACE::enable_if::value, void *>::type; + +// Segment for punning to aligned types +template +struct _Segment { + int _seg[N]; +}; + +// Trivial layout guaranteed-aligned copy-async compatible segments +template +struct Segment; +template <> +struct __align__(4) Segment<1> : public _Segment<1>{}; +template <> +struct __align__(8) Segment<2> : public _Segment<2>{}; +template <> +struct __align__(16) Segment<4> : public _Segment<4>{}; + +// Interleaved element by element copies from source to dest +template +_CG_STATIC_QUALIFIER void inline_copy(TyGroup &group, TyElem *__restrict__ dst, const TyElem *__restrict__ src, + size_t count) { + const unsigned int rank = group.thread_rank(); + const unsigned int stride = group.size(); + + for (size_t idx = rank; idx < count; idx += stride) { + dst[idx] = src[idx]; + } +} + +template = nullptr> +_CG_STATIC_QUALIFIER void accelerated_async_copy(TyGroup &group, TyElem *__restrict__ dst, + const TyElem *__restrict__ src, size_t count) { + static_assert(async_copy_group_supported::value, + "Async copy is only supported for groups that represent private shared memory"); + + if (count == 0) { + return; + } + + const bool dstIsNotShared = !__isShared(dst); + const bool srcIsNotGlobal = !__isGlobal(src); + + if (dstIsNotShared || srcIsNotGlobal) { + inline_copy(group, dst, src, count); + return; + } + + const unsigned int stride = group.size(); + const unsigned int rank = group.thread_rank(); + // Efficient copies require warps to operate on the same amount of work at each step. + // remainders are handled in a separate stage to prevent branching + const unsigned int subWarpMask = (stride - 1); + const unsigned int subwarpCopies = (subWarpMask & (unsigned int)count); + const unsigned int maxSubwarpRank = min(rank, subwarpCopies - 1); + + const size_t warpCopies = (count & (~subWarpMask)); + + for (size_t idx = 0; idx < warpCopies; idx += stride) { + size_t _srcIdx = rank + idx; + size_t _dstIdx = rank + idx; + __pipeline_memcpy_async(dst + _dstIdx, src + _srcIdx, sizeof(TyElem)); + } + + if (subwarpCopies) { + size_t _srcIdx = warpCopies + maxSubwarpRank; + size_t _dstIdx = warpCopies + maxSubwarpRank; + __pipeline_memcpy_async(dst + _dstIdx, src + _srcIdx, sizeof(TyElem)); + } +} + +template = nullptr> +_CG_STATIC_QUALIFIER void accelerated_async_copy(TyGroup &group, TyElem *__restrict__ dst, + const TyElem *__restrict__ src, size_t count) { + static_assert(async_copy_group_supported::value, + "Async copy is only supported for groups that represent private shared memory"); + + const bool dstIsNotShared = !__isShared(dst); + const bool srcIsNotGlobal = !__isGlobal(src); + + if (dstIsNotShared || srcIsNotGlobal) { + inline_copy(group, dst, src, count); + return; + } + + unsigned int stride = group.size(); + unsigned int rank = group.thread_rank(); + + for (size_t idx = rank; idx < count; idx += stride) { + size_t _srcIdx = idx; + size_t _dstIdx = idx; + __pipeline_memcpy_async(dst + _dstIdx, src + _srcIdx, sizeof(TyElem)); + } +} + +// Determine best possible alignment given an input and initial conditions +// Attempts to generate as little code as possible, most likely should only be used with 1 and 2 byte alignments +template +_CG_STATIC_QUALIFIER uint32_t find_best_alignment(void *__restrict__ dst, const void *__restrict__ src) { + // Narrowing conversion intentional + uint32_t base1 = (uint32_t) reinterpret_cast(src); + uint32_t base2 = (uint32_t) reinterpret_cast(dst); + + uint32_t diff = ((base1) ^ (base2)) & (MaxAlignment - 1); + + // range [MaxAlignment, alignof(elem)], step: x >> 1 + // over range of possible alignments, choose best available out of range + uint32_t out = MaxAlignment; +#pragma unroll + for (uint32_t alignment = (MaxAlignment >> 1); alignment >= MinAlignment; alignment >>= 1) { + if (alignment & diff) + out = alignment; + } + + return out; +} + +// Determine best possible alignment given an input and initial conditions +// Attempts to generate as little code as possible, most likely should only be used with 1 and 2 byte alignments +template +_CG_STATIC_QUALIFIER void copy_like(const TyGroup &group, void *__restrict__ _dst, const void *__restrict__ _src, + size_t count) { + const char *src = reinterpret_cast(_src); + char *dst = reinterpret_cast(_dst); + + constexpr uint32_t targetAlignment = (uint32_t)alignof(TyType); + + uint32_t base = (uint32_t) reinterpret_cast(src); + uint32_t alignOffset = ((~base) + 1) & (targetAlignment - 1); + + inline_copy(group, dst, src, alignOffset); + count -= alignOffset; + src += alignOffset; + dst += alignOffset; + + // Copy using the best available alignment, async_copy expects n-datums, not bytes + size_t asyncCount = count / sizeof(TyType); + accelerated_async_copy(group, reinterpret_cast(dst), reinterpret_cast(src), asyncCount); + asyncCount *= sizeof(TyType); + + count -= asyncCount; + src += asyncCount; + dst += asyncCount; + inline_copy(group, dst, src, count); +} + +// We must determine alignment and manually align src/dst ourselves +template +struct _memcpy_async_align_dispatch { + template + _CG_STATIC_QUALIFIER void copy(TyGroup &group, void *__restrict__ dst, const void *__restrict__ src, size_t count) { + uint32_t alignment = find_best_alignment(dst, src); + + // Avoid copying the extra bytes if desired copy count is smaller + alignment = count < alignment ? AlignHint : alignment; + + switch (alignment) { + default: + case 1: + inline_copy(group, reinterpret_cast(dst), reinterpret_cast(src), count); + break; + case 2: + inline_copy(group, reinterpret_cast(dst), reinterpret_cast(src), count >> 1); + break; + case 4: + copy_like>(group, dst, src, count); + break; + case 8: + copy_like>(group, dst, src, count); + break; + case 16: + copy_like>(group, dst, src, count); + break; + } + } +}; + +// Specialization for 4 byte alignments +template <> +struct _memcpy_async_align_dispatch<4> { + template + _CG_STATIC_QUALIFIER void copy(TyGroup &group, void *__restrict__ _dst, const void *__restrict__ _src, + size_t count) { + const Segment<1> *src = reinterpret_cast *>(_src); + Segment<1> *dst = reinterpret_cast *>(_dst); + + // Dispatch straight to aligned LDGSTS calls + accelerated_async_copy(group, dst, src, count / sizeof(*dst)); + } +}; + +// Specialization for 8 byte alignments +template <> +struct _memcpy_async_align_dispatch<8> { + template + _CG_STATIC_QUALIFIER void copy(TyGroup &group, void *__restrict__ _dst, const void *__restrict__ _src, + size_t count) { + const Segment<2> *src = reinterpret_cast *>(_src); + Segment<2> *dst = reinterpret_cast *>(_dst); + + // Dispatch straight to aligned LDGSTS calls + accelerated_async_copy(group, dst, src, count / sizeof(*dst)); + } +}; + +// Alignments over 16 are truncated to 16 and bypass alignment +// This is the highest performing memcpy available +template <> +struct _memcpy_async_align_dispatch<16> { + template + _CG_STATIC_QUALIFIER void copy(TyGroup &group, void *__restrict__ _dst, const void *__restrict__ _src, + size_t count) { + const Segment<4> *src = reinterpret_cast *>(_src); + Segment<4> *dst = reinterpret_cast *>(_dst); + + // Dispatch straight to aligned LDGSTS calls + accelerated_async_copy(group, dst, src, count / sizeof(*dst)); + } +}; + +// byte-wide API +template +_CG_STATIC_QUALIFIER void _memcpy_async_dispatch_to_aligned_copy(const TyGroup &group, void *__restrict__ _dst, + const void *__restrict__ _src, size_t count) { + static_assert(!(Alignment & (Alignment - 1)), "Known static alignment dispatch must be a power of 2"); + details::_memcpy_async_align_dispatch::copy(group, _dst, _src, count); +} + +// Internal dispatch APIs +// These deduce the alignments and sizes necessary to invoke the underlying copy engine +template +using is_void = _CG_STL_NAMESPACE::is_same; + +template +using enable_if_not_void = typename _CG_STL_NAMESPACE::enable_if::value, void *>::type; + +template +using enable_if_void = typename _CG_STL_NAMESPACE::enable_if::value, void *>::type; + +template +using enable_if_integral = + typename _CG_STL_NAMESPACE::enable_if<_CG_STL_NAMESPACE::is_integral::value, void *>::type; + +// byte-wide API using aligned_sized_t +template typename Alignment, size_t Hint> +_CG_STATIC_QUALIFIER void _memcpy_async_bytes(const TyGroup &group, void *__restrict__ _dst, + const void *__restrict__ _src, const Alignment &count) { + constexpr size_t _align = (Hint > 16) ? 16 : Hint; + + details::_memcpy_async_dispatch_to_aligned_copy<_align>(group, _dst, _src, (size_t)count); +} + +// byte-wide API using type for aligment +template = nullptr, enable_if_integral = nullptr> +_CG_STATIC_QUALIFIER void _memcpy_async_bytes(const TyGroup &group, TyElem *__restrict__ _dst, + const TyElem *__restrict__ _src, const TySize& count) { + constexpr size_t _align = (Hint > 16) ? 16 : Hint; + + details::_memcpy_async_dispatch_to_aligned_copy<_align>(group, _dst, _src, count); +} + +// byte-wide API with full alignment deduction required +template = nullptr, + enable_if_integral = nullptr> +_CG_STATIC_QUALIFIER void _memcpy_async_bytes(const TyGroup &group, TyElem *__restrict__ _dst, + const TyElem *__restrict__ _src, const TySize& count) { + details::_memcpy_async_dispatch_to_aligned_copy<1>(group, _dst, _src, count); +} + +// 1d-datum API +template +_CG_STATIC_QUALIFIER void _memcpy_async_datum(const TyGroup &group, TyElem *__restrict__ dst, const size_t dstCount, + const TyElem *__restrict__ src, const size_t srcCount) { + constexpr unsigned int _align = Hint; + const size_t totalCount = min(dstCount, srcCount) * sizeof(TyElem); + + details::_memcpy_async_dispatch_to_aligned_copy<_align>(group, dst, src, totalCount); +} + +// 1d-datum API using aligned_size_t +template typename Alignment, size_t Hint> +_CG_STATIC_QUALIFIER void _memcpy_async_datum(const TyGroup &group, TyElem *__restrict__ dst, const Alignment &dstCount, + const TyElem *__restrict__ src, const Alignment &srcCount) { + constexpr unsigned int _align = Hint; + const size_t totalCount = min((size_t)dstCount, (size_t)srcCount) * sizeof(TyElem); + + details::_memcpy_async_dispatch_to_aligned_copy<_align>(group, dst, src, totalCount); +} + +} // namespace details + +/* + * Group submit batch of async-copy to cover contiguous 1D array + * and commit that batch to eventually wait for completion. + */ +template +_CG_STATIC_QUALIFIER void memcpy_async(const TyGroup &group, TyElem *__restrict__ _dst, const TyElem *__restrict__ _src, + const TySizeT &count) { + details::_memcpy_async_bytes(group, _dst, _src, count); + __pipeline_commit(); +} + +/* + * Group submit batch of async-copy to cover contiguous 1D array + * and commit that batch to eventually wait for completion. + * Object counts are in datum sized chunks, not bytes. + */ +template +_CG_STATIC_QUALIFIER void memcpy_async(const TyGroup &group, TyElem *__restrict__ dst, const DstLayout &dstLayout, + const TyElem *__restrict__ src, const SrcLayout &srcLayout) { + details::_memcpy_async_datum(group, dst, dstLayout, src, srcLayout); + __pipeline_commit(); +} + +/* Group wait for prior Nth stage of memcpy_async to complete. */ +template +_CG_STATIC_QUALIFIER void wait_prior(const TyGroup &group) { + __pipeline_wait_prior(Stage); + group.sync(); +} + +/* Group wait all previously submitted memcpy_async to complete. */ +template +_CG_STATIC_QUALIFIER void wait(const TyGroup &group) { + __pipeline_wait_prior(0); + group.sync(); +} + +/***************** CG APIs including pipeline are deprecated *****************/ + +/* Group submit batch of async-copy to cover of contiguous 1D array + to a pipeline and commit the batch*/ +template +_CG_DEPRECATED _CG_STATIC_QUALIFIER void memcpy_async(TyGroup &group, TyElem *dst, size_t dstCount, const TyElem *src, size_t srcCount, + nvcuda::experimental::pipeline &pipe) { + details::_memcpy_async_datum(group, dst, dstCount, src, srcCount); + pipe.commit(); +} + +/* Group wait for prior Nth stage of memcpy_async to complete. */ +template +_CG_DEPRECATED _CG_STATIC_QUALIFIER void wait_prior(TyGroup &group, nvcuda::experimental::pipeline &pipe) { + pipe.wait_prior(); + group.sync(); +} + +/* Group wait for stage-S of memcpy_async to complete. */ +template +_CG_DEPRECATED _CG_STATIC_QUALIFIER void wait(TyGroup &group, nvcuda::experimental::pipeline &pipe, size_t stage) { + pipe.wait(stage); + group.sync(); +} +_CG_END_NAMESPACE + +#endif // _CG_ASYNC_H diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/coalesced_reduce.h b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/coalesced_reduce.h new file mode 100644 index 0000000000000000000000000000000000000000..7ba03fc9e4d0c78f07e3e5e1f97aff03e7a3d6f8 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/coalesced_reduce.h @@ -0,0 +1,95 @@ + /* Copyright 1993-2016 NVIDIA Corporation. All rights reserved. + * + * NOTICE TO LICENSEE: + * + * The source code and/or documentation ("Licensed Deliverables") are + * subject to NVIDIA intellectual property rights under U.S. and + * international Copyright laws. + * + * The Licensed Deliverables contained herein are PROPRIETARY and + * CONFIDENTIAL to NVIDIA and are being provided under the terms and + * conditions of a form of NVIDIA software license agreement by and + * between NVIDIA and Licensee ("License Agreement") or electronically + * accepted by Licensee. Notwithstanding any terms or conditions to + * the contrary in the License Agreement, reproduction or disclosure + * of the Licensed Deliverables to any third party without the express + * written consent of NVIDIA is prohibited. + * + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE + * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. THEY ARE + * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. + * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED + * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, + * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY + * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY + * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS + * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THESE LICENSED DELIVERABLES. + * + * U.S. Government End Users. These Licensed Deliverables are a + * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT + * 1995), consisting of "commercial computer software" and "commercial + * computer software documentation" as such terms are used in 48 + * C.F.R. 12.212 (SEPT 1995) and are provided to the U.S. Government + * only as a commercial end item. Consistent with 48 C.F.R.12.212 and + * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all + * U.S. Government End Users acquire the Licensed Deliverables with + * only those rights set forth herein. + * + * Any use of the Licensed Deliverables in individual and commercial + * software must include, in the user documentation and internal + * comments to the code, the above Disclaimer and U.S. Government End + * Users Notice. + */ + +#ifndef _CG_COALESCED_REDUCE_H_ +#define _CG_COALESCED_REDUCE_H_ + +#include "info.h" +#include "helpers.h" +#include "cooperative_groups.h" +#include "partitioning.h" +#include "coalesced_scan.h" + +_CG_BEGIN_NAMESPACE + +namespace details { + +template +_CG_QUALIFIER auto coalesced_reduce(const __single_warp_thread_block_tile& group, + TyVal&& val, + TyOp&& op) -> decltype(op(val, val)) { + auto out = val; + for (int mask = TySize >> 1; mask > 0; mask >>= 1) { + out = op(out, group.shfl_xor(out, mask)); + } + + return out; +} + +template +_CG_QUALIFIER auto coalesced_reduce(const coalesced_group& group, TyVal&& val, TyOp&& op) -> decltype(op(val, val)) { + if (group.size() == 32) { + // Full coalesced group can go through faster path by being treated as a tile of size 32 + auto tile = details::tiled_partition_internal<32, void>(); + return coalesced_reduce(tile, _CG_STL_NAMESPACE::forward(val), _CG_STL_NAMESPACE::forward(op)); + } + else { + auto scan_result = + inclusive_scan_non_contiguous(group, _CG_STL_NAMESPACE::forward(val), _CG_STL_NAMESPACE::forward(op)); + unsigned int group_mask = _coalesced_group_data_access::get_mask(group); + unsigned int last_thread_id = 31 - __clz(group_mask); + return details::tile::shuffle_dispatch::shfl( + _CG_STL_NAMESPACE::forward(scan_result), group_mask, last_thread_id, 32); + } +} + +} // details + +_CG_END_NAMESPACE + +#endif // _CG_COALESCED_REDUCE_H_ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/coalesced_scan.h b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/coalesced_scan.h new file mode 100644 index 0000000000000000000000000000000000000000..383f4bde059dd8daad7d1c56e99152ea7ee28a08 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/coalesced_scan.h @@ -0,0 +1,174 @@ +/* Copyright 1993-2016 NVIDIA Corporation. All rights reserved. + * + * NOTICE TO LICENSEE: + * + * The source code and/or documentation ("Licensed Deliverables") are + * subject to NVIDIA intellectual property rights under U.S. and + * international Copyright laws. + * + * The Licensed Deliverables contained herein are PROPRIETARY and + * CONFIDENTIAL to NVIDIA and are being provided under the terms and + * conditions of a form of NVIDIA software license agreement by and + * between NVIDIA and Licensee ("License Agreement") or electronically + * accepted by Licensee. Notwithstanding any terms or conditions to + * the contrary in the License Agreement, reproduction or disclosure + * of the Licensed Deliverables to any third party without the express + * written consent of NVIDIA is prohibited. + * + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE + * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. THEY ARE + * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. + * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED + * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, + * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY + * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY + * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS + * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THESE LICENSED DELIVERABLES. + * + * U.S. Government End Users. These Licensed Deliverables are a + * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT + * 1995), consisting of "commercial computer software" and "commercial + * computer software documentation" as such terms are used in 48 + * C.F.R. 12.212 (SEPT 1995) and are provided to the U.S. Government + * only as a commercial end item. Consistent with 48 C.F.R.12.212 and + * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all + * U.S. Government End Users acquire the Licensed Deliverables with + * only those rights set forth herein. + * + * Any use of the Licensed Deliverables in individual and commercial + * software must include, in the user documentation and internal + * comments to the code, the above Disclaimer and U.S. Government End + * Users Notice. + */ + +#ifndef _CG_COALESCED_SCAN_H_ +#define _CG_COALESCED_SCAN_H_ + +#include "info.h" +#include "helpers.h" +#include "cooperative_groups.h" +#include "partitioning.h" +#include "functional.h" + +_CG_BEGIN_NAMESPACE + +namespace details { + +template +_CG_QUALIFIER auto inclusive_scan_contiguous(const TyGroup& group, TyVal&& val, TyOp&& op) -> decltype(op(val, val)) { + auto out = val; + for (int mask = 1; mask < group.size(); mask <<= 1) { + auto tmp = group.shfl_up(out, mask); + if (mask <= group.thread_rank()) { + out = op(out, tmp); + } + } + + return out; +} + +template +_CG_QUALIFIER auto inclusive_scan_non_contiguous(const TyGroup& group, TyVal&& val, TyOp&& op) -> decltype(op(val, val)) { + const unsigned int groupSize = group.size(); + auto out = val; + + const unsigned int mask = details::_coalesced_group_data_access::get_mask(group); + unsigned int lanemask = details::lanemask32_lt() & mask; + unsigned int srcLane = details::laneid(); + + const unsigned int base = __ffs(mask)-1; /* lane with rank == 0 */ + const unsigned int rank = __popc(lanemask); + + for (unsigned int i = 1, j = 1; i < groupSize; i <<= 1) { + if (i <= rank) { + srcLane -= j; + j = i; /* maximum possible lane */ + + unsigned int begLane = base + rank - i; /* minimum possible lane */ + + /* Next source lane is in the range [ begLane .. srcLane ] + * If begLane < srcLane then do a binary search. + */ + while (begLane < srcLane) { + const unsigned int halfLane = (begLane + srcLane) >> 1; + const unsigned int halfMask = lanemask >> halfLane; + const unsigned int d = __popc(halfMask); + if (d < i) { + srcLane = halfLane - 1; /* halfLane too large */ + } + else if ((i < d) || !(halfMask & 0x01)) { + begLane = halfLane + 1; /* halfLane too small */ + } + else { + begLane = srcLane = halfLane; /* happen to hit */ + } + } + } + + auto tmp = details::tile::shuffle_dispatch::shfl(out, mask, srcLane, 32); + if (i <= rank) { + out = op(out, tmp); + } + } + return out; +} + +template +_CG_QUALIFIER auto coalesced_inclusive_scan(const __single_warp_thread_block_tile& group, + TyVal&& val, + TyOp&& op) -> decltype(op(val, val)) { + return inclusive_scan_contiguous(group, _CG_STL_NAMESPACE::forward(val), _CG_STL_NAMESPACE::forward(op)); +} + +template +_CG_QUALIFIER auto coalesced_inclusive_scan(const coalesced_group& group, TyVal&& val, TyOp&& op) -> decltype(op(val, val)) { + if (group.size() == 32) { + return inclusive_scan_contiguous(group, _CG_STL_NAMESPACE::forward(val), _CG_STL_NAMESPACE::forward(op)); + } + else { + return inclusive_scan_non_contiguous(group, _CG_STL_NAMESPACE::forward(val), _CG_STL_NAMESPACE::forward(op)); + } +} + +template +struct scan_choose_convertion; + +template<> +struct scan_choose_convertion { + template + _CG_STATIC_QUALIFIER details::remove_qual convert_inclusive_to_exclusive(const TyGroup& group, TyRes& result, TyVal&& val) { + return result - val; + } +}; + +template<> +struct scan_choose_convertion { + template + _CG_STATIC_QUALIFIER details::remove_qual convert_inclusive_to_exclusive(const TyGroup& group, TyRes& result, TyVal&& val) { + auto ret = group.shfl_up(result, 1); + if (group.thread_rank() == 0) { + return {}; + } + else { + return ret; + } + } +}; + +template +_CG_QUALIFIER auto convert_inclusive_to_exclusive(const TyGroup& group, TyRes& result, TyVal&& val, TyFn&& op) -> decltype(op(val, val)) { + using conversion = scan_choose_convertion<_CG_STL_NAMESPACE::is_same, cooperative_groups::plus>>::value + && _CG_STL_NAMESPACE::is_integral>::value>; + return conversion::convert_inclusive_to_exclusive(group, result, _CG_STL_NAMESPACE::forward(val)); +} + +} // details + +_CG_END_NAMESPACE + +#endif // _CG_COALESCED_SCAN_H_ \ No newline at end of file diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/driver_abi.h b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/driver_abi.h new file mode 100644 index 0000000000000000000000000000000000000000..9c866fcf740beb709a106057d28e8a2a1ac37924 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/driver_abi.h @@ -0,0 +1,99 @@ + /* Copyright 1993-2016 NVIDIA Corporation. All rights reserved. + * + * NOTICE TO LICENSEE: + * + * The source code and/or documentation ("Licensed Deliverables") are + * subject to NVIDIA intellectual property rights under U.S. and + * international Copyright laws. + * + * The Licensed Deliverables contained herein are PROPRIETARY and + * CONFIDENTIAL to NVIDIA and are being provided under the terms and + * conditions of a form of NVIDIA software license agreement by and + * between NVIDIA and Licensee ("License Agreement") or electronically + * accepted by Licensee. Notwithstanding any terms or conditions to + * the contrary in the License Agreement, reproduction or disclosure + * of the Licensed Deliverables to any third party without the express + * written consent of NVIDIA is prohibited. + * + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE + * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. THEY ARE + * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. + * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED + * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, + * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY + * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY + * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS + * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THESE LICENSED DELIVERABLES. + * + * U.S. Government End Users. These Licensed Deliverables are a + * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT + * 1995), consisting of "commercial computer software" and "commercial + * computer software documentation" as such terms are used in 48 + * C.F.R. 12.212 (SEPT 1995) and are provided to the U.S. Government + * only as a commercial end item. Consistent with 48 C.F.R.12.212 and + * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all + * U.S. Government End Users acquire the Licensed Deliverables with + * only those rights set forth herein. + * + * Any use of the Licensed Deliverables in individual and commercial + * software must include, in the user documentation and internal + * comments to the code, the above Disclaimer and U.S. Government End + * Users Notice. + */ + +#ifndef _CG_DRIVER_API_H +#define _CG_DRIVER_API_H + +#include "info.h" + +_CG_BEGIN_NAMESPACE + +namespace details { + template + _CG_QUALIFIER unsigned int load_env_reg() { + // Abort by default + _CG_ABORT(); + return 0; + } + + template + _CG_QUALIFIER unsigned long long load_env_reg64() { + unsigned long long registerLo = load_env_reg(); + unsigned long long registerHi = load_env_reg(); + + return (registerHi << 32) | registerLo; + } + +// inline PTX for accessing registers requires an immediate for the special reg +# define LOAD_ENVREG(NUMBER) \ + template <> _CG_QUALIFIER unsigned int load_env_reg() { \ + unsigned int r; \ + asm ("mov.u32 %0, %%envreg" #NUMBER ";" : "=r"(r)); \ + return r; \ + } + + // Instantiate loaders for registers used + LOAD_ENVREG(0); + LOAD_ENVREG(1); + LOAD_ENVREG(2); +# undef LOAD_ENVREG + + struct grid_workspace { + unsigned int wsSize; + unsigned int barrier; + }; + + _CG_QUALIFIER grid_workspace* get_grid_workspace() { + unsigned long long gridWsAbiAddress = load_env_reg64<1, 2>(); + // Interpret the address from envreg 1 and 2 as the driver's grid workspace + return (reinterpret_cast(gridWsAbiAddress)); + } +} +_CG_END_NAMESPACE + +#endif // _CG_DRIVER_API_H diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/functional.h b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/functional.h new file mode 100644 index 0000000000000000000000000000000000000000..0f151fe2c270421ba56e22935e84c4bf93790eff --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/functional.h @@ -0,0 +1,212 @@ + /* Copyright 1993-2016 NVIDIA Corporation. All rights reserved. + * + * NOTICE TO LICENSEE: + * + * The source code and/or documentation ("Licensed Deliverables") are + * subject to NVIDIA intellectual property rights under U.S. and + * international Copyright laws. + * + * The Licensed Deliverables contained herein are PROPRIETARY and + * CONFIDENTIAL to NVIDIA and are being provided under the terms and + * conditions of a form of NVIDIA software license agreement by and + * between NVIDIA and Licensee ("License Agreement") or electronically + * accepted by Licensee. Notwithstanding any terms or conditions to + * the contrary in the License Agreement, reproduction or disclosure + * of the Licensed Deliverables to any third party without the express + * written consent of NVIDIA is prohibited. + * + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE + * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. THEY ARE + * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. + * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED + * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, + * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY + * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY + * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS + * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THESE LICENSED DELIVERABLES. + * + * U.S. Government End Users. These Licensed Deliverables are a + * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT + * 1995), consisting of "commercial computer software" and "commercial + * computer software documentation" as such terms are used in 48 + * C.F.R. 12.212 (SEPT 1995) and are provided to the U.S. Government + * only as a commercial end item. Consistent with 48 C.F.R.12.212 and + * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all + * U.S. Government End Users acquire the Licensed Deliverables with + * only those rights set forth herein. + * + * Any use of the Licensed Deliverables in individual and commercial + * software must include, in the user documentation and internal + * comments to the code, the above Disclaimer and U.S. Government End + * Users Notice. + */ + +#ifndef _CG_FUNCTIONAL_H +#define _CG_FUNCTIONAL_H + +#include "info.h" +#include "helpers.h" + +#ifdef _CG_CPP11_FEATURES +#ifdef _CG_USE_CUDA_STL +# include +#endif + +_CG_BEGIN_NAMESPACE + +namespace details { +#ifdef _CG_USE_CUDA_STL + using cuda::std::plus; + using cuda::std::bit_and; + using cuda::std::bit_xor; + using cuda::std::bit_or; +#else + template struct plus {__device__ __forceinline__ Ty operator()(Ty arg1, Ty arg2) const {return arg1 + arg2;}}; + template struct bit_and {__device__ __forceinline__ Ty operator()(Ty arg1, Ty arg2) const {return arg1 & arg2;}}; + template struct bit_xor {__device__ __forceinline__ Ty operator()(Ty arg1, Ty arg2) const {return arg1 ^ arg2;}}; + template struct bit_or {__device__ __forceinline__ Ty operator()(Ty arg1, Ty arg2) const {return arg1 | arg2;}}; +#endif // _CG_USE_PLATFORM_STL +} // details + +template +struct plus : public details::plus {}; + +template +struct less { + __device__ __forceinline__ Ty operator()(Ty arg1, Ty arg2) const { + return (arg2 < arg1) ? arg2 : arg1; + } +}; + +template +struct greater { + __device__ __forceinline__ Ty operator()(Ty arg1, Ty arg2) const { + return (arg1 < arg2) ? arg2 : arg1; + } +}; + +template +struct bit_and : public details::bit_and {}; + +template +struct bit_xor : public details::bit_xor {}; + +template +struct bit_or : public details::bit_or {}; + +#if defined(_CG_HAS_STL_ATOMICS) +namespace details { + template + using _atomic_is_type_supported = _CG_STL_NAMESPACE::integral_constant::value && (sizeof(Ty) == 4 || sizeof(Ty) == 8)>; + + template struct _atomic_op_supported : public _CG_STL_NAMESPACE::false_type {}; + template struct _atomic_op_supported> : public _atomic_is_type_supported {}; + template struct _atomic_op_supported> : public _atomic_is_type_supported {}; + template struct _atomic_op_supported> : public _atomic_is_type_supported {}; + template struct _atomic_op_supported> : public _atomic_is_type_supported {}; + template struct _atomic_op_supported> : public _atomic_is_type_supported {}; + template struct _atomic_op_supported> : public _atomic_is_type_supported {}; + + template + _CG_QUALIFIER remove_qual atomic_cas_fallback(TyAtomic&& atomic, TyVal&& val, TyOp&& op) { + auto old = atomic.load(cuda::std::memory_order_relaxed); + while(!atomic.compare_exchange_weak(old, op(old, val), cuda::std::memory_order_relaxed)); + return old; + } + + template + struct op_picker; + + template + struct op_picker> { + template + _CG_STATIC_QUALIFIER TyVal atomic_update(TyAtomic& atomic, TyVal val) { + return atomic.fetch_add(val, cuda::std::memory_order_relaxed); + } + }; + + template + struct op_picker> { + template + _CG_STATIC_QUALIFIER TyVal atomic_update(TyAtomic& atomic, TyVal val) { + return atomic.fetch_min(val, cuda::std::memory_order_relaxed); + } + }; + + template + struct op_picker> { + template + _CG_STATIC_QUALIFIER TyVal atomic_update(TyAtomic& atomic, TyVal val) { + return atomic.fetch_max(val, cuda::std::memory_order_relaxed); + } + }; + + template + struct op_picker> { + template + _CG_STATIC_QUALIFIER TyVal atomic_update(TyAtomic& atomic, TyVal val) { + return atomic.fetch_and(val, cuda::std::memory_order_relaxed); + } + }; + + template + struct op_picker> { + template + _CG_STATIC_QUALIFIER TyVal atomic_update(TyAtomic& atomic, TyVal val) { + return atomic.fetch_xor(val, cuda::std::memory_order_relaxed); + } + }; + + template + struct op_picker> { + template + _CG_STATIC_QUALIFIER TyVal atomic_update(TyAtomic& atomic, TyVal val) { + return atomic.fetch_or(val, cuda::std::memory_order_relaxed); + } + }; + + template + struct atomic_update_dispatch {}; + + template<> + struct atomic_update_dispatch { + template + _CG_STATIC_QUALIFIER remove_qual atomic_update(TyAtomic& atomic, TyVal&& val, TyOp&& op) { + return atomic_cas_fallback(atomic, _CG_STL_NAMESPACE::forward(val), _CG_STL_NAMESPACE::forward(op)); + } + }; + + template<> + struct atomic_update_dispatch { + template + _CG_STATIC_QUALIFIER TyVal atomic_update(TyAtomic& atomic, TyVal val, TyOp&& op) { + using dispatch = op_picker>; + + return dispatch::atomic_update(atomic, val); + } + }; + + template + _CG_QUALIFIER remove_qual atomic_update(TyAtomic& atomic, TyVal&& val, TyOp&& op) { + using dispatch = atomic_update_dispatch<_atomic_op_supported>::value>; + + return dispatch::atomic_update(atomic, _CG_STL_NAMESPACE::forward(val), _CG_STL_NAMESPACE::forward(op)); + } + + template + _CG_QUALIFIER void atomic_store(TyAtomic& atomic, TyVal&& val) { + atomic.store(val, cuda::std::memory_order_relaxed); + } +} +#endif + +_CG_END_NAMESPACE + +#endif +#endif //_CG_FUNCTIONAL_H diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/helpers.h b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/helpers.h new file mode 100644 index 0000000000000000000000000000000000000000..1485d9f503daa8d518af75775f7a7a415cb031d4 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/helpers.h @@ -0,0 +1,693 @@ + /* Copyright 1993-2021 NVIDIA Corporation. All rights reserved. + * + * NOTICE TO LICENSEE: + * + * The source code and/or documentation ("Licensed Deliverables") are + * subject to NVIDIA intellectual property rights under U.S. and + * international Copyright laws. + * + * The Licensed Deliverables contained herein are PROPRIETARY and + * CONFIDENTIAL to NVIDIA and are being provided under the terms and + * conditions of a form of NVIDIA software license agreement by and + * between NVIDIA and Licensee ("License Agreement") or electronically + * accepted by Licensee. Notwithstanding any terms or conditions to + * the contrary in the License Agreement, reproduction or disclosure + * of the Licensed Deliverables to any third party without the express + * written consent of NVIDIA is prohibited. + * + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE + * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. THEY ARE + * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. + * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED + * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, + * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY + * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY + * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS + * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THESE LICENSED DELIVERABLES. + * + * U.S. Government End Users. These Licensed Deliverables are a + * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT + * 1995), consisting of "commercial computer software" and "commercial + * computer software documentation" as such terms are used in 48 + * C.F.R. 12.212 (SEPT 1995) and are provided to the U.S. Government + * only as a commercial end item. Consistent with 48 C.F.R.12.212 and + * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all + * U.S. Government End Users acquire the Licensed Deliverables with + * only those rights set forth herein. + * + * Any use of the Licensed Deliverables in individual and commercial + * software must include, in the user documentation and internal + * comments to the code, the above Disclaimer and U.S. Government End + * Users Notice. + */ + +#ifndef _COOPERATIVE_GROUPS_HELPERS_H_ +# define _COOPERATIVE_GROUPS_HELPERS_H_ + +#include "info.h" +#include "sync.h" + +_CG_BEGIN_NAMESPACE + +namespace details { +#ifdef _CG_CPP11_FEATURES + template struct _is_float_or_half : public _CG_STL_NAMESPACE::is_floating_point {}; +# ifdef _CG_HAS_FP16_COLLECTIVE + template <> struct _is_float_or_half<__half> : public _CG_STL_NAMESPACE::true_type {}; + template <> struct _is_float_or_half<__half2> : public _CG_STL_NAMESPACE::true_type {}; +# endif + template + using is_float_or_half = _is_float_or_half::type>; + + // Non-STL utility templates + template + using remove_qual = typename _CG_STL_NAMESPACE::remove_cv::type>::type; + + template + using is_op_type_same = _CG_STL_NAMESPACE::is_same, remove_qual + >; +#endif + + template + _CG_STATIC_QUALIFIER TyTrunc vec3_to_linear(dim3 index, dim3 nIndex) { + return ((TyTrunc)index.z * nIndex.y * nIndex.x) + + ((TyTrunc)index.y * nIndex.x) + + (TyTrunc)index.x; + } + + namespace cta { + + _CG_STATIC_QUALIFIER void sync() + { + __barrier_sync(0); + } + + _CG_STATIC_QUALIFIER unsigned int num_threads() + { + return static_cast(blockDim.x * blockDim.y * blockDim.z); + } + + _CG_STATIC_QUALIFIER unsigned int thread_rank() + { + return vec3_to_linear(threadIdx, blockDim); + } + + _CG_STATIC_QUALIFIER dim3 group_index() + { + return dim3(blockIdx.x, blockIdx.y, blockIdx.z); + } + + _CG_STATIC_QUALIFIER dim3 thread_index() + { + return dim3(threadIdx.x, threadIdx.y, threadIdx.z); + } + + _CG_STATIC_QUALIFIER dim3 dim_threads() + { + return dim3(blockDim.x, blockDim.y, blockDim.z); + } + + // Legacy aliases + _CG_STATIC_QUALIFIER unsigned int size() + { + return num_threads(); + } + + _CG_STATIC_QUALIFIER dim3 block_dim() + { + return dim_threads(); + } + + }; + + class _coalesced_group_data_access { + public: + // Retrieve mask of coalesced groups and tiles + template + _CG_STATIC_QUALIFIER unsigned int get_mask(const TyGroup &group) { + return group.get_mask(); + } + + template + _CG_STATIC_QUALIFIER TyGroup construct_from_mask(unsigned int mask) { + return TyGroup(mask); + } + + template + _CG_STATIC_QUALIFIER void modify_meta_group(TyGroup &group, unsigned int mgRank, unsigned int mgSize) { + group._data.coalesced.metaGroupRank = mgRank; + group._data.coalesced.metaGroupSize = mgSize; + } + }; + + namespace tile { + template + struct _tile_helpers{ + _CG_STATIC_CONST_DECL unsigned int tileCount = TileCount; + _CG_STATIC_CONST_DECL unsigned int tileMask = TileMask; + _CG_STATIC_CONST_DECL unsigned int laneMask = LaneMask; + _CG_STATIC_CONST_DECL unsigned int shiftCount = ShiftCount; + }; + + template struct tile_helpers; + template <> struct tile_helpers<32> : public _tile_helpers<1, 0xFFFFFFFF, 0x1F, 5> {}; + template <> struct tile_helpers<16> : public _tile_helpers<2, 0x0000FFFF, 0x0F, 4> {}; + template <> struct tile_helpers<8> : public _tile_helpers<4, 0x000000FF, 0x07, 3> {}; + template <> struct tile_helpers<4> : public _tile_helpers<8, 0x0000000F, 0x03, 2> {}; + template <> struct tile_helpers<2> : public _tile_helpers<16, 0x00000003, 0x01, 1> {}; + template <> struct tile_helpers<1> : public _tile_helpers<32, 0x00000001, 0x00, 0> {}; + +#ifdef _CG_CPP11_FEATURES + namespace shfl { + /*********************************************************************************** + * Recursively Sliced Shuffle + * Purpose: + * Slices an input type a number of times into integral types so that shuffles + * are well defined + * Expectations: + * This object *should not* be used from a reinterpret_cast pointer unless + * some alignment guarantees can be met. Use a memcpy to guarantee that loads + * from the integral types stored within are aligned and correct. + **********************************************************************************/ + template + struct recursive_sliced_shuffle_helper; + + template + struct recursive_sliced_shuffle_helper { + int val; + + template + _CG_QUALIFIER void invoke_shuffle(const TyFn &shfl) { + val = shfl(val); + } + }; + + template + struct recursive_sliced_shuffle_helper { + int val; + recursive_sliced_shuffle_helper next; + + template + _CG_QUALIFIER void invoke_shuffle(const TyFn &shfl) { + val = shfl(val); + next.invoke_shuffle(shfl); + } + }; + } + + struct _memory_shuffle { + template + _CG_STATIC_QUALIFIER TyElem _shfl_internal(TyElem elem, const TyShflFn& fn) { + static_assert(sizeof(TyElem) <= 32, "Cooperative groups collectives are limited to types smaller than 32B"); + return TyElem{}; + } + + template > + _CG_STATIC_QUALIFIER TyRet shfl(TyElem&& elem, unsigned int gMask, unsigned int srcRank, unsigned int threads) { + auto shfl = [=](int val) -> int { + return 0; + }; + + return _shfl_internal(_CG_STL_NAMESPACE::forward(elem), shfl); + } + + template > + _CG_STATIC_QUALIFIER TyRet shfl_down(TyElem&& elem, unsigned int gMask, unsigned int delta, unsigned int threads) { + auto shfl = [=](int val) -> int { + return 0; + }; + + return _shfl_internal(_CG_STL_NAMESPACE::forward(elem), shfl); + } + + template > + _CG_STATIC_QUALIFIER TyRet shfl_up(TyElem&& elem, unsigned int gMask, unsigned int delta, unsigned int threads) { + auto shfl = [=](int val) -> int { + return 0; + }; + + return _shfl_internal(_CG_STL_NAMESPACE::forward(elem), shfl); + } + + template > + _CG_STATIC_QUALIFIER TyRet shfl_xor(TyElem&& elem, unsigned int gMask, unsigned int lMask, unsigned int threads) { + auto shfl = [=](int val) -> int { + return 0; + }; + + return _shfl_internal(_CG_STL_NAMESPACE::forward(elem), shfl); + } + }; + + /*********************************************************************************** + * Intrinsic Device Function Shuffle + * Purpose: + * Uses a shuffle helper that has characteristics best suited for moving + * elements between threads + * Expectations: + * Object given will be forced into an l-value type so that it can be used + * with a helper structure that reinterprets the data into intrinsic compatible + * types + * Notes: + * !! TyRet is required so that objects are returned by value and not as + * dangling references depending on the value category of the passed object + **********************************************************************************/ + struct _intrinsic_compat_shuffle { + template + using shfl_helper = shfl::recursive_sliced_shuffle_helper; + + template + _CG_STATIC_QUALIFIER TyElem _shfl_internal(TyElem elem, const TyShflFn& fn) { + static_assert(__is_trivially_copyable(TyElem), "Type is not compatible with device shuffle"); + shfl_helper helper; + memcpy(&helper, &elem, sizeof(TyElem)); + helper.invoke_shuffle(fn); + memcpy(&elem, &helper, sizeof(TyElem)); + return elem; + } + + template > + _CG_STATIC_QUALIFIER TyRet shfl(TyElem&& elem, unsigned int gMask, unsigned int srcRank, unsigned int threads) { + auto shfl = [=](int val) -> int { + return __shfl_sync(gMask, val, srcRank, threads); + }; + + return _shfl_internal(_CG_STL_NAMESPACE::forward(elem), shfl); + } + + template > + _CG_STATIC_QUALIFIER TyRet shfl_down(TyElem&& elem, unsigned int gMask, unsigned int delta, unsigned int threads) { + auto shfl = [=](int val) -> int { + return __shfl_down_sync(gMask, val, delta, threads); + }; + + return _shfl_internal(_CG_STL_NAMESPACE::forward(elem), shfl); + } + + template > + _CG_STATIC_QUALIFIER TyRet shfl_up(TyElem&& elem, unsigned int gMask, unsigned int delta, unsigned int threads) { + auto shfl = [=](int val) -> int { + return __shfl_up_sync(gMask, val, delta, threads); + }; + + return _shfl_internal(_CG_STL_NAMESPACE::forward(elem), shfl); + } + + template > + _CG_STATIC_QUALIFIER TyRet shfl_xor(TyElem&& elem, unsigned int gMask, unsigned int lMask, unsigned int threads) { + auto shfl = [=](int val) -> int { + return __shfl_xor_sync(gMask, val, lMask, threads); + }; + + return _shfl_internal(_CG_STL_NAMESPACE::forward(elem), shfl); + } + }; + + struct _native_shuffle { + template + _CG_STATIC_QUALIFIER TyElem shfl( + TyElem elem, unsigned int gMask, unsigned int srcRank, unsigned int threads) { + return static_cast(__shfl_sync(gMask, elem, srcRank, threads)); + } + + template + _CG_STATIC_QUALIFIER TyElem shfl_down( + TyElem elem, unsigned int gMask, unsigned int delta, unsigned int threads) { + return static_cast(__shfl_down_sync(gMask, elem, delta, threads)); + } + + template + _CG_STATIC_QUALIFIER TyElem shfl_up( + TyElem elem, unsigned int gMask, unsigned int delta, unsigned int threads) { + return static_cast(__shfl_up_sync(gMask, elem, delta, threads)); + } + + template + _CG_STATIC_QUALIFIER TyElem shfl_xor( + TyElem elem, unsigned int gMask, unsigned int lMask, unsigned int threads) { + return static_cast(__shfl_xor_sync(gMask, elem, lMask, threads)); + } + }; + + // Almost all arithmetic types are supported by native shuffle + // Vector types are the exception + template + using use_native_shuffle = _CG_STL_NAMESPACE::integral_constant< + bool, + _CG_STL_NAMESPACE::is_integral< + remove_qual>::value || + details::is_float_or_half< + remove_qual>::value + >; + + constexpr unsigned long long _MemoryShuffleCutoff = 32; + + template ::value, + bool InMem = (sizeof(TyElem) > _MemoryShuffleCutoff)> + struct shuffle_dispatch; + + template + struct shuffle_dispatch : public _native_shuffle {}; + + template + struct shuffle_dispatch : public _intrinsic_compat_shuffle {}; + + template + struct shuffle_dispatch : public _memory_shuffle {}; + +#endif //_CG_CPP11_FEATURES + }; + + namespace multi_grid { + struct multi_grid_functions; + }; + + namespace grid { + _CG_STATIC_QUALIFIER unsigned int barrier_arrive(unsigned int *bar) { + return details::sync_grids_arrive(bar); + } + + _CG_STATIC_QUALIFIER void barrier_wait(unsigned int token, unsigned int *bar) { + details::sync_grids_wait(token, bar); + } + + _CG_STATIC_QUALIFIER void sync(unsigned int *bar) { + unsigned int token = details::sync_grids_arrive(bar); + details::sync_grids_wait(token, bar); + } + + _CG_STATIC_QUALIFIER unsigned long long num_blocks() + { + // grid.y * grid.z -> [max(65535) * max(65535)] fits within 4b, promote after multiplication + // grid.x * (grid.y * grid.z) -> [max(2^31-1) * max(65535 * 65535)] exceeds 4b, promote before multiplication + return (unsigned long long)gridDim.x * (gridDim.y * gridDim.z); + } + + _CG_STATIC_QUALIFIER unsigned long long num_threads() + { + return num_blocks() * cta::num_threads(); + } + + _CG_STATIC_QUALIFIER unsigned long long block_rank() + { + return vec3_to_linear(blockIdx, gridDim); + } + + _CG_STATIC_QUALIFIER unsigned long long thread_rank() + { + return block_rank() * cta::num_threads() + cta::thread_rank(); + } + + _CG_STATIC_QUALIFIER dim3 dim_blocks() + { + return dim3(gridDim.x, gridDim.y, gridDim.z); + } + + _CG_STATIC_QUALIFIER dim3 block_index() + { + return dim3(blockIdx.x, blockIdx.y, blockIdx.z); + } + + _CG_STATIC_QUALIFIER dim3 dim_threads() + { + return dim3(gridDim.x * blockDim.x, gridDim.y * blockDim.y, gridDim.z * blockDim.z); + } + + _CG_STATIC_QUALIFIER dim3 thread_index() + { + return dim3(blockIdx.x * blockDim.x + threadIdx.x, + blockIdx.y * blockDim.y + threadIdx.y, + blockIdx.z * blockDim.z + threadIdx.z); + } + +#if defined(_CG_HAS_CLUSTER_GROUP) + _CG_STATIC_QUALIFIER dim3 dim_clusters() { + return __clusterGridDimInClusters(); + } + + _CG_STATIC_QUALIFIER unsigned long long num_clusters() { + const dim3 dimClusters = dim_clusters(); + return dimClusters.x * dimClusters.y * dimClusters.z; + } + + _CG_STATIC_QUALIFIER dim3 cluster_index() { + return __clusterIdx(); + } + + _CG_STATIC_QUALIFIER unsigned long long cluster_rank() { + return vec3_to_linear(cluster_index(), dim_clusters()); + } +#endif + + // Legacy aliases + _CG_STATIC_QUALIFIER unsigned long long size() + { + return num_threads(); + } + + _CG_STATIC_QUALIFIER dim3 grid_dim() + { + return dim_blocks(); + } + }; + + +#if defined(_CG_HAS_MULTI_GRID_GROUP) + + namespace multi_grid { + _CG_STATIC_QUALIFIER unsigned long long get_intrinsic_handle() + { +#if defined(__CUDACC_RDC__) || defined(__CUDACC_EWP__) + //this function is defined in device runtime library + //which requires separate compilation mode (__CUDACC_RDC__) + //or extended whole program mode (__CUDACC_EWP__) + return (cudaCGGetIntrinsicHandle(cudaCGScopeMultiGrid)); +#else /* !(__CUDACC_RDC__ || __CUDACC_EWP__) */ + return 0; +#endif /* __CUDACC_RDC__ || __CUDACC_EWP__ */ + } + + _CG_STATIC_QUALIFIER void sync(const unsigned long long handle) + { +#if defined(__CUDACC_RDC__) || defined(__CUDACC_EWP__) + //this function is defined in device runtime library + //which requires separate compilation mode (__CUDACC_RDC__) + //or extended whole program mode (__CUDACC_EWP__) + cudaError_t err = cudaCGSynchronize(handle, 0); +#endif /* __CUDACC_RDC__ || __CUDACC_EWP__ */ + } + + _CG_STATIC_QUALIFIER unsigned int size(const unsigned long long handle) + { + unsigned int numThreads = 0; +#if defined(__CUDACC_RDC__) || defined(__CUDACC_EWP__) + //this function is defined in device runtime library + //which requires separate compilation mode (__CUDACC_RDC__) + //or extended whole program mode (__CUDACC_EWP__) + cudaCGGetSize(&numThreads, NULL, handle); +#endif /* __CUDACC_RDC__ || __CUDACC_EWP__ */ + return numThreads; + } + + _CG_STATIC_QUALIFIER unsigned int thread_rank(const unsigned long long handle) + { + unsigned int threadRank = 0; +#if defined(__CUDACC_RDC__) || defined(__CUDACC_EWP__) + //this function is defined in device runtime library + //which requires separate compilation mode (__CUDACC_RDC__) + //or extended whole program mode (__CUDACC_EWP__) + cudaCGGetRank(&threadRank, NULL, handle); +#endif /* __CUDACC_RDC__ || __CUDACC_EWP__ */ + return threadRank; + } + + _CG_STATIC_QUALIFIER unsigned int grid_rank(const unsigned long long handle) + { + unsigned int gridRank = 0; +#if defined(__CUDACC_RDC__) || defined(__CUDACC_EWP__) + //this function is defined in device runtime library + //which requires separate compilation mode (__CUDACC_RDC__) + //or extended whole program mode (__CUDACC_EWP__) + cudaCGGetRank(NULL, &gridRank, handle); +#endif /* __CUDACC_RDC__ || __CUDACC_EWP__ */ + return gridRank; + } + + _CG_STATIC_QUALIFIER unsigned int num_grids(const unsigned long long handle) + { + unsigned int numGrids = 0; +#if defined(__CUDACC_RDC__) || defined(__CUDACC_EWP__) + //this function is defined in device runtime library + //which requires separate compilation mode (__CUDACC_RDC__) + //or extended whole program mode (__CUDACC_EWP__) + cudaCGGetSize(NULL, &numGrids, handle); +#endif /* __CUDACC_RDC__ || __CUDACC_EWP__ */ + return numGrids; + } + +# ifdef _CG_CPP11_FEATURES + struct multi_grid_functions { + decltype(multi_grid::get_intrinsic_handle) *get_intrinsic_handle; + decltype(multi_grid::sync) *sync; + decltype(multi_grid::size) *size; + decltype(multi_grid::thread_rank) *thread_rank; + decltype(multi_grid::grid_rank) *grid_rank; + decltype(multi_grid::num_grids) *num_grids; + }; + + template + _CG_STATIC_QUALIFIER const multi_grid_functions* load_grid_intrinsics() { + __constant__ static const multi_grid_functions mgf { + &multi_grid::get_intrinsic_handle, + &multi_grid::sync, + &multi_grid::size, + &multi_grid::thread_rank, + &multi_grid::grid_rank, + &multi_grid::num_grids + }; + + return &mgf; + } +# endif + }; +#endif + +#if defined(_CG_HAS_CLUSTER_GROUP) + namespace cluster { + + _CG_STATIC_QUALIFIER bool isReal() + { + return __clusterDimIsSpecified(); + } + + _CG_STATIC_QUALIFIER void barrier_arrive() + { + __cluster_barrier_arrive(); + } + + _CG_STATIC_QUALIFIER void barrier_wait() + { + __cluster_barrier_wait(); + } + + _CG_STATIC_QUALIFIER void sync() + { + barrier_arrive(); + barrier_wait(); + } + + _CG_STATIC_QUALIFIER unsigned int query_shared_rank(const void *addr) + { + return __cluster_query_shared_rank(addr); + } + + template + _CG_STATIC_QUALIFIER T* map_shared_rank(T *addr, int rank) + { + return static_cast(__cluster_map_shared_rank(addr, rank)); + } + + _CG_STATIC_QUALIFIER dim3 block_index() + { + return __clusterRelativeBlockIdx(); + } + + _CG_STATIC_QUALIFIER unsigned int block_rank() + { + return __clusterRelativeBlockRank(); + } + + _CG_STATIC_QUALIFIER dim3 thread_index() + { + const dim3 blockIndex = block_index(); + return dim3(blockIndex.x * blockDim.x + threadIdx.x, + blockIndex.y * blockDim.y + threadIdx.y, + blockIndex.z * blockDim.z + threadIdx.z); + } + + _CG_STATIC_QUALIFIER unsigned int thread_rank() + { + return block_rank() * cta::num_threads() + cta::thread_rank(); + } + + _CG_STATIC_QUALIFIER dim3 dim_blocks() + { + return __clusterDim(); + } + + _CG_STATIC_QUALIFIER unsigned int num_blocks() + { + return __clusterSizeInBlocks(); + } + + _CG_STATIC_QUALIFIER dim3 dim_threads() + { + const dim3 dimBlocks = dim_blocks(); + const unsigned int x = dimBlocks.x * blockDim.x; + const unsigned int y = dimBlocks.y * blockDim.y; + const unsigned int z = dimBlocks.z * blockDim.z; + return dim3(x, y, z); + } + + _CG_STATIC_QUALIFIER unsigned int num_threads() + { + return num_blocks() * cta::num_threads(); + } + + }; +#endif + + _CG_STATIC_QUALIFIER unsigned int laneid() + { + unsigned int laneid; + asm ("mov.u32 %0, %%laneid;" : "=r"(laneid)); + return laneid; + } + + _CG_STATIC_QUALIFIER unsigned int lanemask32_eq() + { + unsigned int lanemask32_eq; + asm ("mov.u32 %0, %%lanemask_eq;" : "=r"(lanemask32_eq)); + return (lanemask32_eq); + } + + _CG_STATIC_QUALIFIER unsigned int lanemask32_lt() + { + unsigned int lanemask32_lt; + asm ("mov.u32 %0, %%lanemask_lt;" : "=r"(lanemask32_lt)); + return (lanemask32_lt); + } + + _CG_STATIC_QUALIFIER void abort() + { + _CG_ABORT(); + } + + template + _CG_QUALIFIER void assert_if_not_arithmetic() { +#ifdef _CG_CPP11_FEATURES + static_assert( + _CG_STL_NAMESPACE::is_integral::value || + details::is_float_or_half::value, + "Error: Ty is neither integer or float" + ); +#endif //_CG_CPP11_FEATURES + } + +#ifdef _CG_CPP11_FEATURES + _CG_STATIC_QUALIFIER constexpr unsigned int log2(unsigned int x) { + return x == 1 ? 0 : 1 + log2(x / 2); + } +#endif //_CG_CPP11_FEATURES + +}; // !Namespace internal + +_CG_END_NAMESPACE + +#endif /* !_COOPERATIVE_GROUPS_HELPERS_H_ */ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/info.h b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/info.h new file mode 100644 index 0000000000000000000000000000000000000000..6abbea1e1ec5b0a92c18baabec7485929fe91c0d --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/info.h @@ -0,0 +1,345 @@ + /* Copyright 1993-2021 NVIDIA Corporation. All rights reserved. + * + * NOTICE TO LICENSEE: + * + * The source code and/or documentation ("Licensed Deliverables") are + * subject to NVIDIA intellectual property rights under U.S. and + * international Copyright laws. + * + * The Licensed Deliverables contained herein are PROPRIETARY and + * CONFIDENTIAL to NVIDIA and are being provided under the terms and + * conditions of a form of NVIDIA software license agreement by and + * between NVIDIA and Licensee ("License Agreement") or electronically + * accepted by Licensee. Notwithstanding any terms or conditions to + * the contrary in the License Agreement, reproduction or disclosure + * of the Licensed Deliverables to any third party without the express + * written consent of NVIDIA is prohibited. + * + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE + * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. THEY ARE + * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. + * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED + * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, + * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY + * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY + * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS + * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THESE LICENSED DELIVERABLES. + * + * U.S. Government End Users. These Licensed Deliverables are a + * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT + * 1995), consisting of "commercial computer software" and "commercial + * computer software documentation" as such terms are used in 48 + * C.F.R. 12.212 (SEPT 1995) and are provided to the U.S. Government + * only as a commercial end item. Consistent with 48 C.F.R.12.212 and + * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all + * U.S. Government End Users acquire the Licensed Deliverables with + * only those rights set forth herein. + * + * Any use of the Licensed Deliverables in individual and commercial + * software must include, in the user documentation and internal + * comments to the code, the above Disclaimer and U.S. Government End + * Users Notice. + */ + + +#include + +#ifndef _CG_INFO_H_ +#define _CG_INFO_H_ +/* +** Define: _CG_VERSION +*/ +#define _CG_VERSION 1000 + +/* +** Define: _CG_ABI_VERSION +*/ +#ifndef _CG_ABI_VERSION +# define _CG_ABI_VERSION 1 +#endif + +/* +** Define: _CG_ABI_EXPERIMENTAL +** Desc: If enabled, sets all features enabled (ABI-breaking or experimental) +*/ +#if defined(_CG_ABI_EXPERIMENTAL) +#endif + +#define _CG_CONCAT_INNER(x, y) x ## y +#define _CG_CONCAT_OUTER(x, y) _CG_CONCAT_INNER(x, y) +#define _CG_NAMESPACE _CG_CONCAT_OUTER(__v, _CG_ABI_VERSION) + +#define _CG_BEGIN_NAMESPACE \ + namespace cooperative_groups { namespace _CG_NAMESPACE { +#define _CG_END_NAMESPACE \ + }; using namespace _CG_NAMESPACE; }; + +#if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSC_VER) && (_MSC_VER >= 1900)) +# define _CG_CPP11_FEATURES +#endif + +#if !defined(_CG_QUALIFIER) +# define _CG_QUALIFIER __forceinline__ __device__ +#endif +#if !defined(_CG_STATIC_QUALIFIER) +# define _CG_STATIC_QUALIFIER static __forceinline__ __device__ +#endif +#if !defined(_CG_CONSTEXPR_QUALIFIER) +# if defined(_CG_CPP11_FEATURES) +# define _CG_CONSTEXPR_QUALIFIER constexpr __forceinline__ __device__ +# else +# define _CG_CONSTEXPR_QUALIFIER _CG_QUALIFIER +# endif +#endif +#if !defined(_CG_STATIC_CONSTEXPR_QUALIFIER) +# if defined(_CG_CPP11_FEATURES) +# define _CG_STATIC_CONSTEXPR_QUALIFIER static constexpr __forceinline__ __device__ +# else +# define _CG_STATIC_CONSTEXPR_QUALIFIER _CG_STATIC_QUALIFIER +# endif +#endif + +#if defined(_MSC_VER) +# define _CG_DEPRECATED __declspec(deprecated) +#else +# define _CG_DEPRECATED __attribute__((deprecated)) +#endif + +#if defined(__CUDA_MINIMUM_ARCH__) +# define _CG_CUDA_ARCH __CUDA_MINIMUM_ARCH__ +#elif defined(__CUDA_ARCH__) +# define _CG_CUDA_ARCH __CUDA_ARCH__ +#endif + +#if (_CG_CUDA_ARCH >= 600) || !defined(_CG_CUDA_ARCH) +# define _CG_HAS_GRID_GROUP +#endif +#if (_CG_CUDA_ARCH >= 600) || !defined(_CG_CUDA_ARCH) +# define _CG_HAS_MULTI_GRID_GROUP +#endif +#if (_CG_CUDA_ARCH >= 700) || !defined(_CG_CUDA_ARCH) +# define _CG_HAS_MATCH_COLLECTIVE +#endif + +#if ((_CG_CUDA_ARCH >= 800) || !defined(_CG_CUDA_ARCH)) && !defined(_CG_USER_PROVIDED_SHARED_MEMORY) +# define _CG_HAS_RESERVED_SHARED +#endif + +#if ((_CG_CUDA_ARCH >= 900) || !defined(_CG_CUDA_ARCH)) && \ + (defined(__NVCC__) || defined(__CUDACC_RTC__) || defined(_CG_CLUSTER_INTRINSICS_AVAILABLE)) && \ + defined(_CG_CPP11_FEATURES) +# define _CG_HAS_CLUSTER_GROUP +#endif + +#if (_CG_CUDA_ARCH >= 900) || !defined(_CG_CUDA_ARCH) +# define _CG_HAS_INSTR_ELECT +#endif + +// Has __half and __half2 +// Only usable if you include the cuda_fp16.h extension, and +// _before_ including cooperative_groups.h +#ifdef __CUDA_FP16_TYPES_EXIST__ +# define _CG_HAS_FP16_COLLECTIVE +#endif + +// Include libcu++ where supported. +#if defined(_CG_CPP11_FEATURES) && !defined(__ibmxl__) && (!defined(_MSC_VER) || defined(_WIN64)) && \ + !defined(_CG_LIMIT_INCLUDED_DEPENDENCIES) +# define _CG_USE_CUDA_STL +#else +# define _CG_USE_OWN_TRAITS +#endif + +#if defined(_CG_USE_CUDA_STL) && !defined(__QNX__) && (!defined(__CUDA_ARCH__) || \ + ((!defined(_MSC_VER) && __CUDA_ARCH__ >= 600) || (defined(_MSC_VER) && __CUDA_ARCH__ >= 700))) +# define _CG_HAS_STL_ATOMICS +#endif + +#ifdef _CG_CPP11_FEATURES +// Use cuda::std:: for type_traits +# if defined(_CG_USE_CUDA_STL) +# define _CG_STL_NAMESPACE cuda::std +# include +// Use CG's implementation of type traits +# else +# define _CG_STL_NAMESPACE cooperative_groups::details::templates +# endif +#endif + +#ifdef _CG_CPP11_FEATURES +# define _CG_STATIC_CONST_DECL static constexpr +# define _CG_CONST_DECL constexpr +#else +# define _CG_STATIC_CONST_DECL static const +# define _CG_CONST_DECL const +#endif + +#if (defined(_MSC_VER) && !defined(_WIN64)) || defined(__arm__) +# define _CG_ASM_PTR_CONSTRAINT "r" +#else +# define _CG_ASM_PTR_CONSTRAINT "l" +#endif + +/* +** Define: CG_DEBUG +** What: Enables various runtime safety checks +*/ +#if defined(__CUDACC_DEBUG__) && defined(CG_DEBUG) && !defined(NDEBUG) +# define _CG_DEBUG +#endif + +#if defined(_CG_DEBUG) +# include +# define _CG_ASSERT(x) assert((x)); +# define _CG_ABORT() assert(0); +#else +# define _CG_ASSERT(x) +# define _CG_ABORT() __trap(); +#endif + +_CG_BEGIN_NAMESPACE + +namespace details { + _CG_STATIC_CONST_DECL unsigned int default_max_block_size = 1024; + +#if defined(_CG_CPP11_FEATURES) && !defined(_CG_USE_CUDA_STL) +namespace templates { + +/** + * Integral constants + **/ +template +struct integral_constant { + static constexpr Ty value = Val; + typedef Ty type; + + _CG_QUALIFIER constexpr operator type() const noexcept { return value; } + _CG_QUALIFIER constexpr type operator()() const noexcept { return value; } +}; + +typedef integral_constant true_type; +typedef integral_constant false_type; + +/** + * CV Qualifiers + **/ +template struct is_lvalue_reference : public details::templates::false_type {}; +template struct is_lvalue_reference : public details::templates::true_type {}; + +template struct remove_reference {typedef Ty type;}; +template struct remove_reference {typedef Ty type;}; +template struct remove_reference {typedef Ty type;}; + +template +using remove_reference_t = typename details::templates::remove_reference::type; + +template struct remove_const {typedef Ty type;}; +template struct remove_const {typedef Ty type;}; + +template struct remove_volatile {typedef Ty type;}; +template struct remove_volatile {typedef Ty type;}; + +template struct remove_cv {typedef typename details::templates::remove_volatile::type>::type type;}; + +template +using remove_cv_t = typename details::templates::remove_cv::type; + +template +_CG_QUALIFIER Ty&& forward(remove_reference_t &t) noexcept { + return static_cast(t); +} + +template +_CG_QUALIFIER Ty&& forward(remove_reference_t &&t) noexcept { + static_assert(!details::templates::is_lvalue_reference::value, "Forwarding an rvalue as an lvalue is not allowed."); + return static_cast(t); +} + +/** + * is_integral + **/ +template struct _is_integral : public details::templates::false_type {}; +template <> struct _is_integral : public details::templates::true_type {}; +template <> struct _is_integral : public details::templates::true_type {}; +template <> struct _is_integral : public details::templates::true_type {}; +template <> struct _is_integral : public details::templates::true_type {}; +template <> struct _is_integral : public details::templates::true_type {}; +template <> struct _is_integral : public details::templates::true_type {}; +template <> struct _is_integral : public details::templates::true_type {}; +template <> struct _is_integral : public details::templates::true_type {}; +template <> struct _is_integral : public details::templates::true_type {}; +template <> struct _is_integral : public details::templates::true_type {}; +template <> struct _is_integral : public details::templates::true_type {}; +//Vector type support? + +template +struct is_integral : public details::templates::_is_integral::type> {}; + +/** + * is_floating_point + **/ +template struct _is_floating_point : public details::templates::false_type {}; +template <> struct _is_floating_point : public details::templates::true_type {}; +template <> struct _is_floating_point : public details::templates::true_type {}; +template <> struct _is_floating_point : public details::templates::true_type {}; +# ifdef __CUDA_FP16_TYPES_EXIST__ +template <> struct _is_floating_point<__half> : public details::templates::true_type {}; +template <> struct _is_floating_point<__half2> : public details::templates::true_type {}; +# endif +//Vector type support? + +template +struct is_floating_point : public details::templates::_is_floating_point::type> {}; + +template +struct is_arithmetic : details::templates::integral_constant< + bool, + details::templates::is_integral::value || + details::templates::is_floating_point::value> {}; + +template ::value> +struct _is_unsigned : details::templates::integral_constant {}; + +template +struct _is_unsigned : details::templates::false_type {}; + +template +struct is_unsigned : _is_unsigned::type> {}; + +template struct _is_pointer : public details::templates::false_type {}; +template struct _is_pointer : public details::templates::true_type {}; + +template +struct is_pointer : _is_pointer::type> {}; + +/** + * programmatic type traits + **/ +template +struct enable_if {}; + +template +struct enable_if { typedef Ty type; }; + +template +using enable_if_t = typename details::templates::enable_if::type; + +template +struct is_same : details::templates::false_type {}; + +template +struct is_same : details::templates::true_type {}; + +} // templates +#endif // _CG_CPP11_FEATURES + +} // details +_CG_END_NAMESPACE + + +#endif // _CG_INFO_H_ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/invoke.h b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/invoke.h new file mode 100644 index 0000000000000000000000000000000000000000..f00314ce140e390be90a1ab3c328fd73d73c0d46 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/invoke.h @@ -0,0 +1,189 @@ +/* + * Copyright 1993-2022 NVIDIA Corporation. All rights reserved. + * + * NOTICE TO LICENSEE: + * + * This source code and/or documentation ("Licensed Deliverables") are + * subject to NVIDIA intellectual property rights under U.S. and + * international Copyright laws. + * + * These Licensed Deliverables contained herein is PROPRIETARY and + * CONFIDENTIAL to NVIDIA and is being provided under the terms and + * conditions of a form of NVIDIA software license agreement by and + * between NVIDIA and Licensee ("License Agreement") or electronically + * accepted by Licensee. Notwithstanding any terms or conditions to + * the contrary in the License Agreement, reproduction or disclosure + * of the Licensed Deliverables to any third party without the express + * written consent of NVIDIA is prohibited. + * + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE + * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. IT IS + * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. + * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED + * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, + * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY + * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY + * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS + * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THESE LICENSED DELIVERABLES. + * + * U.S. Government End Users. These Licensed Deliverables are a + * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT + * 1995), consisting of "commercial computer software" and "commercial + * computer software documentation" as such terms are used in 48 + * C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government + * only as a commercial end item. Consistent with 48 C.F.R.12.212 and + * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all + * U.S. Government End Users acquire the Licensed Deliverables with + * only those rights set forth herein. + * + * Any use of the Licensed Deliverables in individual and commercial + * software must include, in the user documentation and internal + * comments to the code, the above Disclaimer and U.S. Government End + * Users Notice. + */ + +#ifndef _CG_INVOKE_H +#define _CG_INVOKE_H + +#include "info.h" +#include "helpers.h" + +#if defined(_CG_CPP11_FEATURES) + +_CG_BEGIN_NAMESPACE + +namespace details { + + template + struct _elect_group_supported : _CG_STL_NAMESPACE::false_type {}; +#ifdef _CG_HAS_INSTR_ELECT + template<> + struct _elect_group_supported : _CG_STL_NAMESPACE::true_type {}; + template + struct _elect_group_supported> : + _CG_STL_NAMESPACE::integral_constant {}; +#endif + + template + struct elect_group_supported : public _elect_group_supported> {}; + + template + _CG_STATIC_QUALIFIER bool elect_one(const Group& group, unsigned int mask, unsigned int& leader_lane) { + int is_leader = 0; +#ifdef _CG_HAS_INSTR_ELECT + asm("{\n\t" + " .reg .pred p;\n\t" + " elect.sync %0|p, %2;\n\t" + " @p mov.s32 %1, 1;\n\t" + "}" + : "+r"(leader_lane), "+r"(is_leader) : "r" (mask)); +#endif + return is_leader; + } + + template + struct invoke_one_impl {}; + + template<> + struct invoke_one_impl { + template + _CG_STATIC_QUALIFIER void invoke_one(const Group& group, Fn&& fn, Args&&... args) { + auto mask = details::_coalesced_group_data_access::get_mask(group); + unsigned int leader_lane = 0; + + if (elect_one(group, mask, leader_lane)) { + _CG_STL_NAMESPACE::forward(fn)(_CG_STL_NAMESPACE::forward(args)...); + } + } + + template + _CG_STATIC_QUALIFIER auto invoke_one_broadcast(const Group& group, Fn&& fn, Args&&... args) + -> typename _CG_STL_NAMESPACE::remove_reference< + decltype(_CG_STL_NAMESPACE::forward(fn)(_CG_STL_NAMESPACE::forward(args)...))>::type { + + using ResultType = decltype(_CG_STL_NAMESPACE::forward(fn)(_CG_STL_NAMESPACE::forward(args)...)); + details::remove_qual result; + auto mask = details::_coalesced_group_data_access::get_mask(group); + unsigned int leader_lane = 0; + + if (elect_one(group, mask, leader_lane)) { + result = _CG_STL_NAMESPACE::forward(fn)(_CG_STL_NAMESPACE::forward(args)...); + } + + // Need to use low level api instead of group.shfl, because elect_one returns lane id, not group rank. + return tile::shuffle_dispatch::shfl(result, mask, leader_lane, 32); + } + }; + + template<> + struct invoke_one_impl { + template + _CG_STATIC_QUALIFIER void invoke_one(const Group& group, Fn&& fn, Args&&... args) { + if (group.thread_rank() == 0) { + _CG_STL_NAMESPACE::forward(fn)(_CG_STL_NAMESPACE::forward(args)...); + } + } + + template + _CG_STATIC_QUALIFIER auto invoke_one_broadcast(const Group& group, Fn&& fn, Args&&... args) + -> typename _CG_STL_NAMESPACE::remove_reference< + decltype(_CG_STL_NAMESPACE::forward(fn)(_CG_STL_NAMESPACE::forward(args)...))>::type { + + using ResultType = decltype(_CG_STL_NAMESPACE::forward(fn)(_CG_STL_NAMESPACE::forward(args)...)); + details::remove_qual result; + + if (group.thread_rank() == 0) { + result = _CG_STL_NAMESPACE::forward(fn)(_CG_STL_NAMESPACE::forward(args)...); + } + + return group.shfl(result, 0); + } + }; + + +}; // namespace details + +template +_CG_QUALIFIER void invoke_one(const Group& group, Fn&& fn, Args&&... args) { + using impl = details::invoke_one_impl::value>; + impl::invoke_one(group, _CG_STL_NAMESPACE::forward(fn), _CG_STL_NAMESPACE::forward(args)...); +} + +template +_CG_QUALIFIER auto invoke_one_broadcast(const coalesced_group& group, Fn&& fn, Args&&... args) + -> typename _CG_STL_NAMESPACE::remove_reference< + decltype(_CG_STL_NAMESPACE::forward(fn)(_CG_STL_NAMESPACE::forward(args)...))>::type { + + using ResultType = decltype(_CG_STL_NAMESPACE::forward(fn)(_CG_STL_NAMESPACE::forward(args)...)); + static_assert(!_CG_STL_NAMESPACE::is_same::value, + "For invocables returning void invoke_one should be used instead"); + using impl = details::invoke_one_impl::value>; + return impl::invoke_one_broadcast(group, + _CG_STL_NAMESPACE::forward(fn), + _CG_STL_NAMESPACE::forward(args)...); +} + +template +_CG_QUALIFIER auto invoke_one_broadcast(const thread_block_tile& group, Fn&& fn, Args&&... args) + -> typename _CG_STL_NAMESPACE::remove_reference< + decltype(_CG_STL_NAMESPACE::forward(fn)(_CG_STL_NAMESPACE::forward(args)...))>::type { + + using ResultType = decltype(_CG_STL_NAMESPACE::forward(fn)(_CG_STL_NAMESPACE::forward(args)...)); + static_assert(!_CG_STL_NAMESPACE::is_same::value, + "For invocables returning void invoke_one should be used instead"); + using impl = details::invoke_one_impl>::value>; + return impl::invoke_one_broadcast(group, + _CG_STL_NAMESPACE::forward(fn), + _CG_STL_NAMESPACE::forward(args)...); +} + +_CG_END_NAMESPACE + +#endif //_CG_CPP11_FEATURES + +#endif // _CG_INVOKE_H diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/memory.h b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/memory.h new file mode 100644 index 0000000000000000000000000000000000000000..25fdc7646932889a4992b8d3a6249a610c76709a --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/memory.h @@ -0,0 +1,136 @@ +/* Copyright 1993-2022 NVIDIA Corporation. All rights reserved. + * + * NOTICE TO LICENSEE: + * + * The source code and/or documentation ("Licensed Deliverables") are + * subject to NVIDIA intellectual property rights under U.S. and + * international Copyright laws. + * + * The Licensed Deliverables contained herein are PROPRIETARY and + * CONFIDENTIAL to NVIDIA and are being provided under the terms and + * conditions of a form of NVIDIA software license agreement by and + * between NVIDIA and Licensee ("License Agreement") or electronically + * accepted by Licensee. Notwithstanding any terms or conditions to + * the contrary in the License Agreement, reproduction or disclosure + * of the Licensed Deliverables to any third party without the express + * written consent of NVIDIA is prohibited. + * + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE + * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. THEY ARE + * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. + * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED + * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, + * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY + * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY + * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS + * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THESE LICENSED DELIVERABLES. + * + * U.S. Government End Users. These Licensed Deliverables are a + * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT + * 1995), consisting of "commercial computer software" and "commercial + * computer software documentation" as such terms are used in 48 + * C.F.R. 12.212 (SEPT 1995) and are provided to the U.S. Government + * only as a commercial end item. Consistent with 48 C.F.R.12.212 and + * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all + * U.S. Government End Users acquire the Licensed Deliverables with + * only those rights set forth herein. + * + * Any use of the Licensed Deliverables in individual and commercial + * software must include, in the user documentation and internal + * comments to the code, the above Disclaimer and U.S. Government End + * Users Notice. + */ + +#ifndef _COOPERATIVE_GROUPS_MEMORY_H_ +# define _COOPERATIVE_GROUPS_MEMORY_H_ + +#include "info.h" + +_CG_BEGIN_NAMESPACE + +#if defined(_CG_CPP11_FEATURES) +namespace details { + _CG_STATIC_CONST_DECL int scratch_num_reserved_bytes = 12; + + // Should only be called for SM80+ + _CG_STATIC_QUALIFIER void* reserved_shared_ptr() + { + unsigned long long ptr = 0; + NV_IF_TARGET(NV_PROVIDES_SM_80, + (asm ("{\n\t" + " .reg .u32 start;\n\t" + " .reg .u64 extended;\n\t" + " mov.u32 start, %%reserved_smem_offset_1;\n\t" + " cvt.u64.u32 extended, start;\n\t" + " cvta.shared.u64 %0, extended;\n\t" + "}" + : "=l"(ptr));) + ) + return reinterpret_cast(ptr); + } + + struct multi_warp_scratch { + // One barrier per possible size of the group. + _CG_STATIC_CONST_DECL unsigned int memory_barriers_count = 5; + _CG_STATIC_CONST_DECL size_t sync_memory_size = memory_barriers_count * sizeof(barrier_t); + + using communication_type = unsigned long long; + _CG_STATIC_CONST_DECL size_t communication_size = sizeof(communication_type); + + // Layout of the scratch space: + barrier_t barriers[memory_barriers_count]; + char reserved[scratch_num_reserved_bytes]; // Reserve 12 bytes for future use + communication_type communication_memory[default_max_block_size / 32]; + + _CG_STATIC_CONSTEXPR_QUALIFIER unsigned int scratch_size_needed(unsigned int max_block_size) { + // One slot of collectives memory per warp. + return scratch_num_reserved_bytes + (unsigned int)sync_memory_size + max_block_size / 32 * (unsigned int)communication_size; + } + + _CG_QUALIFIER void init_barriers(unsigned int thread_rank) { + if (thread_rank < memory_barriers_count) { + barriers[thread_rank] = 0; + } + } + }; + +#if defined(_CG_HAS_RESERVED_SHARED) + // CG can expect at least 288 bytes available in reserved shared + static_assert(sizeof(multi_warp_scratch) <= 288, "multi-warp scratch size is too large"); +#endif + + // Make sure the structure can fit into the user provided memory + static_assert(sizeof(multi_warp_scratch) <= multi_warp_scratch::scratch_size_needed(default_max_block_size), + "multi-warp scratch size is too large"); + + + _CG_QUALIFIER multi_warp_scratch* get_scratch_ptr(void* user_scratch) { + void *ptr; + NV_IF_ELSE_TARGET(NV_PROVIDES_SM_80, + (ptr = reserved_shared_ptr();) + , + (ptr = user_scratch;) + ) + return static_cast(ptr); + + } + +} + +template +struct __align__(details::multi_warp_scratch::communication_size) block_tile_memory { +private: +#if !defined(_CG_HAS_RESERVED_SHARED) + char scratch[details::multi_warp_scratch::scratch_size_needed(MaxBlockSize)]; +#endif +}; +#endif + +_CG_END_NAMESPACE + +#endif /* !_COOPERATIVE_GROUPS_MEMORY_H_ */ diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/partitioning.h b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/partitioning.h new file mode 100644 index 0000000000000000000000000000000000000000..fe66fb926876c045b49a2c8f0b83379dae7599fa --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/partitioning.h @@ -0,0 +1,160 @@ +/* + * Copyright 1993-2016 NVIDIA Corporation. All rights reserved. + * + * NOTICE TO LICENSEE: + * + * This source code and/or documentation ("Licensed Deliverables") are + * subject to NVIDIA intellectual property rights under U.S. and + * international Copyright laws. + * + * These Licensed Deliverables contained herein is PROPRIETARY and + * CONFIDENTIAL to NVIDIA and is being provided under the terms and + * conditions of a form of NVIDIA software license agreement by and + * between NVIDIA and Licensee ("License Agreement") or electronically + * accepted by Licensee. Notwithstanding any terms or conditions to + * the contrary in the License Agreement, reproduction or disclosure + * of the Licensed Deliverables to any third party without the express + * written consent of NVIDIA is prohibited. + * + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE + * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. IT IS + * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. + * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED + * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, + * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY + * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY + * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS + * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THESE LICENSED DELIVERABLES. + * + * U.S. Government End Users. These Licensed Deliverables are a + * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT + * 1995), consisting of "commercial computer software" and "commercial + * computer software documentation" as such terms are used in 48 + * C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government + * only as a commercial end item. Consistent with 48 C.F.R.12.212 and + * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all + * U.S. Government End Users acquire the Licensed Deliverables with + * only those rights set forth herein. + * + * Any use of the Licensed Deliverables in individual and commercial + * software must include, in the user documentation and internal + * comments to the code, the above Disclaimer and U.S. Government End + * Users Notice. + */ + +#ifndef _CG_PARTITIONING_H +#define _CG_PARTITIONING_H + +#include "info.h" +#include "helpers.h" + +_CG_BEGIN_NAMESPACE + +namespace details { + + template + _CG_STATIC_QUALIFIER coalesced_group _binary_partition(const TyGroup &tile, bool pred) { + const unsigned int fullMask = ~0u; + + unsigned int thisMask = _coalesced_group_data_access::get_mask(tile); + unsigned int predMask = pred ? 0 : fullMask; + unsigned int setMask = __ballot_sync(thisMask, pred); + + if (setMask == thisMask || setMask == 0) { + coalesced_group subTile = _coalesced_group_data_access::construct_from_mask(thisMask); + _coalesced_group_data_access::modify_meta_group(subTile, 0, 1); + return subTile; + } + else { + unsigned int subMask = thisMask & (setMask ^ predMask); + coalesced_group subTile = _coalesced_group_data_access::construct_from_mask(subMask); + _coalesced_group_data_access::modify_meta_group(subTile, pred, 2); + return subTile; + } + } + +#if defined(_CG_HAS_MATCH_COLLECTIVE) && defined(_CG_CPP11_FEATURES) + template + struct _labeled_partition_dispatch { + template + _CG_QUALIFIER coalesced_group operator()(const TyGroup &tile, TyPredicate pred) { + unsigned int thisMask = _coalesced_group_data_access::get_mask(tile); + unsigned int subMask = __match_any_sync(thisMask, pred); + unsigned int laneId = details::laneid(); + + coalesced_group subTile = _coalesced_group_data_access::construct_from_mask(subMask); + + int leaderLaneId = __ffs(subMask) - 1; + bool isLeader = leaderLaneId == laneId; + unsigned int leaderMask = __ballot_sync(thisMask, isLeader); + + // Count leaders with lower laneid, that will be the meta rank of this tile + unsigned int tileRank = __popc(leaderMask & ((1 << leaderLaneId) - 1)); + + _coalesced_group_data_access::modify_meta_group(subTile, tileRank, __popc(leaderMask)); + + return subTile; + } + }; + + template <> + struct _labeled_partition_dispatch { + template + _CG_QUALIFIER coalesced_group operator()(const TyGroup &tile, bool pred) { + return _binary_partition(tile, pred); + } + }; + + template + struct _labeled_partition_dispatch { + template + _CG_QUALIFIER coalesced_group operator()(const TyGroup &tile, TyPredicate* pred) { + auto impl = _labeled_partition_dispatch(); + return impl(tile, reinterpret_cast(pred)); + } + }; +#endif +}; // namespace details + +_CG_STATIC_QUALIFIER coalesced_group binary_partition(const coalesced_group &tile, bool pred) { + return details::_binary_partition(tile, pred); +} + +template +_CG_STATIC_QUALIFIER coalesced_group binary_partition(const thread_block_tile &tile, bool pred) { +#ifdef _CG_CPP11_FEATURES + static_assert(Size <= 32, "Binary partition is available only for tiles of size smaller or equal to 32"); +#endif + return details::_binary_partition(tile, pred); +} + + +#if defined(_CG_HAS_MATCH_COLLECTIVE) && defined(_CG_CPP11_FEATURES) +template +_CG_STATIC_QUALIFIER coalesced_group labeled_partition(const coalesced_group &tile, TyPredicate pred) { + static_assert(_CG_STL_NAMESPACE::is_integral::value || + _CG_STL_NAMESPACE::is_pointer::value, + "labeled_partition predicate must be an integral or pointer type"); + auto dispatch = details::_labeled_partition_dispatch>(); + return dispatch(tile, pred); +} + +template +_CG_STATIC_QUALIFIER coalesced_group labeled_partition(const thread_block_tile &tile, TyPredicate pred) { + static_assert(_CG_STL_NAMESPACE::is_integral::value || + _CG_STL_NAMESPACE::is_pointer::value, + "labeled_partition predicate must be an integral or pointer type"); + static_assert(Size <= 32, "Labeled partition is available only for tiles of size smaller or equal to 32"); + auto dispatch = details::_labeled_partition_dispatch>(); + return dispatch(tile, pred); +} +#endif + +_CG_END_NAMESPACE + +#endif // _CG_PARTITIONING_H diff --git a/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/reduce.h b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/reduce.h new file mode 100644 index 0000000000000000000000000000000000000000..b89d7fbaf340c1febd6c8a7de13f346daa1a1371 --- /dev/null +++ b/Prism/LLaDA/LLaDA_Prism/.venv/lib/python3.12/site-packages/triton/backends/nvidia/include/cooperative_groups/details/reduce.h @@ -0,0 +1,424 @@ + /* Copyright 1993-2016 NVIDIA Corporation. All rights reserved. + * + * NOTICE TO LICENSEE: + * + * The source code and/or documentation ("Licensed Deliverables") are + * subject to NVIDIA intellectual property rights under U.S. and + * international Copyright laws. + * + * The Licensed Deliverables contained herein are PROPRIETARY and + * CONFIDENTIAL to NVIDIA and are being provided under the terms and + * conditions of a form of NVIDIA software license agreement by and + * between NVIDIA and Licensee ("License Agreement") or electronically + * accepted by Licensee. Notwithstanding any terms or conditions to + * the contrary in the License Agreement, reproduction or disclosure + * of the Licensed Deliverables to any third party without the express + * written consent of NVIDIA is prohibited. + * + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE + * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. THEY ARE + * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. + * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED + * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, + * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. + * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE + * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY + * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY + * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS + * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THESE LICENSED DELIVERABLES. + * + * U.S. Government End Users. These Licensed Deliverables are a + * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT + * 1995), consisting of "commercial computer software" and "commercial + * computer software documentation" as such terms are used in 48 + * C.F.R. 12.212 (SEPT 1995) and are provided to the U.S. Government + * only as a commercial end item. Consistent with 48 C.F.R.12.212 and + * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all + * U.S. Government End Users acquire the Licensed Deliverables with + * only those rights set forth herein. + * + * Any use of the Licensed Deliverables in individual and commercial + * software must include, in the user documentation and internal + * comments to the code, the above Disclaimer and U.S. Government End + * Users Notice. + */ + +#ifndef _CG_REDUCE_H_ +#define _CG_REDUCE_H_ + +#include "info.h" +#include "helpers.h" +#include "coalesced_reduce.h" +#include "functional.h" +#include "cooperative_groups.h" + +_CG_BEGIN_NAMESPACE + +namespace details { + + template + using _redux_is_add_supported = _CG_STL_NAMESPACE::integral_constant< + bool, + _CG_STL_NAMESPACE::is_integral::value && (sizeof(Ty) <= 4)>; + + template + using redux_is_add_supported = _redux_is_add_supported; + + // A specialization for 64 bit logical operations is possible + // but for now only accelerate 32 bit bitwise ops + template + using redux_is_logical_supported = redux_is_add_supported; + + // Base operator support case + template struct _redux_op_supported : public _CG_STL_NAMESPACE::false_type {}; + template struct _redux_op_supported, Ty> : public redux_is_add_supported {}; + template struct _redux_op_supported, Ty> : public redux_is_add_supported {}; + template struct _redux_op_supported, Ty> : public redux_is_add_supported {}; + template struct _redux_op_supported, Ty> : public redux_is_logical_supported {}; + template struct _redux_op_supported, Ty> : public redux_is_logical_supported {}; + template struct _redux_op_supported, Ty> : public redux_is_logical_supported {}; + + template class TyOp> + using redux_op_supported = _redux_op_supported< + typename details::remove_qual>, + Ty>; + + // Groups smaller than 16 actually have worse performance characteristics when used with redux + // tiles of size 16 and 32 perform the same or better and have better code generation profiles + template struct _redux_group_optimized : public _CG_STL_NAMESPACE::false_type {}; + + template + struct _redux_group_optimized> : public _CG_STL_NAMESPACE::integral_constant< + bool, + (Sz >= 16)> {}; + template + struct _redux_group_optimized> : public _CG_STL_NAMESPACE::integral_constant< + bool, + (Sz >= 16)> {}; + template <> + struct _redux_group_optimized : public _CG_STL_NAMESPACE::true_type {}; + + template + using redux_group_optimized = _redux_group_optimized>; + + template